<?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>115877</bug_id>
          
          <creation_ts>2013-05-09 15:18:04 -0700</creation_ts>
          <short_desc>Remove extra spaces between right angle brackets in template declarations</short_desc>
          <delta_ts>2013-05-09 15:37:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>887113</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-09 15:18:04 -0700</bug_when>
    <thetext>Remove extra spaces between right angle brackets in template declarations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887115</commentid>
    <comment_count>1</comment_count>
      <attachid>201289</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-09 15:26:28 -0700</bug_when>
    <thetext>Created attachment 201289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887116</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-09 15:28:49 -0700</bug_when>
    <thetext>Attachment 201289 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.h&apos;, u&apos;Source/WebKit2/NetworkProcess/HostRecord.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/NetworkProcess/SchedulableLoader.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/SchedulableLoader.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.cpp&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/Connection.h&apos;, u&apos;Source/WebKit2/Platform/WorkQueue.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/Scripts/webkit2/messages_unittest.py&apos;, u&apos;Source/WebKit2/Shared/BlockingResponseMap.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.h&apos;, u&apos;Source/WebKit2/Shared/ImmutableArray.cpp&apos;, u&apos;Source/WebKit2/Shared/ImmutableArray.h&apos;, u&apos;Source/WebKit2/Shared/ImmutableDictionary.cpp&apos;, u&apos;Source/WebKit2/Shared/ImmutableDictionary.h&apos;, u&apos;Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h&apos;, u&apos;Source/WebKit2/Shared/SecurityOriginData.cpp&apos;, u&apos;Source/WebKit2/Shared/SessionState.cpp&apos;, u&apos;Source/WebKit2/Shared/StatisticsData.h&apos;, u&apos;Source/WebKit2/Shared/UserMessageCoders.h&apos;, u&apos;Source/WebKit2/Shared/WebArchive.cpp&apos;, u&apos;Source/WebKit2/Shared/WebContextMenuItem.cpp&apos;, u&apos;Source/WebKit2/Shared/WebOpenPanelParameters.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/ArgumentCodersMac.mm&apos;, u&apos;Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKPrintingView.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKView.mm&apos;, u&apos;Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h&apos;, u&apos;Source/WebKit2/UIProcess/GeolocationPermissionRequestManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h&apos;, u&apos;Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h&apos;, u&apos;Source/WebKit2/UIProcess/SharedWorkers/SharedWorkerProcessManager.h&apos;, u&apos;Source/WebKit2/UIProcess/SharedWorkers/SharedWorkerProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/StatisticsRequest.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Storage/StorageManager.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Storage/StorageManager.h&apos;, u&apos;Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebBackForwardList.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebBackForwardList.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.h&apos;, u&apos;Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebCookieManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebFormClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebFormClient.h&apos;, u&apos;Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebLoaderClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebLoaderClient.h&apos;, u&apos;Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageContextMenuClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.messages.in&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm&apos;, u&apos;Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/IconDatabase/WebIconDatabaseProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageFormClient.h&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/Storage/WebKeyValueStorageManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/FindController.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/FindController.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebFrame.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/LayerTreeHostMac.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.h&apos;]&quot; exit_code: 1
Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp:70:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:139:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/Shared/ImmutableArray.cpp:49:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:50:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:754:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebContext.cpp:556:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h:71:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h:98:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebLoaderClient.cpp:248:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:217:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:314:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:325:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:386:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:388:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:392:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:410:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:412:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:417:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:435:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:437:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:528:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:543:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:551:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/Storage/StorageManager.cpp:554:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/Shared/ImmutableArray.h:54:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/Shared/ImmutableArray.h:73:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/Platform/WorkQueue.h:168:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebFormClient.cpp:36:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.h:50:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebProcessProxy.cpp:501:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/Platform/CoreIPC/Connection.cpp:389:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/Platform/CoreIPC/Connection.cpp:419:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/Platform/CoreIPC/Connection.cpp:653:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp:422:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp:423:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:501:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:502:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:513:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:514:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:546:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:547:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:564:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:698:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:713:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:802:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:803:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:904:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:1117:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebProcess.cpp:1118:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp:88:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebPageProxy.cpp:871:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebPageProxy.cpp:2584:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebPageProxy.h:303:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebPageProxy.h:838:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebFormClient.h:44:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:56:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:57:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:63:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:64:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp:236:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/UIProcess/WebLoaderClient.h:88:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp:76:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp:99:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp:100:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp:103:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp:104:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:95:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:110:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:214:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp:215:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp:216:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:62:  Missing spaces around &gt;&gt;  [whitespace/operators] [3]
Total errors found: 72 in 121 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>887117</commentid>
    <comment_count>3</comment_count>
      <attachid>201289</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-09 15:31:18 -0700</bug_when>
    <thetext>Comment on attachment 201289
Patch

It would be awesome if we could teach StyleBot that there are okay in WK2 now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887123</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-09 15:37:10 -0700</bug_when>
    <thetext>Committed r149848: &lt;http://trac.webkit.org/changeset/149848&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201289</attachid>
            <date>2013-05-09 15:26:28 -0700</date>
            <delta_ts>2013-05-09 15:31:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115877-20130509152531.patch</filename>
            <type>text/plain</type>
            <size>165738</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTU0ZTk0ODM0YzYyYWRm
ZTFiNjkyYjFkNDBhMmU2OGMwYmRkZjBmMy4uNTAzNzAxMmRiZWYyYmE0ZThjY2MxY2E0Y2I4YjVk
N2JjYjE1NzMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwNSBAQAogMjAxMy0wNS0wOSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJlbW92ZSBleHRy
YSBzcGFjZXMgYmV0d2VlbiByaWdodCBhbmdsZSBicmFja2V0cyBpbiB0ZW1wbGF0ZSBkZWNsYXJh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NTg3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEMr
KzExIGRvZXNuJ3QgcmVxdWlyZSBzcGFjZXMgYmV0d2VlbiByaWdodCBhbmdsZSBicmFja2V0cyBz
byByZW1vdmUgYWxsIG9mIHRoZW0uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJ
L05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQmxvYlJl
Z2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQmxvYlJl
Z2lzdHJ5OjpzYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRmls
ZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5Lmg6CisgICAgICAgIChOZXR3b3JrQmxvYlJlZ2lzdHJ5
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ib3N0UmVjb3JkLmg6CisgICAgICAgIChIb3N0
UmVjb3JkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkwpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaDoKKyAgICAgICAgKE5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6c2VydmVQZW5kaW5nUmVxdWVzdHMpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpyZW1vdmVTY2hl
ZHVsZWRMb2FkZXJzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFibGVM
b2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmg6Cisg
ICAgICAgIChTY2hlZHVsYWJsZUxvYWRlcik6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9B
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlKToKKyAgICAgICAgKENv
cmVJUEM6OkNvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKToKKyAgICAgICAgKENvcmVJUEM6OkNv
bm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAoQ29ubmVjdGlvbik6CisgICAgICAgICogUGxh
dGZvcm0vV29ya1F1ZXVlLmg6CisgICAgICAgIChXb3JrUXVldWUpOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAoUGx1Z2luUHJvY2Vzcyk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ29y
ZUlQQyk6CisgICAgICAgICogU2hhcmVkL0Jsb2NraW5nUmVzcG9uc2VNYXAuaDoKKyAgICAgICAg
KEJsb2NraW5nUmVzcG9uc2VNYXApOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3NQcm94
eS5oOgorICAgICAgICAoQ2hpbGRQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFNoYXJlZC9JbW11
dGFibGVBcnJheS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltbXV0YWJsZUFycmF5OjpJbW11dGFi
bGVBcnJheSk6CisgICAgICAgICogU2hhcmVkL0ltbXV0YWJsZUFycmF5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OkltbXV0YWJsZUFycmF5OjphZG9wdCk6CisgICAgICAgIChJbW11dGFibGVBcnJheSk6
CisgICAgICAgICogU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpJbW11dGFibGVEaWN0aW9uYXJ5OjprZXlzKToKKyAgICAgICAgKiBTaGFyZWQvSW1tdXRh
YmxlRGljdGlvbmFyeS5oOgorICAgICAgICAoSW1tdXRhYmxlRGljdGlvbmFyeSk6CisgICAgICAg
ICogU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5o
OgorICAgICAgICAoQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyKToKKyAgICAgICAgKiBTaGFyZWQvU2Vj
dXJpdHlPcmlnaW5EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGVyZm9ybUFQSUNhbGxiYWNr
V2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3Rvcik6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25T
dGF0ZS5jcHA6CisgICAgICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmg6CisgICAgICAgIChT
dGF0aXN0aWNzRGF0YSk6CisgICAgICAgICogU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRGVjb2Rlcjo6YmFzZURlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBcmNoaXZlOjpX
ZWJBcmNoaXZlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXJjaGl2ZTo6c3VicmVzb3VyY2VzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXJjaGl2ZTo6c3ViZnJhbWVBcmNoaXZlcyk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHRNZW51SXRlbTo6c3VibWVudUl0ZW1zQXNJbW11dGFibGVBcnJheSk6CisgICAgICAgICog
U2hhcmVkL1dlYk9wZW5QYW5lbFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cGVuUGFuZWxQYXJhbWV0ZXJzOjphY2NlcHRNSU1FVHlwZXMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOjpzZWxlY3RlZEZpbGVOYW1lcyk6CisgICAgICAgICogU2hh
cmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKENvcmVJUEM6OmVuY29kZSk6
CisgICAgICAgICogU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmg6Cisg
ICAgICAgIChTaGFyZWRXb3JrZXJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9XS1ByaW50aW5nVmlldy5oOgorICAgICAgICAoV2ViRnJhbWVQcm94eSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAgICgtW1dLUHJpbnRp
bmdWaWV3IF9kcmF3UHJldmlldzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW06CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHlNYXA6
OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5TWFwLmg6CisgICAgICAgIChEb3dubG9hZFByb3h5TWFwKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3Iu
aDoKKyAgICAgICAgKER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvcik6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdl
clByb3h5Lmg6CisgICAgICAgIChDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAoTmV0
d29ya1Byb2Nlc3NQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaDoKKyAgICAgICAgKFBsdWdpblByb2Nlc3NNYW5hZ2Vy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKFBsdWdpblByb2Nlc3NQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyOjpkaWRHZXRTaXRlc1dpdGhEYXRhKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYlBsdWdp
blNpdGVEYXRhTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc01hbmFnZXIuaDoKKyAgICAgICAgKFNoYXJlZFdvcmtlclByb2Nlc3NN
YW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U3RhdGlzdGljc1JlcXVlc3Q6OmNvbXBsZXRlZFJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFN0b3JhZ2VNYW5hZ2VyOjpT
dG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJl
YTo6ZGlzcGF0Y2hFdmVudHMpOgorICAgICAgICAoU3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9y
YWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OlNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpjbG9uZVRvKToKKyAg
ICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZUxvY2FsU3RvcmFnZU1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU1hcCk6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpkZXN0cm95U3RvcmFnZU1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjppbnZhbGlkYXRlQ29ubmVjdGlvbkludGVy
bmFsKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmZpbmRTdG9yYWdlQXJlYSk6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpnZXRPckNyZWF0ZUxvY2FsU3RvcmFn
ZU5hbWVzcGFjZSk6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
aDoKKyAgICAgICAgKFN0b3JhZ2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdDo6YWRkSXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RBc0ltbXV0YWJsZUFycmF5
V2l0aExpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJk
TGlzdEFzSW1tdXRhYmxlQXJyYXlXaXRoTGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYWNr
Rm9yd2FyZExpc3Q6OmNsZWFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRM
aXN0Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmVuYWJsZVByb2Nlc3NUZXJtaW5hdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsdWdpbkluZm9TdG9yZURpZExvYWRQbHVn
aW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29u
dGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKFdlYkNvb2tpZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHk6OmRpZEdldERhdGFiYXNlc0J5T3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZEdldERhdGFiYXNlT3JpZ2lucyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9ybSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuaDoKKyAgICAgICAgKFdlYkZvcm1DbGllbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlckNs
aWVudDo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJMb2FkZXJDbGllbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0SG9zdG5hbWVzV2l0aE1lZGlhQ2FjaGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5Lmg6CisgICAg
ICAgIChXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNvbnRl
eHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoRXhjZWVkZWREYXRhYmFzZVF1b3RhUmVjb3Jkcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVsYXRlZFBhZ2VzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NOZXh0UXVldWVkV2hlZWxFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluZFN0cmluZ01hdGNoZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpwbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZEZpbmRTdHJpbmdNYXRjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaXNjb25uZWN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkQmVjb21lVW5yZXNwb25zaXZlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjppbnRlcmFjdGlvbk9jY3VycmVkV2hpbGVVbnJlc3Bv
bnNpdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEJlY29tZVJlc3Bv
bnNpdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpc2Nvbm5lY3RGcmFt
ZXNGcm9tUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZnJhbWVDb3Vu
dEluUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAoV2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAg
ICAgICAoV2ViS2l0Ojpwb3B1bGF0ZU5TTWVudSk6CisgICAgICAgIChXZWJLaXQ6Om5zTWVudUl0
ZW1WZWN0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3Np
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNl
UHJveHkuaDoKKyAgICAgICAgKFdlYkljb25EYXRhYmFzZVByb3h5KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLm1tOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbTo6Y2hpbGRyZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50OjpnZXRQYXN0ZWJvYXJkRGF0YUZv
clJhbmdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUZvcm1DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBh
Z2VGb3JtQ2xpZW50Ojp3aWxsU2VuZFN1Ym1pdEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oOgor
ICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmZlYXR1cmVz
VXNlZEluUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxl
cjo6aW50ZXJuYWxseUZhaWxlZExvYWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKyAgICAgICAg
KFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAo
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAoV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5QUnVudGltZU9i
amVjdE1hcDo6aW52YWxpZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5oOgorICAgICAgICAoTlBSdW50aW1lT2JqZWN0TWFwKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6c3RvcEFsbFN0cmVhbXMpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAg
ICAgICAoTmV0c2NhcGVQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oOgorICAgICAgICAoTmV0c2NhcGVQbHVnaW5TdHJl
YW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1Z2luLm1t
OgorICAgICAgICAoZ2V0QWxsU2NyaXB0c0luUERGRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0
OjpTaW1wbGVQREZQbHVnaW46OnJ1blNjcmlwdHNJblBERkRvY3VtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmg6CisgICAg
ICAgIChQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6
Y2FuY2VsQWxsU3RyZWFtcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuaDoKKyAgICAgICAgKFBsdWdpblZpZXcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpk
aXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcDo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZU5hbWVzcGFjZUltcGw6OnN0b3JhZ2VBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoKKyAgICAgICAgKFN0b3JhZ2VOYW1lc3BhY2VJbXBs
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OmtleVZhbHVlU3RvcmFnZU9yaWdpbklkZW50aWZpZXJz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFiYXNlTWFuYWdlcjo6Z2V0RGF0YWJhc2Vz
QnlPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhYmFzZU1hbmFnZXI6OmdldERhdGFi
YXNlT3JpZ2lucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmdldENsaWVu
dFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6ZG9jdW1lbnRGcmFnbWVudEZyb21BdHRyaWJ1dGVkU3Ry
aW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6Cisg
ICAgICAgIChFdmVudERpc3BhdGNoZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpmaW5k
U3RyaW5nTWF0Y2hlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmg6CisgICAgICAgIChGaW5kQ29udHJvbGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWU6OmNoaWxkRnJhbWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRyYWNrZWRSZXBhaW50UmVj
dHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9MYXllclRyZWVIb3N0TWFjLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAoVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnZpc2l0ZWRMaW5rU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWxsVmlzaXRlZExpbmtTdGF0ZUNoYW5nZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmb2N1c2VkV2ViUGFnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYlBh
Z2VHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OmFkZENhc2VGb2xkZWRDaGFyYWN0ZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6Z2V0V2ViQ29yZU1lbW9yeUNhY2hlU3RhdGlzdGljcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFRleHRDaGVja2VyU3RhdGUpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViUHJvY2Vzcyk6CisKKzIwMTMtMDUt
MDkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBVc2Ug
ZXhwbGljaXQgcXVhbGlmaWVycyBmb3IgbmFtZXMgaW4gdGhlIHN0ZDo6IG5hbWVzcGFjZQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1ODY4CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Js
b2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05l
dHdvcmtCbG9iUmVnaXN0cnkuY3BwCmluZGV4IDYyNzYzNzYwZTM2MTA5NzhkYTI0ZmUyMjkyOTAz
NzQwNjE3ZWFjMGQuLjFlNjBkNDAxYmVkN2RlNTM3MzA3NjMwYWEzMDUyYzEyZDk2ZDI5OGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Js
b2JSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRmlsZUFQ
SS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcApAQCAtNDcsMTIgKzQ3LDEyIEBAIE5ldHdvcmtCbG9i
UmVnaXN0cnk6Ok5ldHdvcmtCbG9iUmVnaXN0cnkoKQogewogfQogCi12b2lkIE5ldHdvcmtCbG9i
UmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyog
Y29ubmVjdGlvbiwgY29uc3QgS1VSTCYgdXJsLCBQYXNzT3duUHRyPEJsb2JEYXRhPiBkYXRhLCBj
b25zdCBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+ID4mIG5ld1NhbmRib3hFeHRlbnNp
b25zKQordm9pZCBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24sIGNvbnN0IEtVUkwmIHVybCwgUGFzc093
blB0cjxCbG9iRGF0YT4gZGF0YSwgY29uc3QgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9u
Pj4mIG5ld1NhbmRib3hFeHRlbnNpb25zKQogewogICAgIEFTU0VSVCghbV9zYW5kYm94RXh0ZW5z
aW9ucy5jb250YWlucyh1cmwuc3RyaW5nKCkpKTsKIAogICAgIC8vIENvbWJpbmUgbmV3IGV4dGVu
c2lvbnMgZm9yIEZpbGUgaXRlbXMgYW5kIGV4aXN0aW5nIGV4dGVuc2lvbnMgZm9yIGlubmVyIEJs
b2IgaXRlbXMuCi0gICAgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiA+IHNhbmRib3hF
eHRlbnNpb25zID0gbmV3U2FuZGJveEV4dGVuc2lvbnM7CisgICAgVmVjdG9yPFJlZlB0cjxTYW5k
Ym94RXh0ZW5zaW9uPj4gc2FuZGJveEV4dGVuc2lvbnMgPSBuZXdTYW5kYm94RXh0ZW5zaW9uczsK
ICAgICBjb25zdCBCbG9iRGF0YUl0ZW1MaXN0JiBpdGVtcyA9IGRhdGEtPml0ZW1zKCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gaXRlbXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkg
ewogICAgICAgICBpZiAoaXRlbXNbaV0udHlwZSA9PSBCbG9iRGF0YUl0ZW06OkJsb2IpCkBAIC0x
MDcsNyArMTA3LDcgQEAgdm9pZCBOZXR3b3JrQmxvYlJlZ2lzdHJ5Ojpjb25uZWN0aW9uVG9XZWJQ
cm9jZXNzRGlkQ2xvc2UoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlAKICAgICBtX2Jsb2JzRm9yQ29u
bmVjdGlvbi5yZW1vdmUoY29ubmVjdGlvbik7CiB9CiAKLWNvbnN0IFZlY3RvcjxSZWZQdHI8U2Fu
ZGJveEV4dGVuc2lvbj4gPiBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzYW5kYm94RXh0ZW5zaW9ucyhj
b25zdCBXZWJDb3JlOjpLVVJMJiB1cmwpCitjb25zdCBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+PiBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBXZWJD
b3JlOjpLVVJMJiB1cmwpCiB7CiAgICAgcmV0dXJuIG1fc2FuZGJveEV4dGVuc2lvbnMuZ2V0KHVy
bC5zdHJpbmcoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5oCmluZGV4IDUyZDJkZjljMTk4OTI5
M2ExMDM2NWI5NDg2NDUxYTFhZDg2OTcxYTUuLjZkNzFiYmZjOTYzMTJmYTVlZGU2YTY1NzI4MDUx
MTc3ZWE4ZTAwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Zp
bGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5oCkBAIC00NywyMSArNDcsMjEgQEAg
cHVibGljOgogICAgIE5ldHdvcmtCbG9iUmVnaXN0cnkoKTsKICAgICBzdGF0aWMgTmV0d29ya0Js
b2JSZWdpc3RyeSYgc2hhcmVkKCk7CiAKLSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBQYXNzT3duUHRy
PFdlYkNvcmU6OkJsb2JEYXRhPiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9u
PiA+Jik7CisgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiwgUGFzc093blB0cjxXZWJDb3JlOjpCbG9iRGF0
YT4sIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4+Jik7CiAgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqLCBjb25zdCBXZWJD
b3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgc3JjVVJMKTsKICAgICB2b2lkIHVucmVn
aXN0ZXJCbG9iVVJMKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiwgY29uc3QgV2ViQ29y
ZTo6S1VSTCYpOwogCiAgICAgdm9pZCBjb25uZWN0aW9uVG9XZWJQcm9jZXNzRGlkQ2xvc2UoTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqKTsKIAotICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
U2FuZGJveEV4dGVuc2lvbj4gPiBzYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBXZWJDb3JlOjpLVVJM
Jik7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPj4gc2FuZGJveEV4
dGVuc2lvbnMoY29uc3QgV2ViQ29yZTo6S1VSTCYpOwogCiBwcml2YXRlOgogICAgIH5OZXR3b3Jr
QmxvYlJlZ2lzdHJ5KCk7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmVm
UHRyPFNhbmRib3hFeHRlbnNpb24+ID4gPiBTYW5kYm94RXh0ZW5zaW9uTWFwOworICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4+PiBTYW5k
Ym94RXh0ZW5zaW9uTWFwOwogICAgIFNhbmRib3hFeHRlbnNpb25NYXAgbV9zYW5kYm94RXh0ZW5z
aW9uczsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyosIEhhc2hTZXQ8V2ViQ29yZTo6S1VSTD4gPiBCbG9iRm9yQ29ubmVjdGlvbk1hcDsKKyAgICB0
eXBlZGVmIEhhc2hNYXA8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqLCBIYXNoU2V0PFdl
YkNvcmU6OktVUkw+PiBCbG9iRm9yQ29ubmVjdGlvbk1hcDsKICAgICBCbG9iRm9yQ29ubmVjdGlv
bk1hcCBtX2Jsb2JzRm9yQ29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0hvc3RSZWNvcmQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0hvc3RSZWNvcmQuaAppbmRleCA4NDYxMWExOWFjMDcwMGUwMmRiYjk2MzQzMDlhMjhk
YmJjZDNlMTc4Li5lN2I2YjUyZDU1MDZhOWJkY2U3MzI2ZGM5YWFmNjBiODlmZjFjNDc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Ib3N0UmVjb3JkLmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5oCkBAIC02NCw3ICs2NCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSG9zdFJlY29yZChjb25zdCBTdHJpbmcmIG5hbWUs
IGludCBtYXhSZXF1ZXN0c0luRmxpZ2h0KTsKIAotICAgIHR5cGVkZWYgRGVxdWU8UmVmUHRyPFNj
aGVkdWxhYmxlTG9hZGVyPiA+IExvYWRlclF1ZXVlOworICAgIHR5cGVkZWYgRGVxdWU8UmVmUHRy
PFNjaGVkdWxhYmxlTG9hZGVyPj4gTG9hZGVyUXVldWU7CiAKICAgICB2b2lkIHNlcnZlUGVuZGlu
Z1JlcXVlc3RzRm9yUXVldWUoTG9hZGVyUXVldWUmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlv
cml0eSk7CiAgICAgYm9vbCBsaW1pdHNSZXF1ZXN0cyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlv
cml0eSwgYm9vbCBzZXJpYWxMb2FkaW5nRW5hYmxlZCkgY29uc3Q7CkBAIC03Miw3ICs3Miw3IEBA
IHByaXZhdGU6CiAgICAgTG9hZGVyUXVldWUgbV9sb2FkZXJzUGVuZGluZ1tXZWJDb3JlOjpSZXNv
dXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QgKyAxXTsKICAgICBMb2FkZXJRdWV1ZSBtX3N5bmNMb2Fk
ZXJzUGVuZGluZzsKIAotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8U2NoZWR1bGFibGVMb2Fk
ZXI+ID4gU2NoZWR1bGFibGVMb2FkZXJTZXQ7CisgICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxT
Y2hlZHVsYWJsZUxvYWRlcj4+IFNjaGVkdWxhYmxlTG9hZGVyU2V0OwogICAgIFNjaGVkdWxhYmxl
TG9hZGVyU2V0IG1fbG9hZGVyc0luUHJvZ3Jlc3M7CiAKICAgICBjb25zdCBTdHJpbmcgbV9uYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDI0YjY3Yjc2YTVhZDE2NzEyY2Vj
NmM3MzI3N2ZhMTZjNDBhNGY3YjcuLmJlMDkyN2RiZTBhOTIwNDVlOTgwNTk0NTkzNTQ3ZTAyZDBm
MGNiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTczLDcgKzczLDcgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmUKICAgICB9CiAKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gPjo6aXRlcmF0b3IgbG9hZGVySXRlcmF0
b3IgPSBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnMuZmluZChkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSk7CisgICAgICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVmUHRyPE5ldHdv
cmtSZXNvdXJjZUxvYWRlcj4+OjppdGVyYXRvciBsb2FkZXJJdGVyYXRvciA9IG1fbmV0d29ya1Jl
c291cmNlTG9hZGVycy5maW5kKGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAgICAgICAgaWYg
KGxvYWRlckl0ZXJhdG9yICE9IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5lbmQoKSkKICAgICAg
ICAgICAgIGxvYWRlckl0ZXJhdG9yLT52YWx1ZS0+ZGlkUmVjZWl2ZU5ldHdvcmtSZXNvdXJjZUxv
YWRlck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKQEAgLTk2
LDEyICs5NiwxMiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9z
ZShDb3JlSVBDOjpDb25uZWN0aW9uKikKICAgICAvLyBQcm90ZWN0IG91cnNlbGYgYXMgd2UgbWln
aHQgYmUgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgZHVyaW5nIHRoaXMgZnVuY3Rpb24uCiAgICAgUmVm
UHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBwcm90ZWN0b3IodGhpcyk7CiAKLSAg
ICBIYXNoTWFwPFJlc291cmNlTG9hZElkZW50aWZpZXIsIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VM
b2FkZXI+ID46Oml0ZXJhdG9yIGVuZCA9IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5lbmQoKTsK
LSAgICBmb3IgKEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVmUHRyPE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcj4gPjo6aXRlcmF0b3IgaSA9IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5i
ZWdpbigpOyBpICE9IGVuZDsgKytpKQorICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4+OjppdGVyYXRvciBlbmQgPSBtX25ldHdv
cmtSZXNvdXJjZUxvYWRlcnMuZW5kKCk7CisgICAgZm9yIChIYXNoTWFwPFJlc291cmNlTG9hZElk
ZW50aWZpZXIsIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+Pjo6aXRlcmF0b3IgaSA9IG1f
bmV0d29ya1Jlc291cmNlTG9hZGVycy5iZWdpbigpOyBpICE9IGVuZDsgKytpKQogICAgICAgICBp
LT52YWx1ZS0+YWJvcnQoKTsKIAotICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
UmVmUHRyPFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI+ID46Oml0ZXJhdG9yIHN5bmNFbmQgPSBt
X3N5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmVuZCgpOwotICAgIGZvciAoSGFzaE1hcDxSZXNv
dXJjZUxvYWRJZGVudGlmaWVyLCBSZWZQdHI8U3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcj4gPjo6
aXRlcmF0b3IgaSA9IG1fc3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsgaSAhPSBz
eW5jRW5kOyArK2kpCisgICAgSGFzaE1hcDxSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBSZWZQdHI8
U3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcj4+OjppdGVyYXRvciBzeW5jRW5kID0gbV9zeW5jTmV0
d29ya1Jlc291cmNlTG9hZGVycy5lbmQoKTsKKyAgICBmb3IgKEhhc2hNYXA8UmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgUmVmUHRyPFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI+Pjo6aXRlcmF0b3Ig
aSA9IG1fc3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsgaSAhPSBzeW5jRW5kOyAr
K2kpCiAgICAgICAgIGktPnZhbHVlLT5hYm9ydCgpOwogCiAgICAgTmV0d29ya0Jsb2JSZWdpc3Ry
eTo6c2hhcmVkKCkuY29ubmVjdGlvblRvV2ViUHJvY2Vzc0RpZENsb3NlKHRoaXMpOwpAQCAtMjEw
LDcgKzIxMCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVy
QmxvYlVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEJsb2JSCiB7CiAgICAgLy8gRklYTUU6IHVu
cmVnaXN0ZXIgYWxsIFVSTHMgd2hlbiBwcm9jZXNzIGNvbm5lY3Rpb24gY2xvc2VzLgogCi0gICAg
VmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiA+IGV4dGVuc2lvbnM7CisgICAgVmVjdG9y
PFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPj4gZXh0ZW5zaW9uczsKICAgICBmb3IgKHNpemVfdCBp
ID0gMCwgY291bnQgPSBkYXRhLnNhbmRib3hFeHRlbnNpb25zKCkuc2l6ZSgpOyBpIDwgY291bnQ7
ICsraSkgewogICAgICAgICBpZiAoUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGV4dGVuc2lvbiA9
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShkYXRhLnNhbmRib3hFeHRlbnNpb25zKClbaV0pKQog
ICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCmluZGV4IDliZWQ2MzhiMGUyYTk4ZGIzMWM2MTUyMDhlNWNhMzMwZGRjODJhMGEu
LmU2MzIxNTgxMmJhNzI2MWI2NWFjNGZiYjExNWJhM2E5MjM4NzM1MTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtOTIsOCArOTIsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPENv
cmVJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAotICAgIEhhc2hNYXA8UmVzb3VyY2VM
b2FkSWRlbnRpZmllciwgUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gPiBtX25ldHdvcmtS
ZXNvdXJjZUxvYWRlcnM7Ci0gICAgSGFzaE1hcDxSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBSZWZQ
dHI8U3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcj4gPiBtX3N5bmNOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXJzOworICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVmUHRyPE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcj4+IG1fbmV0d29ya1Jlc291cmNlTG9hZGVyczsKKyAgICBIYXNoTWFwPFJl
c291cmNlTG9hZElkZW50aWZpZXIsIFJlZlB0cjxTeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyPj4g
bV9zeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyczsKIAogICAgIGJvb2wgbV9zZXJpYWxMb2FkaW5n
RW5hYmxlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCA4NDE2ZmI3ZDc0YjFjODk5NzYwYTE0MTBmNzBhYzFhYWJhZGEzMDI1Li4w
MGY0MDY4Y2Y4MDEyODNhMmI4NmYwNWRmYmI1YTU0Nzk1YjMxYWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTExNiw3ICsxMTYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpOwog
CiAgICAgLy8gQ29ubmVjdGlvbnMgdG8gV2ViUHJvY2Vzc2VzLgotICAgIFZlY3RvcjxSZWZQdHI8
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+ID4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnM7
CisgICAgVmVjdG9yPFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zOwogCiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlciBt
X25ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI7CiAKQEAgLTEyNCw3ICsxMjQsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsOwogICAgIENhY2hlTW9kZWwgbV9jYWNo
ZU1vZGVsOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBPd25QdHI8TmV0d29y
a1Byb2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4gPiBOZXR3b3JrUHJvY2Vz
c1N1cHBsZW1lbnRNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBPd25QdHI8
TmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+IE5ldHdvcmtQ
cm9jZXNzU3VwcGxlbWVudE1hcDsKICAgICBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnRNYXAgbV9z
dXBwbGVtZW50czsKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAKaW5kZXggNjE4MzA1NWMzMzE5NDg5ZjEwYzFhZTA1ZjZkYjYzNDA1OWJjMzZmOC4uM2NlNzVj
OGYzMmIyNTA2ZmU0MTEyYzljNTU2Mzk1OGQ4ODMzNzUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OnNlcnZlUGVuZGluZ1JlcXVlc3RzKFJlc291cmNlTG9hZFByaW9yaXR5IG1pbgogICAg
IG1fbm9uSFRUUFByb3RvY29sSG9zdC0+c2VydmVQZW5kaW5nUmVxdWVzdHMobWluaW11bVByaW9y
aXR5KTsKIAogICAgIG1faG9zdHMuY2hlY2tDb25zaXN0ZW5jeSgpOwotICAgIFZlY3RvcjxSZWZQ
dHI8SG9zdFJlY29yZD4gPiBob3N0c1RvU2VydmU7CisgICAgVmVjdG9yPFJlZlB0cjxIb3N0UmVj
b3JkPj4gaG9zdHNUb1NlcnZlOwogICAgIGNvcHlWYWx1ZXNUb1ZlY3RvcihtX2hvc3RzLCBob3N0
c1RvU2VydmUpOwogCiAgICAgc2l6ZV90IHNpemUgPSBob3N0c1RvU2VydmUuc2l6ZSgpOwpAQCAt
MTQ5LDcgKzE0OSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVtb3Zl
U2NoZWR1bGVkTG9hZGVycyh2b2lkKiBjb250ZXh0KQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnJlbW92ZVNjaGVkdWxlZExvYWRlcnMoKQogewotICAgIFZlY3RvcjxSZWZQ
dHI8U2NoZWR1bGFibGVMb2FkZXI+ID4gbG9hZGVyc1RvUmVtb3ZlOworICAgIFZlY3RvcjxSZWZQ
dHI8U2NoZWR1bGFibGVMb2FkZXI+PiBsb2FkZXJzVG9SZW1vdmU7CiAgICAgewogICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9sb2FkZXJzVG9SZW1vdmVNdXRleCk7CiAgICAgICAgIGxvYWRl
cnNUb1JlbW92ZSA9IG1fbG9hZGVyc1RvUmVtb3ZlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oCmlu
ZGV4IDE3NWUzZTYzODgxZmIyMzA2NzJlOTk0NjI5MDM3ZDc3NmRmODA1ZTkuLjM0MGNmNzdmOTJj
NzFkZjZhN2E3YjVlMzFkNTNhYWNjM2Y4NzZkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgK
QEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBS
ZWZQdHI8SG9zdFJlY29yZD4sIFN0cmluZ0hhc2g+IEhvc3RNYXA7CiAgICAgSG9zdE1hcCBtX2hv
c3RzOwogCi0gICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxTY2hlZHVsYWJsZUxvYWRlcj4gPiBT
Y2hlZHVsYWJsZUxvYWRlclNldDsKKyAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFNjaGVkdWxh
YmxlTG9hZGVyPj4gU2NoZWR1bGFibGVMb2FkZXJTZXQ7CiAgICAgU2NoZWR1bGFibGVMb2FkZXJT
ZXQgbV9sb2FkZXJzOwogCiAgICAgUmVmUHRyPEhvc3RSZWNvcmQ+IG1fbm9uSFRUUFByb3RvY29s
SG9zdDsKQEAgLTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpUaW1lcjxOZXR3
b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyPiBtX3JlcXVlc3RUaW1lcjsKICAgICAKICAgICBNdXRl
eCBtX2xvYWRlcnNUb1JlbW92ZU11dGV4OwotICAgIFZlY3RvcjxSZWZQdHI8U2NoZWR1bGFibGVM
b2FkZXI+ID4gbV9sb2FkZXJzVG9SZW1vdmU7CisgICAgVmVjdG9yPFJlZlB0cjxTY2hlZHVsYWJs
ZUxvYWRlcj4+IG1fbG9hZGVyc1RvUmVtb3ZlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRl
ci5jcHAKaW5kZXggNDI5ZTI2NTRiYWNiMTRkMTYzZGI1ZWQ1NGRkZDRlMjNhZjA0MTRlNy4uNThm
ZWJjMTFmYmMwMmQ2MTQ1ODE1NDE4M2UxYTYxYzZiMGE0MDU2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmNwcApAQCAtNjEsNyAr
NjEsNyBAQCBTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFibGVMb2FkZXIoY29uc3QgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIHBhcmFtZQogICAgICAgICBjb25zdCBWZWN0b3I8Rm9y
bURhdGFFbGVtZW50PiYgZWxlbWVudHMgPSBtX3JlcXVlc3QuaHR0cEJvZHkoKS0+ZWxlbWVudHMo
KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gZWxlbWVudHMuc2l6ZSgpOyBp
IDwgY291bnQ7ICsraSkgewogICAgICAgICAgICAgaWYgKGVsZW1lbnRzW2ldLm1fdHlwZSA9PSBG
b3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRCbG9iKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiA+IGJsb2JFbGVtZW50RXh0ZW5zaW9ucyA9IE5ldHdvcmtC
bG9iUmVnaXN0cnk6OnNoYXJlZCgpLnNhbmRib3hFeHRlbnNpb25zKGVsZW1lbnRzW2ldLm1fdXJs
KTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBibG9i
RWxlbWVudEV4dGVuc2lvbnMgPSBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaGFyZWQoKS5zYW5kYm94
RXh0ZW5zaW9ucyhlbGVtZW50c1tpXS5tX3VybCk7CiAgICAgICAgICAgICAgICAgbV9yZXF1ZXN0
Qm9keVNhbmRib3hFeHRlbnNpb25zLmFwcGVuZFZlY3RvcihibG9iRWxlbWVudEV4dGVuc2lvbnMp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaAppbmRleCBiN2M4MTRlYmI1MmVhMDAyNDEwMjY5
MjFiMWQyN2YzMTNjOTg1NGFhLi5jNDIwNmQxODU1NTJkNjhiM2EwMDdjY2FkN2M1NGY3YTcyZGE3
Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJs
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxl
TG9hZGVyLmgKQEAgLTg2LDggKzg2LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKICAgICBib29sIG1faXNMb2FkaW5nTWFp
blJlc291cmNlOwogCi0gICAgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiA+IG1fcmVx
dWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9uczsKLSAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+ID4gbV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb25zOworICAgIFZlY3RvcjxSZWZQdHI8
U2FuZGJveEV4dGVuc2lvbj4+IG1fcmVxdWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9uczsKKyAgICBW
ZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lv
bnM7CiAKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVj
dGlvbjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1l
bnRDb2RlcnMuaAppbmRleCA2YzgyNDFlNzFhMTViOThiMThlNmIyZGNkZGZjNGM5MzVmYzNlZTE0
Li4zM2I5NmMxOWVlMjc3ZjRjMzgzMTFkN2I4MjU4ZTZlYjdhYjQyOGE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVycy5oCkBAIC00OSw3ICs0
OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsK
ICAgICB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4gPiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBhaXI8
VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFp
ci5zZWNvbmQ7CkBAIC03MSw3ICs3MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBVPiA+IHsKICAgICB9CiB9Owog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBLZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4gPiB7Cit0
ZW1wbGF0ZTx0eXBlbmFtZSBLZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6Oktl
eVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5j
b2RlciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVlOwpAQCAtMTU1LDkgKzE1NSw5IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBWZWN0b3JBcmd1bWVudENvZGVyPHRydWUsIFQ+IHsKICAg
ICB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxWZWN0
b3I8VD4gPiA6IFZlY3RvckFyZ3VtZW50Q29kZXI8V1RGOjpJc0FyaXRobWV0aWM8VD46OnZhbHVl
LCBUPiB7IH07Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxWZWN0
b3I8VD4+IDogVmVjdG9yQXJndW1lbnRDb2RlcjxXVEY6OklzQXJpdGhtZXRpYzxUPjo6dmFsdWUs
IFQ+IHsgfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcs
IHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVk
VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJn
LCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz4gPiB7Cit0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+IHN0cnVjdCBBcmd1
bWVudENvZGVyPEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0Fy
ZywgTWFwcGVkVHJhaXRzQXJnPj4gewogICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBl
ZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+IEhhc2hNYXBUeXBl
OwogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgSGFzaE1hcFR5cGUmIGhhc2hNYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCA1ZGQwNzRhNWUyODkzNDM2MjdhZTg2ZjNmNDdhNTc1
YmI4ZTNhY2RkLi43Njc5MjYwOWMwNTFkMjkzNWNmZWNmZjcyY2QxMmE1Nzc5MjdhOTlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTg0
LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBNdXRleCBtX211dGV4OwogCiAgICAgLy8gVGhlIHNl
dCBvZiBjb25uZWN0aW9ucyBmb3Igd2hpY2ggd2UndmUgc2NoZWR1bGVkIGEgY2FsbCB0byBkaXNw
YXRjaE1lc3NhZ2VBbmRSZXNldERpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc0ZvckNvbm5lY3Rp
b24uCi0gICAgSGFzaFNldDxSZWZQdHI8Q29ubmVjdGlvbj4gPiBtX2RpZFNjaGVkdWxlRGlzcGF0
Y2hNZXNzYWdlc1dvcmtTZXQ7CisgICAgSGFzaFNldDxSZWZQdHI8Q29ubmVjdGlvbj4+IG1fZGlk
U2NoZWR1bGVEaXNwYXRjaE1lc3NhZ2VzV29ya1NldDsKIAogICAgIHN0cnVjdCBDb25uZWN0aW9u
QW5kSW5jb21pbmdNZXNzYWdlIHsKICAgICAgICAgUmVmUHRyPENvbm5lY3Rpb24+IGNvbm5lY3Rp
b247CkBAIC0zODYsNyArMzg2LDcgQEAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVj
dGlvbjo6d2FpdEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWMKICAgICB7CiAg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2luY29taW5nTWVzc2FnZXNMb2NrKTsKIAotICAg
ICAgICBmb3IgKERlcXVlPE93blB0cjxNZXNzYWdlRGVjb2Rlcj4gPjo6aXRlcmF0b3IgaXQgPSBt
X2luY29taW5nTWVzc2FnZXMuYmVnaW4oKSwgZW5kID0gbV9pbmNvbWluZ01lc3NhZ2VzLmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgZm9yIChEZXF1ZTxPd25QdHI8TWVzc2FnZURl
Y29kZXI+Pjo6aXRlcmF0b3IgaXQgPSBtX2luY29taW5nTWVzc2FnZXMuYmVnaW4oKSwgZW5kID0g
bV9pbmNvbWluZ01lc3NhZ2VzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAg
IE93blB0cjxNZXNzYWdlRGVjb2Rlcj4mIG1lc3NhZ2UgPSAqaXQ7CiAKICAgICAgICAgICAgIGlm
IChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gbWVzc2FnZVJlY2VpdmVyTmFtZSAm
JiBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpID09IG1lc3NhZ2VOYW1lICYmIG1lc3NhZ2UtPmRlc3Rp
bmF0aW9uSUQoKSA9PSBkZXN0aW5hdGlvbklEKSB7CkBAIC00MTYsNyArNDE2LDcgQEAgUGFzc093
blB0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2FpdEZvck1lc3NhZ2UoU3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWMKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBNdXRleExvY2tl
ciBsb2NrZXIobV93YWl0Rm9yTWVzc2FnZU11dGV4KTsKIAotICAgICAgICBIYXNoTWFwPHN0ZDo6
cGFpcjxzdGQ6OnBhaXI8U3RyaW5nUmVmZXJlbmNlLCBTdHJpbmdSZWZlcmVuY2U+LCB1aW50NjRf
dD4sIE93blB0cjxNZXNzYWdlRGVjb2Rlcj4gPjo6aXRlcmF0b3IgaXQgPSBtX3dhaXRGb3JNZXNz
YWdlTWFwLmZpbmQobWVzc2FnZUFuZERlc3RpbmF0aW9uKTsKKyAgICAgICAgSGFzaE1hcDxzdGQ6
OnBhaXI8c3RkOjpwYWlyPFN0cmluZ1JlZmVyZW5jZSwgU3RyaW5nUmVmZXJlbmNlPiwgdWludDY0
X3Q+LCBPd25QdHI8TWVzc2FnZURlY29kZXI+Pjo6aXRlcmF0b3IgaXQgPSBtX3dhaXRGb3JNZXNz
YWdlTWFwLmZpbmQobWVzc2FnZUFuZERlc3RpbmF0aW9uKTsKICAgICAgICAgaWYgKGl0LT52YWx1
ZSkgewogICAgICAgICAgICAgT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyID0gaXQtPnZh
bHVlLnJlbGVhc2UoKTsKICAgICAgICAgICAgIG1fd2FpdEZvck1lc3NhZ2VNYXAucmVtb3ZlKGl0
KTsKQEAgLTYzNCw3ICs2MzQsNyBAQCB2b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01l
c3NhZ2UoUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gaW5jb21pbmdNZXNzYQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgSGFzaE1hcDxTdHJpbmdSZWZlcmVuY2UsIHN0ZDo6cGFpcjxS
ZWZQdHI8V29ya1F1ZXVlPiwgUmVmUHRyPFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcj4gPiA+Ojpj
b25zdF9pdGVyYXRvciBpdCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5maW5kKG1lc3Nh
Z2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgSGFzaE1hcDxTdHJpbmdSZWZlcmVuY2Us
IHN0ZDo6cGFpcjxSZWZQdHI8V29ya1F1ZXVlPiwgUmVmUHRyPFdvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlcj4+Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMu
ZmluZChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAgIGlmIChpdCAhPSBtX3dv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuZW5kKCkpIHsKICAgICAgICAgaXQtPnZhbHVlLmZpcnN0
LT5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlck1lc3NhZ2UsIHRoaXMsIGl0LT52YWx1ZS5zZWNvbmQsIG1lc3NhZ2UucmVsZWFzZSgpLmxl
YWtQdHIoKSkpOwogICAgICAgICByZXR1cm47CkBAIC02NTAsNyArNjUwLDcgQEAgdm9pZCBDb25u
ZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKFBhc3NPd25QdHI8TWVzc2FnZURlY29kZXI+
IGluY29taW5nTWVzc2EKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dhaXRG
b3JNZXNzYWdlTXV0ZXgpOwogCi0gICAgICAgIEhhc2hNYXA8c3RkOjpwYWlyPHN0ZDo6cGFpcjxT
dHJpbmdSZWZlcmVuY2UsIFN0cmluZ1JlZmVyZW5jZT4sIHVpbnQ2NF90PiwgT3duUHRyPE1lc3Nh
Z2VEZWNvZGVyPiA+OjppdGVyYXRvciBpdCA9IG1fd2FpdEZvck1lc3NhZ2VNYXAuZmluZChzdGQ6
Om1ha2VfcGFpcihzdGQ6Om1ha2VfcGFpcihtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkpLCBtZXNzYWdlLT5kZXN0aW5hdGlvbklEKCkpKTsKKyAg
ICAgICAgSGFzaE1hcDxzdGQ6OnBhaXI8c3RkOjpwYWlyPFN0cmluZ1JlZmVyZW5jZSwgU3RyaW5n
UmVmZXJlbmNlPiwgdWludDY0X3Q+LCBPd25QdHI8TWVzc2FnZURlY29kZXI+Pjo6aXRlcmF0b3Ig
aXQgPSBtX3dhaXRGb3JNZXNzYWdlTWFwLmZpbmQoc3RkOjptYWtlX3BhaXIoc3RkOjptYWtlX3Bh
aXIobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtZXNzYWdlLT5tZXNzYWdlTmFtZSgp
KSwgbWVzc2FnZS0+ZGVzdGluYXRpb25JRCgpKSk7CiAgICAgICAgIGlmIChpdCAhPSBtX3dhaXRG
b3JNZXNzYWdlTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICBpdC0+dmFsdWUgPSBtZXNzYWdlLnJl
bGVhc2UoKTsKICAgICAgICAgICAgIEFTU0VSVChpdC0+dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAppbmRleCAxMjNjYzk3NTcyNmNkZjQ3Mzll
ZGFkNjk2ODNiMGU1MDc1MmYyZTAxLi5jNThkNGExMjY5MzliYWNlZmZjNjdiNGI2MDAyOTRiMDQ3
YjFhY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24u
aApAQCAtMjMzLDcgKzIzMyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9j
b25uZWN0aW9uUXVldWU7CiAgICAgV2ViQ29yZTo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwog
Ci0gICAgSGFzaE1hcDxTdHJpbmdSZWZlcmVuY2UsIHN0ZDo6cGFpcjxSZWZQdHI8V29ya1F1ZXVl
PiwgUmVmUHRyPFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcj4gPiA+IG1fd29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyczsKKyAgICBIYXNoTWFwPFN0cmluZ1JlZmVyZW5jZSwgc3RkOjpwYWlyPFJlZlB0
cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyPj4+IG1fd29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyczsKIAogICAgIHVuc2lnbmVkIG1faW5EaXNwYXRjaE1lc3NhZ2VD
b3VudDsKICAgICB1bnNpZ25lZCBtX2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseUNvdW50OwpAQCAtMjQxLDE1ICsyNDEsMTUgQEAgcHJpdmF0ZToK
IAogICAgIC8vIEluY29taW5nIG1lc3NhZ2VzLgogICAgIE11dGV4IG1faW5jb21pbmdNZXNzYWdl
c0xvY2s7Ci0gICAgRGVxdWU8T3duUHRyPE1lc3NhZ2VEZWNvZGVyPiA+IG1faW5jb21pbmdNZXNz
YWdlczsKKyAgICBEZXF1ZTxPd25QdHI8TWVzc2FnZURlY29kZXI+PiBtX2luY29taW5nTWVzc2Fn
ZXM7CiAKICAgICAvLyBPdXRnb2luZyBtZXNzYWdlcy4KICAgICBNdXRleCBtX291dGdvaW5nTWVz
c2FnZXNMb2NrOwotICAgIERlcXVlPE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gPiBtX291dGdvaW5n
TWVzc2FnZXM7CisgICAgRGVxdWU8T3duUHRyPE1lc3NhZ2VFbmNvZGVyPj4gbV9vdXRnb2luZ01l
c3NhZ2VzOwogICAgIAogICAgIFRocmVhZENvbmRpdGlvbiBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0
aW9uOwogICAgIE11dGV4IG1fd2FpdEZvck1lc3NhZ2VNdXRleDsKLSAgICBIYXNoTWFwPHN0ZDo6
cGFpcjxzdGQ6OnBhaXI8U3RyaW5nUmVmZXJlbmNlLCBTdHJpbmdSZWZlcmVuY2U+LCB1aW50NjRf
dD4sIE93blB0cjxNZXNzYWdlRGVjb2Rlcj4gPiBtX3dhaXRGb3JNZXNzYWdlTWFwOworICAgIEhh
c2hNYXA8c3RkOjpwYWlyPHN0ZDo6cGFpcjxTdHJpbmdSZWZlcmVuY2UsIFN0cmluZ1JlZmVyZW5j
ZT4sIHVpbnQ2NF90PiwgT3duUHRyPE1lc3NhZ2VEZWNvZGVyPj4gbV93YWl0Rm9yTWVzc2FnZU1h
cDsKIAogICAgIC8vIFJlcHJlc2VudHMgYSBzeW5jIHJlcXVlc3QgZm9yIHdoaWNoIHdlJ3JlIHdh
aXRpbmcgb24gYSByZXBseS4KICAgICBzdHJ1Y3QgUGVuZGluZ1N5bmNSZXBseSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1dvcmtRdWV1ZS5oCmluZGV4IGFjMDJkMTg0MDA2MzgzMTQwOGI1MWQ0ZDZkMGEz
MmYzZThjZTcyNTcuLmQ5NTRmNTdkYjRmNmRkNzBjMmI2MWUwZjhmN2I0NmExZTExMWY0OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCkBAIC0xNDIsMTAgKzE0MiwxMCBAQCBwcml2
YXRlOgogICAgIHZvbGF0aWxlIExPTkcgbV9pc1dvcmtUaHJlYWRSZWdpc3RlcmVkOwogCiAgICAg
TXV0ZXggbV93b3JrSXRlbVF1ZXVlTG9jazsKLSAgICBWZWN0b3I8UmVmUHRyPFdvcmtJdGVtV2lu
PiA+IG1fd29ya0l0ZW1RdWV1ZTsKKyAgICBWZWN0b3I8UmVmUHRyPFdvcmtJdGVtV2luPj4gbV93
b3JrSXRlbVF1ZXVlOwogCiAgICAgTXV0ZXggbV9oYW5kbGVzTG9jazsKLSAgICBIYXNoTWFwPEhB
TkRMRSwgUmVmUHRyPEhhbmRsZVdvcmtJdGVtPiA+IG1faGFuZGxlczsKKyAgICBIYXNoTWFwPEhB
TkRMRSwgUmVmUHRyPEhhbmRsZVdvcmtJdGVtPj4gbV9oYW5kbGVzOwogCiAgICAgSEFORExFIG1f
dGltZXJRdWV1ZTsKICNlbGlmIFBMQVRGT1JNKFFUKQpAQCAtMTY0LDggKzE2NCw4IEBAIHByaXZh
dGU6CiAgICAgTXV0ZXggbV9ldmVudFNvdXJjZXNMb2NrOwogICAgIGNsYXNzIEV2ZW50U291cmNl
OwogICAgIGNsYXNzIFNvY2tldEV2ZW50U291cmNlOwotICAgIEhhc2hNYXA8aW50LCBWZWN0b3I8
U29ja2V0RXZlbnRTb3VyY2UqPiA+IG1fZXZlbnRTb3VyY2VzOwotICAgIHR5cGVkZWYgSGFzaE1h
cDxpbnQsIFZlY3RvcjxTb2NrZXRFdmVudFNvdXJjZSo+ID46Oml0ZXJhdG9yIFNvY2tldEV2ZW50
U291cmNlSXRlcmF0b3I7CisgICAgSGFzaE1hcDxpbnQsIFZlY3RvcjxTb2NrZXRFdmVudFNvdXJj
ZSo+PiBtX2V2ZW50U291cmNlczsKKyAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBWZWN0b3I8U29j
a2V0RXZlbnRTb3VyY2UqPj46Oml0ZXJhdG9yIFNvY2tldEV2ZW50U291cmNlSXRlcmF0b3I7CiAj
ZWxpZiBQTEFURk9STShFRkwpCiAgICAgY2xhc3MgVGltZXJXb3JrSXRlbSB7CiAgICAgcHVibGlj
OgpAQCAtMTkwLDEzICsxOTAsMTMgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV90aHJlYWRMb29w
OwogCi0gICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX3dvcmtJdGVtUXVldWU7CisgICAg
VmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fd29ya0l0ZW1RdWV1ZTsKICAgICBNdXRleCBtX3dv
cmtJdGVtUXVldWVMb2NrOwogCiAgICAgaW50IG1fc29ja2V0RGVzY3JpcHRvcjsKICAgICBGdW5j
dGlvbjx2b2lkKCk+IG1fc29ja2V0RXZlbnRIYW5kbGVyOwogCi0gICAgVmVjdG9yPE93blB0cjxU
aW1lcldvcmtJdGVtPiA+IG1fdGltZXJXb3JrSXRlbXM7CisgICAgVmVjdG9yPE93blB0cjxUaW1l
cldvcmtJdGVtPj4gbV90aW1lcldvcmtJdGVtczsKICAgICBNdXRleCBtX3RpbWVyV29ya0l0ZW1z
TG9jazsKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1RocmVhZChjb25zdCBjaGFyKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDJhNTEwNzdi
NGYzMzU1YjliNmNkZjk1Y2Q0ZDQ2ZjdlMmE0YjUzMzQuLjczY2UwYWMwMTY2YTc3NDI3Y2I1YTFm
NzUwMzFmYjhkNDI0MDI4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRNaW5p
bXVtTGlmZXRpbWUoZG91YmxlKTsKICAgICB2b2lkIG1pbmltdW1MaWZldGltZVRpbWVyRmlyZWQo
KTsKICAgICAvLyBPdXIgd2ViIHByb2Nlc3MgY29ubmVjdGlvbnMuCi0gICAgVmVjdG9yPFJlZlB0
cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gPiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uczsKKyAgICBW
ZWN0b3I8UmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bnM7CiAKICAgICAvLyBUaGUgcGx1Zy1pbiBwYXRoLgogICAgIFN0cmluZyBtX3BsdWdpblBhdGg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5p
dHRlc3QucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRl
c3QucHkKaW5kZXggNmRmMWMyMTJkYjg2MTAzNTU3ZTZhZjU1YzA4NGM2N2MxYjFhZTNmNi4uYTdh
NDAzY2E2YzgzN2ViYWQ1MTgwOGQ4MzFjZDdjNjRmYTFmY2UzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQpAQCAtNjIsNyAr
NjIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFByZWZl
cmVuY2VzRGlkQ2hhbmdlKFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICAgICBT
ZW5kRG91YmxlQW5kRmxvYXQoZG91YmxlIGQsIGZsb2F0IGYpCi0gICAgU2VuZEludHMoVmVjdG9y
PHVpbnQ2NF90PiBpbnRzLCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90PiA+IGludFZlY3RvcnMpCisg
ICAgU2VuZEludHMoVmVjdG9yPHVpbnQ2NF90PiBpbnRzLCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90
Pj4gaW50VmVjdG9ycykKIAogICAgIENyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5j
ZUlELCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoYm9vbCByZXN1
bHQpCiAgICAgUnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5n
IG1lc3NhZ2UpIC0+ICgpCkBAIC03Myw3ICs3Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVn
YWN5UmVjZWl2ZXIgewogCiAgICAgVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMoW0F0dHJpYnV0ZU9u
ZSBBdHRyaWJ1dGVUd29dIHVpbnQ2NF90IGZvbywgZG91YmxlIGJhciwgW0F0dHJpYnV0ZVRocmVl
XSBkb3VibGUgYmF6KQogCi0gICAgVGVtcGxhdGVUZXN0KFdURjo6SGFzaE1hcDxTdHJpbmcsIHN0
ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90PiA+IGEpCisgICAgVGVtcGxhdGVUZXN0KFdURjo6SGFz
aE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90Pj4gYSkKIAogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihDb3JlSVBDOjpNYWNo
UG9ydCBjb25uZWN0aW9uSWRlbnRpZmllcikKQEAgLTE0Nyw3ICsxNDcsNyBAQCBfZXhwZWN0ZWRf
cmVzdWx0cyA9IHsKICAgICAgICAgICAgICduYW1lJzogJ1NlbmRJbnRzJywKICAgICAgICAgICAg
ICdwYXJhbWV0ZXJzJzogKAogICAgICAgICAgICAgICAgICgnVmVjdG9yPHVpbnQ2NF90PicsICdp
bnRzJyksCi0gICAgICAgICAgICAgICAgKCdWZWN0b3I8VmVjdG9yPHVpbnQ2NF90PiA+JywgJ2lu
dFZlY3RvcnMnKQorICAgICAgICAgICAgICAgICgnVmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+Jywg
J2ludFZlY3RvcnMnKQogICAgICAgICAgICAgKSwKICAgICAgICAgICAgICdjb25kaXRpb25zJzog
KE5vbmUpLAogICAgICAgICB9LApAQCAtMjExLDcgKzIxMSw3IEBAIF9leHBlY3RlZF9yZXN1bHRz
ID0gewogICAgICAgICB7CiAgICAgICAgICAgICAnbmFtZSc6ICdUZW1wbGF0ZVRlc3QnLAogICAg
ICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCdXVEY6Okhhc2hNYXA8
U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4gPicsICdhJyksCisgICAgICAgICAg
ICAgICAgKCdXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4+
JywgJ2EnKSwKICAgICAgICAgICAgICksCiAgICAgICAgICAgICAnY29uZGl0aW9ucyc6IChOb25l
KSwKICAgICAgICAgfSwKQEAgLTQxOSwxNCArNDE5LDE0IEBAIHN0cnVjdCBTZW5kRG91YmxlQW5k
RmxvYXQgOiBDb3JlSVBDOjpBcmd1bWVudHMyPGRvdWJsZSwgZmxvYXQ+IHsKICAgICB9CiB9Owog
Ci1zdHJ1Y3QgU2VuZEludHMgOiBDb3JlSVBDOjpBcmd1bWVudHMyPGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mLCBjb25zdCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90PiA+Jj4geworc3RydWN0IFNlbmRJ
bnRzIDogQ29yZUlQQzo6QXJndW1lbnRzMjxjb25zdCBWZWN0b3I8dWludDY0X3Q+JiwgY29uc3Qg
VmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+Jj4gewogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9
CiAgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJTZW5kSW50cyIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgaXNTeW5jID0gZmFsc2U7CiAKLSAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czI8Y29u
c3QgVmVjdG9yPHVpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+ID4mPiBE
ZWNvZGVUeXBlOwotICAgIFNlbmRJbnRzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIGludHMsIGNv
bnN0IFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+ID4mIGludFZlY3RvcnMpCi0gICAgICAgIDogQ29y
ZUlQQzo6QXJndW1lbnRzMjxjb25zdCBWZWN0b3I8dWludDY0X3Q+JiwgY29uc3QgVmVjdG9yPFZl
Y3Rvcjx1aW50NjRfdD4gPiY+KGludHMsIGludFZlY3RvcnMpCisgICAgdHlwZWRlZiBDb3JlSVBD
OjpBcmd1bWVudHMyPGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mLCBjb25zdCBWZWN0b3I8VmVjdG9y
PHVpbnQ2NF90Pj4mPiBEZWNvZGVUeXBlOworICAgIFNlbmRJbnRzKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mIGludHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+PiYgaW50VmVjdG9ycykK
KyAgICAgICAgOiBDb3JlSVBDOjpBcmd1bWVudHMyPGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mLCBj
b25zdCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90Pj4mPihpbnRzLCBpbnRWZWN0b3JzKQogICAgIHsK
ICAgICB9CiB9OwpAQCAtNTI2LDE0ICs1MjYsMTQgQEAgc3RydWN0IFRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzIDogQ29yZUlQQzo6QXJndW1lbnRzMzx1aW50NjRfdCwgZG91YmxlLCBkb3VibGU+IHsK
ICAgICB9CiB9OwogCi1zdHJ1Y3QgVGVtcGxhdGVUZXN0IDogQ29yZUlQQzo6QXJndW1lbnRzMTxj
b25zdCBXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4gPiY+
IHsKK3N0cnVjdCBUZW1wbGF0ZVRlc3QgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdURjo6
SGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90Pj4mPiB7CiAgICAgc3Rh
dGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNz
YWdlUmVjZWl2ZXJOYW1lKCk7IH0KICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNl
IG5hbWUoKSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlRlbXBsYXRlVGVzdCIp
OyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gZmFsc2U7CiAKLSAgICB0eXBlZGVm
IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpIYXNoTWFwPFN0cmluZywgc3RkOjpwYWly
PFN0cmluZywgdWludDY0X3Q+ID4mPiBEZWNvZGVUeXBlOwotICAgIGV4cGxpY2l0IFRlbXBsYXRl
VGVzdChjb25zdCBXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRf
dD4gPiYgYSkKLSAgICAgICAgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdURjo6SGFzaE1h
cDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90PiA+Jj4oYSkKKyAgICB0eXBlZGVm
IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpIYXNoTWFwPFN0cmluZywgc3RkOjpwYWly
PFN0cmluZywgdWludDY0X3Q+PiY+IERlY29kZVR5cGU7CisgICAgZXhwbGljaXQgVGVtcGxhdGVU
ZXN0KGNvbnN0IFdURjo6SGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90
Pj4mIGEpCisgICAgICAgIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXVEY6Okhhc2hNYXA8
U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4+Jj4oYSkKICAgICB7CiAgICAgfQog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9CbG9ja2luZ1Jlc3BvbnNlTWFw
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvY2tpbmdSZXNwb25zZU1hcC5oCmluZGV4IDg3
YmE4ZmRmNmNmMTQ5YzFkYTViMjc4ZTBjMjU5MjYxMGVjYTYyZTcuLjcyZmVjYTgxNjEzMGFiNDMw
ZjkyMzQ4YTk3Njc3ZDBjODE5OTQxZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9CbG9ja2luZ1Jlc3BvbnNlTWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Jsb2Nr
aW5nUmVzcG9uc2VNYXAuaApAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogICAgIE11dGV4IG1f
bXV0ZXg7CiAgICAgVGhyZWFkQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogCi0gICAgSGFzaE1hcDx1
aW50NjRfdCwgT3duUHRyPFQ+ID4gbV9yZXNwb25zZXM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwg
T3duUHRyPFQ+PiBtX3Jlc3BvbnNlczsKICAgICBib29sIG1fY2FuY2VsZWQ7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oCmluZGV4IGJmMzQ4ZjM3ZGI5ZTMw
ZWVkMDQzZjU5OTJmM2Q2Y2U5MjMxYzMwOTIuLjcxMzI0MTRlNTI0YjA2MTAzMzZiMzJlYmU0NDA5
YjBkZGU0OGViMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5o
CkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNlbmRNZXNzYWdlKFBhc3NP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdz
KTsKIAotICAgIFZlY3RvcjxzdGQ6OnBhaXI8T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiwgdW5zaWduZWQ+ID4gbV9wZW5kaW5nTWVzc2FnZXM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZD4+IG1fcGVuZGluZ01lc3Nh
Z2VzOwogICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVyOwogICAg
IFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgQ29yZUlQQzo6
TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZUFycmF5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9JbW11dGFibGVBcnJheS5jcHAKaW5kZXggMmQ0NWFlOWJlNzA0YjU4ODkxNWUyYzQyMTY3
Zjg0NTllYmFhYjg5ZS4uNTM5ZWI0ZDhlNmI4Yzk3MjgwM2EwYTI4ZWQ0YTUxOWRiYjU3OWQyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZUFycmF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXkuY3BwCkBAIC00Niw3ICs0Niw3
IEBAIEltbXV0YWJsZUFycmF5OjpJbW11dGFibGVBcnJheShBUElPYmplY3QqKiBlbnRyaWVzLCBz
aXplX3Qgc2l6ZSkKICAgICAgICAgbV9lbnRyaWVzW2ldID0gZW50cmllc1tpXTsKIH0KIAotSW1t
dXRhYmxlQXJyYXk6OkltbXV0YWJsZUFycmF5KFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+JiBl
bnRyaWVzKQorSW1tdXRhYmxlQXJyYXk6OkltbXV0YWJsZUFycmF5KFZlY3RvcjxSZWZQdHI8QVBJ
T2JqZWN0Pj4mIGVudHJpZXMpCiB7CiAgICAgbV9lbnRyaWVzLnN3YXAoZW50cmllcyk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5oCmluZGV4IDZmN2U3NjhlNjVhNDY1Mzlm
NjA3MGQ5MGFmM2VlYWEyN2U1ZjIwMmYuLjZmZmU5ZDBmMmZmYjM3NmU1NjY0ODEwNDllNzc5ZWMw
ZTgxZWJmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVBcnJh
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5oCkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1t
dXRhYmxlQXJyYXkoQWRvcHQsIGVudHJpZXMsIHNpemUpKTsKICAgICB9Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGFkb3B0KFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+
JiBlbnRyaWVzKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBhZG9wdChW
ZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+JiBlbnRyaWVzKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJbW11dGFibGVBcnJheShlbnRyaWVzKSk7CiAgICAgfQpAQCAtNzAsOSAr
NzAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgSW1tdXRhYmxlQXJyYXkoKTsKICAgICBJbW11dGFibGVB
cnJheShBZG9wdFRhZywgQVBJT2JqZWN0KiogZW50cmllcywgc2l6ZV90KTsKICAgICBJbW11dGFi
bGVBcnJheShBUElPYmplY3QqKiBlbnRyaWVzLCBzaXplX3QpOwotICAgIEltbXV0YWJsZUFycmF5
KFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+JiBlbnRyaWVzKTsKKyAgICBJbW11dGFibGVBcnJh
eShWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+JiBlbnRyaWVzKTsKIAotICAgIFZlY3RvcjxSZWZQ
dHI8QVBJT2JqZWN0PiA+IG1fZW50cmllczsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+
IG1fZW50cmllczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnkuY3BwCmluZGV4IDFhZjk4OGVhNjMxMzVhOGQx
MDJmYTYzNDc0MmRjZWU0ZGIxODgzZDEuLmVkYjBlNzhkZmI5MjhkNDdhN2Y3ODVjNzU0ZDZjZjEw
OGE4MDFhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVEaWN0
aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlRGljdGlvbmFy
eS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gSW1tdXRh
YmxlRGljdGlvbmFyeTo6a2V5cygpIGNvbnN0CiAgICAgaWYgKG1fbWFwLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjpjcmVhdGUoKTsKIAotICAgIFZlY3RvcjxSZWZQ
dHI8QVBJT2JqZWN0PiA+IHZlY3RvcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IHZl
Y3RvcjsKICAgICB2ZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX21hcC5zaXplKCkpOwog
CiAgICAgTWFwVHlwZTo6Y29uc3RfaXRlcmF0b3I6OktleXMgaXQgPSBtX21hcC5iZWdpbigpLmtl
eXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVEaWN0aW9u
YXJ5LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5oCmluZGV4
IGQ4ZDg1MTA5OGQ3MmYxOGI0NTI1NmJkMDg0MjVhNWIxZjYyMzgzMGQuLmY3ZjA1NzJmNTBhNmNk
M2M3OTQwNzU2OGVhZmU2ZjE0YzM0OGMyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9JbW11dGFibGVEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0lt
bXV0YWJsZURpY3Rpb25hcnkuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBJbW11dGFibGVBcnJh
eTsKIAogY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxB
UElPYmplY3Q6OlR5cGVEaWN0aW9uYXJ5PiB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBIYXNoTWFw
PFN0cmluZywgUmVmUHRyPEFQSU9iamVjdD4gPiBNYXBUeXBlOworICAgIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxBUElPYmplY3Q+PiBNYXBUeXBlOwogCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gY3JlYXRlKCkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKaW5kZXggYjBmZTNjM2I5N2Y5MzhlMzliMjcyZGE1
YjcyZmZkMThmNDNkOGYyMy4uZDM0ZmZiZjQxODI2ZjkzZDU4ZTBmZTVmZGZkM2E0Yjg3ZTZlYTJj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9j
b2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaApAQCAtMTAxLDcg
KzEwMSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9tZXNzYWdlUXVldWU7
CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZXRh
aW5QdHI8V0tDdXN0b21Qcm90b2NvbD4gPiBDdXN0b21Qcm90b2NvbE1hcDsKKyAgICB0eXBlZGVm
IEhhc2hNYXA8dWludDY0X3QsIFJldGFpblB0cjxXS0N1c3RvbVByb3RvY29sPj4gQ3VzdG9tUHJv
dG9jb2xNYXA7CiAgICAgQ3VzdG9tUHJvdG9jb2xNYXAgbV9jdXN0b21Qcm90b2NvbE1hcDsKICAg
ICBNdXRleCBtX2N1c3RvbVByb3RvY29sTWFwTXV0ZXg7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCmluZGV4IDAwN2UwNTMyODViMGI2Zjc4MTI4
ZWYzYWUyMzU4Yjc5NzllYmFhOTcuLjg3ODgyZjM1NDcxNmU1YjI3YmVlZjQyMWY0ZDYzMzA1YmVk
OGEzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3Bw
CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgcGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3Jp
Z2luRGF0YVZlY3Rvcihjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5ECiAgICAgfQogICAgIAog
ICAgIHNpemVfdCBvcmlnaW5EYXRhQ291bnQgPSBvcmlnaW5EYXRhcy5zaXplKCk7Ci0gICAgVmVj
dG9yPFJlZlB0cjxBUElPYmplY3Q+ID4gc2VjdXJpdHlPcmlnaW5zOworICAgIFZlY3RvcjxSZWZQ
dHI8QVBJT2JqZWN0Pj4gc2VjdXJpdHlPcmlnaW5zOwogICAgIHNlY3VyaXR5T3JpZ2lucy5yZXNl
cnZlQ2FwYWNpdHkob3JpZ2luRGF0YUNvdW50KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgb3JpZ2luRGF0YUNvdW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0
ZS5jcHAKaW5kZXggMmUxYmRiYmYxZDk1Njc0ZWVkNjViNGU0MGM2MDhmZDg4ZjZiYWRlMS4uMDBi
NDY1ZmI5MDEyN2EyM2I0M2FmNGMzYmM1MGIxZjhhMTg5YTI0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIAogLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2hlbiB3ZSBlbmNvZGUgYSBSZWZQdHIgd2Ugd2Fu
dCB0byBlbmNvZGUgdGhlIG9iamVjdCBpdCBwb2ludHMgdG8gYW5kIGl0IGlzIG5ldmVyIG51bGwu
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWZQdHI8VD4gPiB7
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWZQdHI8VD4+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZWZQdHI8VD4mIGl0ZW0pCiAgICAgewogICAgICAgICBpdGVtLT5lbmNvZGUoZW5jb2Rlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCmluZGV4IDkzZmIzOWQxNzZhMmM5ZWI2
MDNiNGQzYzEzN2ZkMzE2YzAwNjc0ZTguLjFkYmZlMmFjZmE4MmM0Y2ZkMGNmZWI1ZjRmZDZjOWRl
YjQzM2ZkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCkBAIC00Miw3
ICs0Miw3IEBAIHN0cnVjdCBTdGF0aXN0aWNzRGF0YSB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIHVp
bnQ2NF90PiBzdGF0aXN0aWNzTnVtYmVyczsKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+
IGphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzOwogICAgIEhhc2hNYXA8U3RyaW5n
LCB1aW50NjRfdD4gamF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHM7ICAgIAotICAgIFZlY3RvcjxI
YXNoTWFwPFN0cmluZywgdWludDY0X3Q+ID4gd2ViQ29yZUNhY2hlU3RhdGlzdGljczsKKyAgICBW
ZWN0b3I8SGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90Pj4gd2ViQ29yZUNhY2hlU3RhdGlzdGljczsK
ICAgICAKICAgICBTdGF0aXN0aWNzRGF0YSgpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Vz
ZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggZWI2YmVjOTY5MDAwNzIyNTdkNDQ4OGY5NzhjNGI0ZGEz
YmE3OTRkMy4uMDAyMmYzMTA1NWU5NGM2ODU4MGZiYWNkNDRkZTM2YjBmN2QwNGU4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTI3NCw3ICsyNzQsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxBUElP
YmplY3Q+ID4gdmVjdG9yOworICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiB2
ZWN0b3I7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IGVsZW1lbnQ7CiAgICAgICAgICAgICAg
ICAgT3duZXIgbWVzc2FnZUNvZGVyKGNvZGVyLCBlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJBcmNoaXZlLmNwcAppbmRleCBlNTE0YmNkNDczZmJmOWQ1MWY1NTdjNTZlNjg0OGUyY2M2NTgy
MTU3Li5iYzlhYWU4MTIxYzZkZmYxZjRlNDAzZWU5NmE4ZjI1NmIyNmI4M2FkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkFyY2hpdmUuY3BwCkBAIC02NSwxNCArNjUsMTQgQEAgV2ViQXJjaGl2ZTo6
V2ViQXJjaGl2ZShXZWJBcmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgSW1tdXRhYmxlQXJy
YXkqIHN1YnJlc28KIHsKICAgICBSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBjb3JlTWFpblJlc291
cmNlID0gbV9jYWNoZWRNYWluUmVzb3VyY2UtPmNvcmVBcmNoaXZlUmVzb3VyY2UoKTsKIAotICAg
IFZlY3RvcjxQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gPiBjb3JlQXJjaGl2ZVJlc291cmNl
czsKKyAgICBWZWN0b3I8UGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+PiBjb3JlQXJjaGl2ZVJl
c291cmNlczsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2FjaGVkU3VicmVzb3VyY2Vz
LT5zaXplKCk7ICsraSkgewogICAgICAgICBSZWZQdHI8V2ViQXJjaGl2ZVJlc291cmNlPiByZXNv
dXJjZSA9IG1fY2FjaGVkU3VicmVzb3VyY2VzLT5hdDxXZWJBcmNoaXZlUmVzb3VyY2U+KGkpOwog
ICAgICAgICBBU1NFUlQocmVzb3VyY2UpOwogICAgICAgICBjb3JlQXJjaGl2ZVJlc291cmNlcy5h
cHBlbmQocmVzb3VyY2UtPmNvcmVBcmNoaXZlUmVzb3VyY2UoKSk7CiAgICAgfQogCi0gICAgVmVj
dG9yPFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gPiBjb3JlU3ViZnJhbWVMZWdhY3lXZWJB
cmNoaXZlczsKKyAgICBWZWN0b3I8UGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPj4gY29yZVN1
YmZyYW1lTGVnYWN5V2ViQXJjaGl2ZXM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Nh
Y2hlZFN1YmZyYW1lQXJjaGl2ZXMtPnNpemUoKTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxXZWJB
cmNoaXZlPiBzdWJmcmFtZVdlYkFyY2hpdmUgPSBtX2NhY2hlZFN1YmZyYW1lQXJjaGl2ZXMtPmF0
PFdlYkFyY2hpdmU+KGkpOwogICAgICAgICBBU1NFUlQoc3ViZnJhbWVXZWJBcmNoaXZlKTsKQEAg
LTEwNyw3ICsxMDcsNyBAQCBXZWJBcmNoaXZlUmVzb3VyY2UqIFdlYkFyY2hpdmU6Om1haW5SZXNv
dXJjZSgpCiBJbW11dGFibGVBcnJheSogV2ViQXJjaGl2ZTo6c3VicmVzb3VyY2VzKCkKIHsKICAg
ICBpZiAoIW1fY2FjaGVkU3VicmVzb3VyY2VzKSB7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJ
T2JqZWN0PiA+IHN1YnJlc291cmNlczsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+
PiBzdWJyZXNvdXJjZXM7CiAgICAgICAgIHN1YnJlc291cmNlcy5yZXNlcnZlQ2FwYWNpdHkobV9s
ZWdhY3lXZWJBcmNoaXZlLT5zdWJyZXNvdXJjZXMoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9sZWdhY3lXZWJBcmNoaXZlLT5zdWJyZXNvdXJjZXMoKS5zaXpl
KCk7ICsraSkKICAgICAgICAgICAgIHN1YnJlc291cmNlcy5hcHBlbmQoV2ViQXJjaGl2ZVJlc291
cmNlOjpjcmVhdGUobV9sZWdhY3lXZWJBcmNoaXZlLT5zdWJyZXNvdXJjZXMoKVtpXS5nZXQoKSkp
OwpAQCAtMTIxLDcgKzEyMSw3IEBAIEltbXV0YWJsZUFycmF5KiBXZWJBcmNoaXZlOjpzdWJyZXNv
dXJjZXMoKQogSW1tdXRhYmxlQXJyYXkqIFdlYkFyY2hpdmU6OnN1YmZyYW1lQXJjaGl2ZXMoKQog
ewogICAgIGlmICghbV9jYWNoZWRTdWJmcmFtZUFyY2hpdmVzKSB7Ci0gICAgICAgIFZlY3RvcjxS
ZWZQdHI8QVBJT2JqZWN0PiA+IHN1YmZyYW1lV2ViQXJjaGl2ZXM7CisgICAgICAgIFZlY3RvcjxS
ZWZQdHI8QVBJT2JqZWN0Pj4gc3ViZnJhbWVXZWJBcmNoaXZlczsKICAgICAgICAgc3ViZnJhbWVX
ZWJBcmNoaXZlcy5yZXNlcnZlQ2FwYWNpdHkobV9sZWdhY3lXZWJBcmNoaXZlLT5zdWJmcmFtZUFy
Y2hpdmVzKCkuc2l6ZSgpKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbGVn
YWN5V2ViQXJjaGl2ZS0+c3ViZnJhbWVBcmNoaXZlcygpLnNpemUoKTsgKytpKQogICAgICAgICAg
ICAgc3ViZnJhbWVXZWJBcmNoaXZlcy5hcHBlbmQoV2ViQXJjaGl2ZTo6Y3JlYXRlKHN0YXRpY19j
YXN0PExlZ2FjeVdlYkFyY2hpdmUqPihtX2xlZ2FjeVdlYkFyY2hpdmUtPnN1YmZyYW1lQXJjaGl2
ZXMoKVtpXS5nZXQoKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51
SXRlbS5jcHAKaW5kZXggNGM2YjQ2NDNhNDMwMjc3NDIwMmQ2ZDg3ZDY0NzcwM2ViNTIwNGM0MS4u
MWMwYzNjN2M1OTI3OTA1ZTgxMTkxMzJkZDNmNTU5MWVhN2ZhMjM1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgUGFz
c1JlZlB0cjxJbW11dGFibGVBcnJheT4gV2ViQ29udGV4dE1lbnVJdGVtOjpzdWJtZW51SXRlbXNB
c0ltbXV0YWJsZUFycmF5KCkgY28KICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4mIHN1Ym1lbnVWZWN0b3IobV93ZWJDb250ZXh0TWVudUl0ZW1EYXRhLnN1Ym1lbnUoKSk7
CiAgICAgdW5zaWduZWQgc2l6ZSA9IHN1Ym1lbnVWZWN0b3Iuc2l6ZSgpOwogICAgIAotICAgIFZl
Y3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHJlc3VsdDsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9i
amVjdD4+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUNhcGFjaXR5KHNpemUpOwogICAgIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViT3BlblBhbmVsUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViT3BlblBhbmVsUGFyYW1ldGVycy5jcHAKaW5kZXggYTVhMTQ2OGI0YTg1
ZWFlYTQwMjIzMTc3NWNiYjkyZDBlMTc0MzRiNy4uNDgyZjM2YzMzMGRjYThkMmI5OTNhMDBkYzFi
M2Q3YWRhN2ZkYWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk9wZW5Q
YW5lbFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJPcGVuUGFu
ZWxQYXJhbWV0ZXJzLmNwcApAQCAtNTMsNyArNTMsNyBAQCBQYXNzUmVmUHRyPEltbXV0YWJsZUFy
cmF5PiBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOjphY2NlcHRNSU1FVHlwZXMoKSBjb25zdAogewog
ICAgIHNpemVfdCBzaXplID0gbV9zZXR0aW5ncy5hY2NlcHRNSU1FVHlwZXMuc2l6ZSgpOwogCi0g
ICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4gdmVjdG9yOworICAgIFZlY3RvcjxSZWZQdHI8
QVBJT2JqZWN0Pj4gdmVjdG9yOwogICAgIHZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNp
emUpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQpAQCAtNzIs
NyArNzIsNyBAQCBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBXZWJPcGVuUGFuZWxQYXJhbWV0
ZXJzOjpzZWxlY3RlZEZpbGVOYW1lcygpIGNvbnN0CiB7ICAgIAogICAgIHNpemVfdCBzaXplID0g
bV9zZXR0aW5ncy5zZWxlY3RlZEZpbGVzLnNpemUoKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8QVBJ
T2JqZWN0PiA+IHZlY3RvcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IHZlY3RvcjsK
ICAgICB2ZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
QXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggYzJkNWFiNzIyZjk2M2NlM2VmMWE3MWRjOGY5MzRi
OGM3NWIwNGE0Mi4uYmMxMWIwYjFhMWYxNzVlYjVkODA1MjZjMjNjOGIwMWMwMjczOWVmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0y
MTgsNyArMjE4LDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0F0
dHJpYnV0ZWRTdHJpbmcgKnN0cmluZykKICAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFtwbGFpblN0
cmluZyBsZW5ndGhdOwogICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBwbGFpblN0cmluZyk7
CiAKLSAgICBWZWN0b3I8cGFpcjxOU1JhbmdlLCBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiA+ID4g
cmFuZ2VzOworICAgIFZlY3RvcjxwYWlyPE5TUmFuZ2UsIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+
Pj4gcmFuZ2VzOwogCiAgICAgTlNVSW50ZWdlciBwb3NpdGlvbiA9IDA7CiAgICAgd2hpbGUgKHBv
c2l0aW9uIDwgbGVuZ3RoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3Jr
ZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdv
cmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCmluZGV4IDZmYmNjNzA3M2FjNTk4MmJj
NWIxOTU2Y2JlODRjMDkxMjRkMmMwOWEuLjgyYzU5YzA2MTUwYmE5Y2I4MmQyZWIwZTZjNTgyYjg1
NGQ4Njk4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3Mv
U2hhcmVkV29ya2VyUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclBy
b2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBtaW5pbXVtTGlmZXRpbWVUaW1lckZpcmVkKCk7CiAKICAgICAvLyBPdXIgd2ViIHBy
b2Nlc3MgY29ubmVjdGlvbnMuCi0gICAgVmVjdG9yPFJlZlB0cjxXZWJQcm9jZXNzQ29ubmVjdGlv
bj4gPiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uczsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYlByb2Nl
c3NDb25uZWN0aW9uPj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnM7CiAKICAgICBXZWJDb3JlOjpS
dW5Mb29wOjpUaW1lcjxTaGFyZWRXb3JrZXJQcm9jZXNzPiBtX21pbmltdW1MaWZldGltZVRpbWVy
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJp
bnRpbmdWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5n
Vmlldy5oCmluZGV4IDY3YmQ0YjFiOTFhOGRhMDM5NDNjMmE1YmQzNjcwYmM4ZTBhNjlkYzAuLmI0
NWY2MzViMzI5ZjUzYzhiZTA3OGY2Mjg5NmQwNDE3ZjExODVjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcuaApAQCAtNDIsNyArNDIs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJGcmFtZVByb3h5
PiBfd2ViRnJhbWU7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IF9wcmludGluZ1BhZ2VS
ZWN0czsKICAgICBkb3VibGUgX3RvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZzsKLSAgICBIYXNo
TWFwPFdlYkNvcmU6OkludFJlY3QsIFJlZlB0cjxXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcD4gPiBf
cGFnZVByZXZpZXdzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6SW50UmVjdCwgUmVmUHRyPFdlYktp
dDo6U2hhcmVhYmxlQml0bWFwPj4gX3BhZ2VQcmV2aWV3czsKIAogICAgIFZlY3Rvcjx1aW50OF90
PiBfcHJpbnRlZFBhZ2VzRGF0YTsKICAgICBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IF9wcmludGVk
UGFnZXNQREZEb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tQcmludGluZ1ZpZXcubW0KaW5kZXggMGIxMzY5NzY0NGNiZjkzY2QzYWQyNTUxYTk4MDJh
M2UwMTc3ZTM0NS4uMzUwYWQ1NDJlYWQzNzNlM2E3ODQwMDk3NWI3YTkzYTcxNTdlYWE3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcu
bW0KQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlRGF0YUZvclByaW50aW5n
T25TZWNvbmRhcnlUaHJlYWQodm9pZCogdW50eXBlZENvbnRleHQpCiAgICAgc2NhbGVkUHJpbnRp
bmdSZWN0LnNjYWxlKDEgLyBfdG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nKTsKICAgICBJbnRT
aXplIGltYWdlU2l6ZShuc1JlY3Quc2l6ZSk7CiAgICAgaW1hZ2VTaXplLnNjYWxlKF93ZWJGcmFt
ZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICBIYXNoTWFwPFdlYkNvcmU6Oklu
dFJlY3QsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+ID46Oml0ZXJhdG9yIHBhZ2VQcmV2aWV3SXRl
cmF0b3IgPSBfcGFnZVByZXZpZXdzLmZpbmQoc2NhbGVkUHJpbnRpbmdSZWN0KTsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OkludFJlY3QsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+Pjo6aXRlcmF0b3Ig
cGFnZVByZXZpZXdJdGVyYXRvciA9IF9wYWdlUHJldmlld3MuZmluZChzY2FsZWRQcmludGluZ1Jl
Y3QpOwogICAgIGlmIChwYWdlUHJldmlld0l0ZXJhdG9yID09IF9wYWdlUHJldmlld3MuZW5kKCkp
ICB7CiAgICAgICAgIC8vIEl0J3MgdG9vIGVhcmx5IHRvIGFzayBmb3IgcGFnZSBwcmV2aWV3IGlm
IHdlIGRvbid0IGV2ZW4ga25vdyBwYWdlIHNpemUgYW5kIHNjYWxlLgogICAgICAgICBpZiAoW3Nl
bGYgX2hhc1BhZ2VSZWN0c10pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQppbmRleCAxZjEzZGJmNzAyZDUxM2QxOTE0ZWUwMmMxY2ZjM2U5NWUwMWU1MTllLi4z
OGQzMGYwNzczYjJiZGU0NDAyMWM4MzE0MWJhNjJjNWYwYWFlYjE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xMjYsNyArMTI2LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdHlwZWRlZiBpZCA8TlNW
YWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4gVmFsaWRhdGlvbkl0ZW07Ci10eXBlZGVmIFZlY3Rv
cjxSZXRhaW5QdHI8VmFsaWRhdGlvbkl0ZW0+ID4gVmFsaWRhdGlvblZlY3RvcjsKK3R5cGVkZWYg
VmVjdG9yPFJldGFpblB0cjxWYWxpZGF0aW9uSXRlbT4+IFZhbGlkYXRpb25WZWN0b3I7CiB0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBWYWxpZGF0aW9uVmVjdG9yPiBWYWxpZGF0aW9uTWFwOwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHlNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5TWFwLmNwcAppbmRleCBmMWMxZWVjZDBhZmVmZTc1NTdjMWI3NWVjNzVkNWYyMzVmMTU0
YzIyLi5mOWI5ZjNlYTg5NzJiZjRkMmI0NWQ0YTZhYWZiMTNlNDNlMTIyMGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1h
cC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBEb3dubG9hZFByb3h5TWFwOjpkb3dubG9hZEZp
bmlzaGVkKERvd25sb2FkUHJveHkqIGRvd25sb2FkUHJveHkpCiB2b2lkIERvd25sb2FkUHJveHlN
YXA6OnByb2Nlc3NEaWRDbG9zZSgpCiB7CiAgICAgLy8gSW52YWxpZGF0ZSBhbGwgb3V0c3RhbmRp
bmcgZG93bmxvYWRzLgotICAgIGZvciAoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERvd25sb2Fk
UHJveHk+ID46Oml0ZXJhdG9yOjpWYWx1ZXMgaXQgPSBtX2Rvd25sb2Fkcy5iZWdpbigpLnZhbHVl
cygpLCBlbmQgPSBtX2Rvd25sb2Fkcy5lbmQoKS52YWx1ZXMoKTsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgZm9yIChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RG93bmxvYWRQcm94eT4+OjppdGVy
YXRvcjo6VmFsdWVzIGl0ID0gbV9kb3dubG9hZHMuYmVnaW4oKS52YWx1ZXMoKSwgZW5kID0gbV9k
b3dubG9hZHMuZW5kKCkudmFsdWVzKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAoKml0
KS0+cHJvY2Vzc0RpZENsb3NlKCk7CiAgICAgICAgICgqaXQpLT5pbnZhbGlkYXRlKCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHlNYXAuaAppbmRleCA3MjM1OWQ1NWQ0ZWExM2ViNTM1MDJjMTUwNmQzNzY4NzQyODI4ZTg3
Li5mMTY0OGFkOWY4OWFmODJkZjFjYzVkMWMyYzI5Mzk3ZWNmZjkwYTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaApA
QCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQ2hpbGRQcm9jZXNzUHJv
eHkqIG1fcHJvY2VzczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RG93bmxvYWRQcm94
eT4gPiBtX2Rvd25sb2FkczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RG93bmxvYWRQ
cm94eT4+IG1fZG93bmxvYWRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA5ODg4NWJmMDc2NGQ0YjhlZmQ4NWMw
OGNkZmUxNTJiNzUxZDgxNGI2Li5hNWY2ODVhOWI5MzI2YmZkMzAyNzQ2MTMxYmVlNDJlNjg2MGRj
NGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTQ2LDcgKzQ2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90LCBib29sIGFsbG93KTsKIAogcHJpdmF0ZToKLSAgICB0eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
ID4gUGVuZGluZ1JlcXVlc3RNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gUGVuZGluZ1JlcXVlc3RNYXA7
CiAgICAgUGVuZGluZ1JlcXVlc3RNYXAgbV9wZW5kaW5nUmVxdWVzdHM7CiAgICAgV2ViUGFnZVBy
b3h5KiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0
cmFjdG9yLmgKaW5kZXggMjRmYTA4OTRmMTZmMGI2MGZmZTcyN2JlMjFjY2UwNjE5N2Q3NGY5OS4u
N2IyMTQ1NDI0YmYyZDY4YWVmNzIwMTg2ZTkwODExMWZlOGZlNWVkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9EeW5hbWljTGlua2VyRW52aXJvbm1l
bnRFeHRyYWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFj
L0R5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oCkBAIC01NCw3ICs1NCw3IEBAIHBy
aXZhdGU6CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtX2V4ZWN1dGFibGVQYXRoOwogICAgIGNw
dV90eXBlX3QgbV9hcmNoaXRlY3R1cmU7CiAKLSAgICBWZWN0b3I8c3RkOjpwYWlyPENTdHJpbmcs
IENTdHJpbmc+ID4gbV9leHRyYWN0ZWRWYXJpYWJsZXM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxD
U3RyaW5nLCBDU3RyaW5nPj4gbV9leHRyYWN0ZWRWYXJpYWJsZXM7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5LmgKaW5kZXggNTQ4MzhhYTJkZTkxZTk3NjllZjQ1MGQ1ZmJlZWEzNTY4NWFjMDJk
ZS4uMjE0NTUyNTcwODFmMTM1YmI1NWIyZGMyMTVhYjIyMGFmMDNmZTU5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmgKQEAgLTU4LDcg
KzU4LDcgQEAgcHJpdmF0ZToKICAgICBDaGlsZFByb2Nlc3NQcm94eSogbV9jaGlsZFByb2Nlc3NQ
cm94eTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3Qs
IFJldGFpblB0cjxXS0N1c3RvbVByb3RvY29sTG9hZGVyPiA+IExvYWRlck1hcDsKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8dWludDY0X3QsIFJldGFpblB0cjxXS0N1c3RvbVByb3RvY29sTG9hZGVyPj4g
TG9hZGVyTWFwOwogICAgIExvYWRlck1hcCBtX2xvYWRlck1hcDsKICNlbmRpZgogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAppbmRleCAzNzg2NzBiZWNiYzk5ZjlhODRlYzBkZDE3OTBjY2I1NDc1OGQ4M2RhLi4yY2M5
ZTg4NDBlM2Y4YjAzZjRmMWY3ZDQwNzkwMzYxNzY4NGY1OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC04
OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OwogICAg
IAogICAgIHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsKLSAgICBEZXF1
ZTxSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHk+ID4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CisgICAg
RGVxdWU8UmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pj4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CiAK
ICAgICBPd25QdHI8RG93bmxvYWRQcm94eU1hcD4gbV9kb3dubG9hZFByb3h5TWFwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaAppbmRleCAxMjc3NWZiMDY3NTU2Y2ZiYWE0MTY4ZDgxZTMzNGI0YmNkYzE2ODZjLi43MmVm
OTlmMjNiYjQzZDIzOGZiMDVmYTU3ZmM0MjJiNTJkNjMwZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTQ3
LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvdyk7CiAgICAg
CiBwcml2YXRlOgotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0PiA+IFBlbmRpbmdSZXF1ZXN0TWFwOworICAgIHR5cGVkZWYg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Pj4g
UGVuZGluZ1JlcXVlc3RNYXA7CiAgICAgUGVuZGluZ1JlcXVlc3RNYXAgbV9wZW5kaW5nUmVxdWVz
dHM7CiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaAppbmRleCAxN2JhMjg2YzQ5OTk1NDYwYjhhOTU2ZmQxZTMwZTc3NGQx
ZGJkZDkzLi5mMGU4YzBjODM1OTNmZTkxZGI0Y2YxNTc3MWMzMWExMDIwYTM4NDQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtODEsNyArODEsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90
PiYgbm90aWZpY2F0aW9uSURzKTsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFdlYk5vdGlmaWNhdGlvbj4gPiBXZWJOb3RpZmljYXRpb25NYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPj4gV2ViTm90aWZpY2F0aW9u
TWFwOwogICAgIAogICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CiAgICAg
V2ViTm90aWZpY2F0aW9uTWFwIG1fbm90aWZpY2F0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCmluZGV4IGVi
ZGQyMWEzY2YyN2JkNTBmZjk4ZDBhYzZhYmNjNjZlY2JhMzU0ZjguLmZlNTEwNTg2ZWUwZGI1M2Yy
ZWZhZmY5YWQxMjNhYTE4YTEzMjg2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaApAQCAtNjcsNyArNjcsNyBA
QCBwcml2YXRlOgogICAgIFBsdWdpblByb2Nlc3NQcm94eSogZ2V0T3JDcmVhdGVQbHVnaW5Qcm9j
ZXNzKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mLCBQbHVnaW5Qcm9jZXNzOjpUeXBlKTsKICAgICBQ
bHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3NXaXRoUGF0aChjb25zdCBTdHJpbmcmIHBs
dWdpblBhdGgsIFBsdWdpblByb2Nlc3M6OlR5cGUpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxQbHVn
aW5Qcm9jZXNzUHJveHk+ID4gbV9wbHVnaW5Qcm9jZXNzZXM7CisgICAgVmVjdG9yPFJlZlB0cjxQ
bHVnaW5Qcm9jZXNzUHJveHk+PiBtX3BsdWdpblByb2Nlc3NlczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCBkMjZhOTA5ZTY0OWZkZWJmNTM1Mzk1YTFjZDI5M2Ji
YjhjMGNiYmY4Li4wNzllMzRmYjIxODMzODI2NzUzZmEwYzQzY2ZlNzRhNDc3YzVlNjUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkuaApAQCAtMTQ2LDEwICsxNDYsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgY29ubmVj
dGlvbiB0byB0aGUgcGx1Zy1pbiBob3N0IHByb2Nlc3MuCiAgICAgUmVmUHRyPENvcmVJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAotICAgIERlcXVlPFJlZlB0cjxNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiA+
IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOworICAgIERlcXVlPFJlZlB0cjxNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5
Pj4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CiAKICAgICBWZWN0b3I8dWludDY0X3Q+IG1f
cGVuZGluZ0dldFNpdGVzUmVxdWVzdHM7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdl
YlBsdWdpblNpdGVEYXRhTWFuYWdlcj4gPiBtX3BlbmRpbmdHZXRTaXRlc1JlcGxpZXM7CisgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcj4+IG1fcGVu
ZGluZ0dldFNpdGVzUmVwbGllczsKIAogICAgIHN0cnVjdCBDbGVhclNpdGVEYXRhUmVxdWVzdCB7
CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQ7CiAgICAgfTsKICAgICBWZWN0b3I8Q2xl
YXJTaXRlRGF0YVJlcXVlc3Q+IG1fcGVuZGluZ0NsZWFyU2l0ZURhdGFSZXF1ZXN0czsKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyPiA+IG1fcGVu
ZGluZ0NsZWFyU2l0ZURhdGFSZXBsaWVzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI+PiBtX3BlbmRpbmdDbGVhclNpdGVEYXRhUmVwbGllczsK
IAogICAgIC8vIElmIGNyZWF0ZVBsdWdpbkNvbm5lY3Rpb24gaXMgY2FsbGVkIHdoaWxlIHRoZSBw
cm9jZXNzIGlzIHN0aWxsIGxhdW5jaGluZyB3ZSdsbCBrZWVwIGNvdW50IG9mIGl0IGFuZCBzZW5k
IGEgYnVuY2ggb2YgcmVxdWVzdHMKICAgICAvLyB3aGVuIHRoZSBwcm9jZXNzIGZpbmlzaGVzIGxh
dW5jaGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCmluZGV4IDFlYTAxYTA4OGQ1ZmIyN2Yy
YmIzMzEyOWRmZjQyY2JmNGRkMjExMGUuLjAwNTU5MWNjODliMjcyNGE2ZDZlMGI2OWJlNjViOGUy
OTU1OWQ4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcApAQCAtMTgxLDcgKzE4MSw3IEBA
IHZvaWQgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFZl
Y3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHNpdGVzV0soc2l0ZXMuc2l6ZSgpKTsKKyAgICBWZWN0
b3I8UmVmUHRyPEFQSU9iamVjdD4+IHNpdGVzV0soc2l0ZXMuc2l6ZSgpKTsKIAogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l0ZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHNpdGVzV0tbaV0g
PSBXZWJTdHJpbmc6OmNyZWF0ZShzaXRlc1tpXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oCmluZGV4
IDg0MzBhMjMzMGQyNDRmM2FjNjUyZjAxZDkzNDQwNjgyNGZlNmI4OGQuLjFlZGVjZWVmOGVkODM4
NjE2ZmJmNWI1NmZlMDgzZmIyYTQzZGYwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oCkBAIC02
NiwxOCArNjYsMTggQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXIoV2ViQ29udGV4dCopOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OwotICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFj
a3M7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX3ZvaWRD
YWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+PiBt
X2FycmF5Q2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxWb2lkQ2FsbGJh
Y2s+PiBtX3ZvaWRDYWxsYmFja3M7CiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAgICAg
dm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhRm9yQWxsUGx1Z2lucyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkQ2xlYXJTaXRlRGF0
YUZvckFsbFBsdWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICBjbGFzcyBHZXRTaXRl
c1dpdGhEYXRhU3RhdGU7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgT3duUHRyPEdldFNpdGVzV2l0
aERhdGFTdGF0ZT4gPiBtX3BlbmRpbmdHZXRTaXRlc1dpdGhEYXRhOworICAgIEhhc2hNYXA8dWlu
dDY0X3QsIE93blB0cjxHZXRTaXRlc1dpdGhEYXRhU3RhdGU+PiBtX3BlbmRpbmdHZXRTaXRlc1dp
dGhEYXRhOwogCiAgICAgY2xhc3MgQ2xlYXJTaXRlRGF0YVN0YXRlOwotICAgIEhhc2hNYXA8dWlu
dDY0X3QsIE93blB0cjxDbGVhclNpdGVEYXRhU3RhdGU+ID4gbV9wZW5kaW5nQ2xlYXJTaXRlRGF0
YTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBPd25QdHI8Q2xlYXJTaXRlRGF0YVN0YXRlPj4gbV9w
ZW5kaW5nQ2xlYXJTaXRlRGF0YTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclBy
b2Nlc3NNYW5hZ2VyLmgKaW5kZXggMjk5MTMzODc5NDYwNWRmOWYzMDAzMmE3YzZhMjNkYjNkM2Rj
MzQxZS4uY2QzMGRjMDBjNGIxMDBhNDEyNzQ1YTFhYjFmY2VkZTAyMzhhMzFhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJv
Y2Vzc01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vy
cy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6
CiAKICAgICBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkqIGdldE9yQ3JlYXRlU2hhcmVkV29ya2Vy
UHJvY2Vzcyhjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIFZl
Y3RvcjxSZWZQdHI8U2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5PiA+IG1fc2hhcmVkV29ya2VyUHJv
Y2Vzc2VzOworICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5Pj4gbV9z
aGFyZWRXb3JrZXJQcm9jZXNzZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtl
clByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMv
U2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggZDg5Mjc2ZmZhN2Q2NDkzZDE2ODJjNzEx
MGM3NDU2OTRmN2Q4ZTJkOC4uYzg0ZTk5YmU1OTMwZGRjMmZkZDgyYzMwZDUxMzFlYjViNWZkZjQ1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1No
YXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTkwLDcgKzkwLDcgQEAg
cHJpdmF0ZToKICAgICAvLyBUaGUgcHJvY2VzcyBsYXVuY2hlciBmb3IgdGhlIHBsdWctaW4gaG9z
dCBwcm9jZXNzLgogICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVy
OwogCi0gICAgRGVxdWU8UmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFNoYXJl
ZFdvcmtlclByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+ID4gbV9wZW5kaW5nQ29ubmVj
dGlvblJlcGxpZXM7CisgICAgRGVxdWU8UmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldFNoYXJlZFdvcmtlclByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+PiBtX3BlbmRp
bmdDb25uZWN0aW9uUmVwbGllczsKIAogICAgIC8vIElmIGNyZWF0ZVBsdWdpbkNvbm5lY3Rpb24g
aXMgY2FsbGVkIHdoaWxlIHRoZSBwcm9jZXNzIGlzIHN0aWxsIGxhdW5jaGluZyB3ZSdsbCBrZWVw
IGNvdW50IG9mIGl0IGFuZCBzZW5kIGEgYnVuY2ggb2YgcmVxdWVzdHMKICAgICAvLyB3aGVuIHRo
ZSBwcm9jZXNzIGZpbmlzaGVzIGxhdW5jaGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCmluZGV4IDBmYTFmYjdhN2RiNjFiNTYwMWJkZGM4ODU0
MTRmYTAwMTMxMWVjNWMuLmQyYjIyZmE1YjE4Yjg2ODM5NjhiODQ4ZmFkNjcyY2I0Nzc0NmNhYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApA
QCAtODYsNyArODYsNyBAQCB2b2lkIFN0YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRSZXF1ZXN0
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RhdGlzdGljc0RhdAogICAgIAogICAgIHNpemVf
dCBjYWNoZVN0YXRpc3RpY3NDb3VudCA9IGRhdGEud2ViQ29yZUNhY2hlU3RhdGlzdGljcy5zaXpl
KCk7CiAgICAgaWYgKGNhY2hlU3RhdGlzdGljc0NvdW50KSB7Ci0gICAgICAgIFZlY3RvcjxSZWZQ
dHI8QVBJT2JqZWN0PiA+IGNhY2hlU3RhdGlzdGljc1ZlY3RvcihjYWNoZVN0YXRpc3RpY3NDb3Vu
dCk7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4gY2FjaGVTdGF0aXN0aWNzVmVj
dG9yKGNhY2hlU3RhdGlzdGljc0NvdW50KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjYWNoZVN0YXRpc3RpY3NDb3VudDsgKytpKQogICAgICAgICAgICAgY2FjaGVTdGF0aXN0aWNz
VmVjdG9yW2ldID0gY3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKGRhdGEud2ViQ29yZUNhY2hl
U3RhdGlzdGljc1tpXSk7CiAgICAgICAgIG1fcmVzcG9uc2VEaWN0aW9uYXJ5LT5zZXQoIldlYkNv
cmVDYWNoZVN0YXRpc3RpY3MiLCBJbW11dGFibGVBcnJheTo6YWRvcHQoY2FjaGVTdGF0aXN0aWNz
VmVjdG9yKS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMzE5MTc5ZDYxMWRhM2Q1Y2YwNmIzNTViMTJlOTY4
NjU5Y2E2ZDI5OC4uZGM5NTIyZmVlMzZlNGEzOTdiNWVkNjg3MDUxYzdmMjYwZGNkYjQ3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fcXVvdGFJbkJ5
dGVzOwogCiAgICAgUmVmUHRyPFN0b3JhZ2VNYXA+IG1fc3RvcmFnZU1hcDsKLSAgICBIYXNoU2V0
PHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiA+IG1fZXZl
bnRMaXN0ZW5lcnM7CisgICAgSGFzaFNldDxzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6OkNvbm5l
Y3Rpb24+LCB1aW50NjRfdD4+IG1fZXZlbnRMaXN0ZW5lcnM7CiB9OwogCiBjbGFzcyBTdG9yYWdl
TWFuYWdlcjo6TG9jYWxTdG9yYWdlTmFtZXNwYWNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPExvY2FsU3RvcmFnZU5hbWVzcGFjZT4gewpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgU3Rv
cmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhOjppbXBvcnRJdGVtc0Zyb21EYXRhYmFzZSgpCiAKIHZv
aWQgU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhOjpkaXNwYXRjaEV2ZW50cyhDb3JlSVBDOjpD
b25uZWN0aW9uKiBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlE
LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5n
JiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0CiB7Ci0gICAgZm9yIChI
YXNoU2V0PHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiA+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fZXZlbnRMaXN0ZW5lcnMuYmVnaW4oKSwgZW5kID0gbV9l
dmVudExpc3RlbmVycy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgZm9yIChIYXNoU2V0
PHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90Pj46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9ldmVudExpc3RlbmVycy5iZWdpbigpLCBlbmQgPSBtX2V2ZW50TGlz
dGVuZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgdWludDY0X3Qgc3RvcmFn
ZUFyZWFJRCA9IGl0LT5maXJzdCA9PSBzb3VyY2VDb25uZWN0aW9uID8gc291cmNlU3RvcmFnZUFy
ZWFJRCA6IDA7CiAKICAgICAgICAgaXQtPmZpcnN0LT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJl
YU1hcDo6RGlzcGF0Y2hTdG9yYWdlRXZlbnQoc3RvcmFnZUFyZWFJRCwga2V5LCBvbGRWYWx1ZSwg
bmV3VmFsdWUsIHVybFN0cmluZyksIGl0LT5zZWNvbmQpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fYWxsb3dlZENvbm5lY3Rp
b247CiAgICAgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7CiAKLSAgICBIYXNoTWFwPFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4sIFJlZlB0cjxTdG9yYWdlQXJlYT4gPiBtX3N0b3JhZ2VBcmVhTWFwOwor
ICAgIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgUmVmUHRyPFN0b3JhZ2VBcmVhPj4g
bV9zdG9yYWdlQXJlYU1hcDsKIH07CiAKIFBhc3NSZWZQdHI8U3RvcmFnZU1hbmFnZXI6OlNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTWFuYWdlcjo6U2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2U6OmNyZWF0ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBhbGxvd2VkQ29ubmVjdGlvbiwgdW5zaWdu
ZWQgcXVvdGFJbkJ5dGVzKQpAQCAtMzExLDcgKzMxMSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6
OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpzZXRBbGxvd2VkQ29ubmVjdGlvbihDb3JlSVBDOjpD
b25uCiAKIFBhc3NSZWZQdHI8U3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhPiBTdG9yYWdlTWFu
YWdlcjo6U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCiB7Ci0gICAgSGFzaE1hcDxS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFyZWE+ID46OkFkZFJlc3VsdCBy
ZXN1bHQgPSBtX3N0b3JhZ2VBcmVhTWFwLmFkZChzZWN1cml0eU9yaWdpbiwgMCk7CisgICAgSGFz
aE1hcDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFyZWE+Pjo6QWRkUmVz
dWx0IHJlc3VsdCA9IG1fc3RvcmFnZUFyZWFNYXAuYWRkKHNlY3VyaXR5T3JpZ2luLCAwKTsKICAg
ICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUg
PSBTdG9yYWdlQXJlYTo6Y3JlYXRlKDAsIHJlc3VsdC5pdGVyYXRvci0+a2V5LCBtX3F1b3RhSW5C
eXRlcyk7CiAKQEAgLTMyMiw3ICszMjIsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZTo6Y2xvbmVUbyhTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSYgbgogewog
ICAgIEFTU0VSVF9VTlVTRUQobmV3U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UsIG5ld1Nlc3Npb25T
dG9yYWdlTmFtZXNwYWNlLmlzRW1wdHkoKSk7CiAKLSAgICBmb3IgKEhhc2hNYXA8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiwgUmVmUHRyPFN0b3JhZ2VBcmVhPiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9
IG1fc3RvcmFnZUFyZWFNYXAuYmVnaW4oKSwgZW5kID0gbV9zdG9yYWdlQXJlYU1hcC5lbmQoKTsg
aXQgIT0gZW5kOyArK2l0KQorICAgIGZvciAoSGFzaE1hcDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
LCBSZWZQdHI8U3RvcmFnZUFyZWE+Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N0b3JhZ2VBcmVh
TWFwLmJlZ2luKCksIGVuZCA9IG1fc3RvcmFnZUFyZWFNYXAuZW5kKCk7IGl0ICE9IGVuZDsgKytp
dCkKICAgICAgICAgbmV3U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UubV9zdG9yYWdlQXJlYU1hcC5h
ZGQoaXQtPmtleSwgaXQtPnZhbHVlLT5jbG9uZSgpKTsKIH0KIApAQCAtMzgzLDEzICszODMsMTMg
QEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTWFwKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQKICAgICBzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6
OkNvbm5lY3Rpb24+LCB1aW50NjRfdD4gY29ubmVjdGlvbkFuZFN0b3JhZ2VNYXBJRFBhaXIoY29u
bmVjdGlvbiwgc3RvcmFnZU1hcElEKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBh
IG1lc3NhZ2UgY2hlY2suCi0gICAgQVNTRVJUKChIYXNoTWFwPHN0ZDo6cGFpcjxSZWZQdHI8Q29y
ZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiwgUmVmUHRyPFN0b3JhZ2VBcmVhPiA+Ojppc1Zh
bGlkS2V5KGNvbm5lY3Rpb25BbmRTdG9yYWdlTWFwSURQYWlyKSkpOworICAgIEFTU0VSVCgoSGFz
aE1hcDxzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+LCB1aW50NjRfdD4sIFJl
ZlB0cjxTdG9yYWdlQXJlYT4+Ojppc1ZhbGlkS2V5KGNvbm5lY3Rpb25BbmRTdG9yYWdlTWFwSURQ
YWlyKSkpOwogCi0gICAgSGFzaE1hcDxzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCB1aW50NjRfdD4sIFJlZlB0cjxTdG9yYWdlQXJlYT4gPjo6QWRkUmVzdWx0IHJlc3VsdCA9
IG1fc3RvcmFnZUFyZWFzQnlDb25uZWN0aW9uLmFkZChjb25uZWN0aW9uQW5kU3RvcmFnZU1hcElE
UGFpciwgMCk7CisgICAgSGFzaE1hcDxzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCB1aW50NjRfdD4sIFJlZlB0cjxTdG9yYWdlQXJlYT4+OjpBZGRSZXN1bHQgcmVzdWx0ID0g
bV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uYWRkKGNvbm5lY3Rpb25BbmRTdG9yYWdlTWFwSURQ
YWlyLCAwKTsKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgYSBtZXNzYWdlIGNoZWNr
cy4KICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwotICAgIEFTU0VSVCgoSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPExvY2FsU3RvcmFnZU5hbWVzcGFjZT4gPjo6aXNWYWxpZEtleShzdG9y
YWdlTmFtZXNwYWNlSUQpKSk7CisgICAgQVNTRVJUKChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
TG9jYWxTdG9yYWdlTmFtZXNwYWNlPj46OmlzVmFsaWRLZXkoc3RvcmFnZU5hbWVzcGFjZUlEKSkp
OwogCiAgICAgTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2UgPSBn
ZXRPckNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShzdG9yYWdlTmFtZXNwYWNlSUQpOwogCkBA
IC00MDcsMTQgKzQwNywxNCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3Rv
cmFnZU1hcChDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aQogICAgIHN0ZDo6cGFp
cjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiBjb25uZWN0aW9uQW5kU3Rv
cmFnZU1hcElEUGFpcihjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGJlIGEgbWVzc2FnZSBjaGVjay4KLSAgICBBU1NFUlQoKEhhc2hNYXA8c3Rk
OjpwYWlyPFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgdWludDY0X3Q+LCBSZWZQdHI8U3Rv
cmFnZUFyZWE+ID46OmlzVmFsaWRLZXkoY29ubmVjdGlvbkFuZFN0b3JhZ2VNYXBJRFBhaXIpKSk7
CisgICAgQVNTRVJUKChIYXNoTWFwPHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlv
bj4sIHVpbnQ2NF90PiwgUmVmUHRyPFN0b3JhZ2VBcmVhPj46OmlzVmFsaWRLZXkoY29ubmVjdGlv
bkFuZFN0b3JhZ2VNYXBJRFBhaXIpKSk7CiAKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiwgUmVmUHRyPFN0b3JhZ2VBcmVhPiA+OjpB
ZGRSZXN1bHQgcmVzdWx0ID0gbV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uYWRkKGNvbm5lY3Rp
b25BbmRTdG9yYWdlTWFwSURQYWlyLCAwKTsKKyAgICBIYXNoTWFwPHN0ZDo6cGFpcjxSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiwgUmVmUHRyPFN0b3JhZ2VBcmVhPj46OkFk
ZFJlc3VsdCByZXN1bHQgPSBtX3N0b3JhZ2VBcmVhc0J5Q29ubmVjdGlvbi5hZGQoY29ubmVjdGlv
bkFuZFN0b3JhZ2VNYXBJRFBhaXIsIDApOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IGEgbWVzc2FnZSBjaGVjay4KICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAg
QVNTRVJUKChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U+
ID46OmlzVmFsaWRLZXkoc3RvcmFnZU5hbWVzcGFjZUlEKSkpOworICAgIEFTU0VSVCgoSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlPj46OmlzVmFsaWRLZXko
c3RvcmFnZU5hbWVzcGFjZUlEKSkpOwogICAgIFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKiBzZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZSA9IG1fc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VzLmdldChzdG9y
YWdlTmFtZXNwYWNlSUQpOwogCiAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBtZXNzYWdl
IGNoZWNrcy4KQEAgLTQzMiw5ICs0MzIsOSBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpkZXN0cm95
U3RvcmFnZU1hcChDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdAogICAg
IHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiBjb25uZWN0
aW9uQW5kU3RvcmFnZU1hcElEUGFpcihjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQpOwogCiAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgbWVzc2FnZSBjaGVjay4KLSAgICBBU1NFUlQoKEhh
c2hNYXA8c3RkOjpwYWlyPFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgdWludDY0X3Q+LCBS
ZWZQdHI8U3RvcmFnZUFyZWE+ID46OmlzVmFsaWRLZXkoY29ubmVjdGlvbkFuZFN0b3JhZ2VNYXBJ
RFBhaXIpKSk7CisgICAgQVNTRVJUKChIYXNoTWFwPHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiwgUmVmUHRyPFN0b3JhZ2VBcmVhPj46OmlzVmFsaWRLZXko
Y29ubmVjdGlvbkFuZFN0b3JhZ2VNYXBJRFBhaXIpKSk7CiAKLSAgICBIYXNoTWFwPHN0ZDo6cGFp
cjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiwgUmVmUHRyPFN0b3JhZ2VB
cmVhPiA+OjppdGVyYXRvciBpdCA9IG1fc3RvcmFnZUFyZWFzQnlDb25uZWN0aW9uLmZpbmQoY29u
bmVjdGlvbkFuZFN0b3JhZ2VNYXBJRFBhaXIpOworICAgIEhhc2hNYXA8c3RkOjpwYWlyPFJlZlB0
cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgdWludDY0X3Q+LCBSZWZQdHI8U3RvcmFnZUFyZWE+Pjo6
aXRlcmF0b3IgaXQgPSBtX3N0b3JhZ2VBcmVhc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb25B
bmRTdG9yYWdlTWFwSURQYWlyKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhIG1l
c3NhZ2UgY2hlY2suCiAgICAgQVNTRVJUKGl0ICE9IG1fc3RvcmFnZUFyZWFzQnlDb25uZWN0aW9u
LmVuZCgpKTsKQEAgLTUyMyw5ICs1MjMsOSBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpjbG9uZVNl
c3Npb25TdG9yYWdlTmFtZXNwYWNlSW50ZXJuYWwodWludDY0X3Qgc3RvcmFnZU5hbWVzcAogCiB2
b2lkIFN0b3JhZ2VNYW5hZ2VyOjppbnZhbGlkYXRlQ29ubmVjdGlvbkludGVybmFsKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiB7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiA+IGNvbm5lY3Rpb25BbmRTdG9yYWdlTWFw
SURQYWlyc1RvUmVtb3ZlOwotICAgIEhhc2hNYXA8c3RkOjpwYWlyPFJlZlB0cjxDb3JlSVBDOjpD
b25uZWN0aW9uPiwgdWludDY0X3Q+LCBSZWZQdHI8U3RvcmFnZUFyZWE+ID4gc3RvcmFnZUFyZWFz
QnlDb25uZWN0aW9uID0gbV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb247Ci0gICAgZm9yIChIYXNo
TWFwPHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIHVpbnQ2NF90PiwgUmVm
UHRyPFN0b3JhZ2VBcmVhPiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHN0b3JhZ2VBcmVhc0J5Q29u
bmVjdGlvbi5iZWdpbigpLCBlbmQgPSBzdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uZW5kKCk7IGl0
ICE9IGVuZDsgKytpdCkgeworICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6OkNv
bm5lY3Rpb24+LCB1aW50NjRfdD4+IGNvbm5lY3Rpb25BbmRTdG9yYWdlTWFwSURQYWlyc1RvUmVt
b3ZlOworICAgIEhhc2hNYXA8c3RkOjpwYWlyPFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwg
dWludDY0X3Q+LCBSZWZQdHI8U3RvcmFnZUFyZWE+PiBzdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24g
PSBtX3N0b3JhZ2VBcmVhc0J5Q29ubmVjdGlvbjsKKyAgICBmb3IgKEhhc2hNYXA8c3RkOjpwYWly
PFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgdWludDY0X3Q+LCBSZWZQdHI8U3RvcmFnZUFy
ZWE+Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBzdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uYmVnaW4o
KSwgZW5kID0gc3RvcmFnZUFyZWFzQnlDb25uZWN0aW9uLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgaWYgKGl0LT5rZXkuZmlyc3QgIT0gY29ubmVjdGlvbikKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCkBAIC01NDAsNyArNTQwLDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6aW52
YWxpZGF0ZUNvbm5lY3Rpb25JbnRlcm5hbChDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW8K
IFN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYSogU3RvcmFnZU1hbmFnZXI6OmZpbmRTdG9yYWdl
QXJlYShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFw
SUQpIGNvbnN0CiB7CiAgICAgc3RkOjpwYWlyPENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRf
dD4gY29ubmVjdGlvbkFuZFN0b3JhZ2VNYXBJRFBhaXIoY29ubmVjdGlvbiwgc3RvcmFnZU1hcElE
KTsKLSAgICBpZiAoIUhhc2hNYXA8c3RkOjpwYWlyPFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9u
PiwgdWludDY0X3Q+LCBSZWZQdHI8U3RvcmFnZUFyZWE+ID46OmlzVmFsaWRLZXkoY29ubmVjdGlv
bkFuZFN0b3JhZ2VNYXBJRFBhaXIpKQorICAgIGlmICghSGFzaE1hcDxzdGQ6OnBhaXI8UmVmUHRy
PENvcmVJUEM6OkNvbm5lY3Rpb24+LCB1aW50NjRfdD4sIFJlZlB0cjxTdG9yYWdlQXJlYT4+Ojpp
c1ZhbGlkS2V5KGNvbm5lY3Rpb25BbmRTdG9yYWdlTWFwSURQYWlyKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICByZXR1cm4gbV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rpb24uZ2V0KGNvbm5lY3Rp
b25BbmRTdG9yYWdlTWFwSURQYWlyKTsKQEAgLTU0OCwxMCArNTQ4LDEwIEBAIFN0b3JhZ2VNYW5h
Z2VyOjpTdG9yYWdlQXJlYSogU3RvcmFnZU1hbmFnZXI6OmZpbmRTdG9yYWdlQXJlYShDb3JlSVBD
OjpDb25uZWN0aW9uCiAKIFN0b3JhZ2VNYW5hZ2VyOjpMb2NhbFN0b3JhZ2VOYW1lc3BhY2UqIFN0
b3JhZ2VNYW5hZ2VyOjpnZXRPckNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSh1aW50NjRfdCBz
dG9yYWdlTmFtZXNwYWNlSUQpCiB7Ci0gICAgaWYgKCFIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
TG9jYWxTdG9yYWdlTmFtZXNwYWNlPiA+Ojppc1ZhbGlkS2V5KHN0b3JhZ2VOYW1lc3BhY2VJRCkp
CisgICAgaWYgKCFIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TG9jYWxTdG9yYWdlTmFtZXNwYWNl
Pj46OmlzVmFsaWRLZXkoc3RvcmFnZU5hbWVzcGFjZUlEKSkKICAgICAgICAgcmV0dXJuIDA7CiAK
LSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TG9jYWxTdG9yYWdlTmFtZXNwYWNlPiA+OjpB
ZGRSZXN1bHQgcmVzdWx0ID0gbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2VzLmFkZChzdG9yYWdlTmFt
ZXNwYWNlSUQsIDApOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxMb2NhbFN0b3JhZ2VO
YW1lc3BhY2U+Pjo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlcy5h
ZGQoc3RvcmFnZU5hbWVzcGFjZUlELCAwKTsKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAg
ICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6OmNy
ZWF0ZSh0aGlzLCBzdG9yYWdlTmFtZXNwYWNlSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaAppbmRleCBlNjkwZWQxM2RmZmY1NDEw
N2Q0MjFiNjUxODk4NzdkY2E3YjE1YTVkLi5mODdlZWIwNzEwZjRhNmFjZDZiZDQ0MmJiNDgzYzM0
ZDdmOWQzYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VNYW5hZ2VyLmgKQEAgLTg2LDEyICs4NiwxMiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxX
b3JrUXVldWU+IG1fcXVldWU7CiAKICAgICBSZWZQdHI8TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VyPiBtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8TG9jYWxTdG9yYWdlTmFtZXNwYWNlPiA+IG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNl
czsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TG9jYWxTdG9yYWdlTmFtZXNwYWNlPj4g
bV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2VzOwogCiAgICAgY2xhc3MgU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2U7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlPiA+IG1fc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VzOworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZT4+IG1fc2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2VzOwogCi0gICAgSGFzaE1hcDxzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCB1aW50NjRfdD4sIFJlZlB0cjxTdG9yYWdlQXJlYT4gPiBtX3N0b3JhZ2VBcmVhc0J5Q29ubmVj
dGlvbjsKKyAgICBIYXNoTWFwPHN0ZDo6cGFpcjxSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4s
IHVpbnQ2NF90PiwgUmVmUHRyPFN0b3JhZ2VBcmVhPj4gbV9zdG9yYWdlQXJlYXNCeUNvbm5lY3Rp
b247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4
IGVlNWEyNzA1MTk2MjJmMDBmOGZmYTRmZDUwOTcwNTEwZTY5M2ZiZmEuLmY1ZjhjZTFjNGM2N2Jh
YmIyOTM5ODNlMDBlNzAxMDBiNTkyNDIzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNzUs
NyArNzUsNyBAQCBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAotICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJC
YWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IDc2MzAyM2QwN2RlNWI3NmVkNTI4MjQ4MzY5NjI3ZjMz
OGUzYWRkYjMuLjE4YzkzZWNkNGFlMzRjNzM3YTFhMWQ3NjVkOGVmMDg2ZmU5NjIyNjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC03
NCw3ICs3NCw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjphZGRJdGVtKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIG5ld0l0ZW0pCiAgICAgaWYgKCFtX2NhcGFjaXR5IHx8ICFuZXdJdGVtIHx8
ICFtX3BhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0
PiA+IHJlbW92ZWRJdGVtczsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IHJlbW92ZWRJ
dGVtczsKICAgICAKICAgICBpZiAobV9oYXNDdXJyZW50SW5kZXgpIHsKICAgICAgICAgLy8gVG9z
cyBldmVyeXRoaW5nIGluIHRoZSBmb3J3YXJkIGxpc3QuCkBAIC0yMTIsNyArMjEyLDcgQEAgUGFz
c1JlZlB0cjxJbW11dGFibGVBcnJheT4gV2ViQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdEFzSW1t
dXRhYmxlQXJyYXlXaXRoTGltaXQKICAgICBpZiAoIXNpemUpCiAgICAgICAgIHJldHVybiBJbW11
dGFibGVBcnJheTo6Y3JlYXRlKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiB2
ZWN0b3I7CisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiB2ZWN0b3I7CiAgICAgdmVjdG9y
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSk7CiAKICAgICBBU1NFUlQoYmFja0xpc3RTaXpl
ID49IHNpemUpOwpAQCAtMjM1LDcgKzIzNSw3IEBAIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+
IFdlYkJhY2tGb3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExpCiAg
ICAgaWYgKCFzaXplKQogICAgICAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZSgpOwog
Ci0gICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4gdmVjdG9yOworICAgIFZlY3RvcjxSZWZQ
dHI8QVBJT2JqZWN0Pj4gdmVjdG9yOwogICAgIHZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHNpemUpOwogCiAgICAgdW5zaWduZWQgbGFzdCA9IG1fY3VycmVudEluZGV4ICsgc2l6ZTsKQEAg
LTI1Nyw3ICsyNTcsNyBAQCB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6Y2xlYXIoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBSZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gY3VycmVudEl0
ZW0gPSB0aGlzLT5jdXJyZW50SXRlbSgpOwotICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+
IHJlbW92ZWRJdGVtczsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IHJlbW92ZWRJdGVt
czsKIAogICAgIGlmICghY3VycmVudEl0ZW0pIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkg
ZXZlciBoYXZlIG5vIGN1cnJlbnQgaXRlbSBpZiB3ZSBhbHNvIGhhdmUgbm8gY3VycmVudCBpdGVt
IGluZGV4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3
YXJkTGlzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5o
CmluZGV4IGVjZWY0MmI0ZjhiZTdkMjQ2NjZkZTFmZDg5NzQxMjVjNDQwYWVjMGUuLjA1MjVkNTgy
NjAyZjEzMTc0YTBjMDdkNTY5NDA0OTJjOTY5NWQ5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmgKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXR5cGVkZWYgVmVjdG9yPFJlZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtPiA+IEJhY2tGb3J3YXJkTGlzdEl0ZW1WZWN0b3I7Cit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8
V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4+IEJhY2tGb3J3YXJkTGlzdEl0ZW1WZWN0b3I7CiAKIC8q
CiAgKiAgICAgICAgICBDdXJyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKaW5kZXggOWJjZTQ0Mjk4YzQyYjQ5MzZjZTJmNDE0ODUwOTgxNzdiZWNkM2Y0OS4uZGVhNjI1
YTUyOTgwODA2N2VmZWIyMjI1YTJhZTZkMGI2MTVhNjVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtNTUzLDcgKzU1Myw3IEBAIFdlYlByb2Nlc3NQcm94eSog
V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAKICAgICBpZiAobV9wcm9jZXNzTW9k
ZWwgPT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcykgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSAhPSBtX21lc3NhZ2VzVG9JbmplY3RlZEJ1bmRsZVBvc3RlZFRvRW1w
dHlDb250ZXh0LnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBwYWlyPFN0cmluZywgUmVmUHRy
PEFQSU9iamVjdD4gPiYgbWVzc2FnZSA9IG1fbWVzc2FnZXNUb0luamVjdGVkQnVuZGxlUG9zdGVk
VG9FbXB0eUNvbnRleHRbaV07CisgICAgICAgICAgICBwYWlyPFN0cmluZywgUmVmUHRyPEFQSU9i
amVjdD4+JiBtZXNzYWdlID0gbV9tZXNzYWdlc1RvSW5qZWN0ZWRCdW5kbGVQb3N0ZWRUb0VtcHR5
Q29udGV4dFtpXTsKIAogICAgICAgICAgICAgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
cj4gbWVzc2FnZURhdGEgPSBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI6OmNyZWF0ZSgpOwogCkBA
IC01ODUsNyArNTg1LDcgQEAgdm9pZCBXZWJDb250ZXh0Ojp3YXJtSW5pdGlhbFByb2Nlc3MoKQog
dm9pZCBXZWJDb250ZXh0OjplbmFibGVQcm9jZXNzVGVybWluYXRpb24oKQogewogICAgIG1fcHJv
Y2Vzc1Rlcm1pbmF0aW9uRW5hYmxlZCA9IHRydWU7Ci0gICAgVmVjdG9yPFJlZlB0cjxXZWJQcm9j
ZXNzUHJveHk+ID4gcHJvY2Vzc2VzID0gbV9wcm9jZXNzZXM7CisgICAgVmVjdG9yPFJlZlB0cjxX
ZWJQcm9jZXNzUHJveHk+PiBwcm9jZXNzZXMgPSBtX3Byb2Nlc3NlczsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHByb2Nlc3Nlcy5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAoc2hvdWxk
VGVybWluYXRlKHByb2Nlc3Nlc1tpXS5nZXQoKSkpCiAgICAgICAgICAgICBwcm9jZXNzZXNbaV0t
PnRlcm1pbmF0ZSgpOwpAQCAtMTIxMCw3ICsxMjEwLDcgQEAgdm9pZCBXZWJDb250ZXh0OjpwbHVn
aW5JbmZvU3RvcmVEaWRMb2FkUGx1Z2lucyhQbHVnaW5JbmZvU3RvcmUqIHN0b3JlKQogI2VuZGlm
CiAgICAgQVNTRVJUKHN0b3JlID09ICZtX3BsdWdpbkluZm9TdG9yZSk7CiAKLSAgICBWZWN0b3I8
UmVmUHRyPEFQSU9iamVjdD4gPiBwbHVnaW5BcnJheTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9i
amVjdD4+IHBsdWdpbkFycmF5OwogCiAgICAgVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+IHBsdWdp
bnMgPSBtX3BsdWdpbkluZm9TdG9yZS5wbHVnaW5zKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBwbHVnaW5zLnNpemUoKTsgKytpKSB7CkBAIC0xMjIwLDcgKzEyMjAsNyBAQCB2b2lkIFdl
YkNvbnRleHQ6OnBsdWdpbkluZm9TdG9yZURpZExvYWRQbHVnaW5zKFBsdWdpbkluZm9TdG9yZSog
c3RvcmUpCiAgICAgICAgIG1hcC5zZXQoQVNDSUlMaXRlcmFsKCJuYW1lIiksIFdlYlN0cmluZzo6
Y3JlYXRlKHBsdWdpbi5pbmZvLm5hbWUpKTsKICAgICAgICAgbWFwLnNldChBU0NJSUxpdGVyYWwo
ImZpbGUiKSwgV2ViU3RyaW5nOjpjcmVhdGUocGx1Z2luLmluZm8uZmlsZSkpOwogICAgICAgICBt
YXAuc2V0KEFTQ0lJTGl0ZXJhbCgiZGVzYyIpLCBXZWJTdHJpbmc6OmNyZWF0ZShwbHVnaW4uaW5m
by5kZXNjKSk7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IG1pbWVBcnJheTsK
KyAgICAgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiBtaW1lQXJyYXk7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGogPSAwOyBqIDwgIHBsdWdpbi5pbmZvLm1pbWVzLnNpemUoKTsgKytqKQogICAg
ICAgICAgICAgbWltZUFycmF5LmFwcGVuZChXZWJTdHJpbmc6OmNyZWF0ZShwbHVnaW4uaW5mby5t
aW1lc1tqXS50eXBlKSk7CiAgICAgICAgIG1hcC5zZXQoQVNDSUlMaXRlcmFsKCJtaW1lcyIpLCBJ
bW11dGFibGVBcnJheTo6YWRvcHQobWltZUFycmF5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAppbmRleCAwNjU4ZmY0MGY5NTkwOTU3NzRhNzJhNWYyMTRiOTg5YzI1YzMzZmJj
Li40Yjg2MWU4ZGQwZTY3MTE3YWZkY2E4NjQ2MDgyYTc0MWM1NjNmYmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTM4MSw3ICszODEsNyBAQCBwcml2YXRlOgogICAg
IFByb2Nlc3NNb2RlbCBtX3Byb2Nlc3NNb2RlbDsKICAgICB1bnNpZ25lZCBtX3dlYlByb2Nlc3ND
b3VudExpbWl0OyAvLyBUaGUgbGltaXQgaGFzIG5vIGVmZmVjdCB3aGVuIHByb2Nlc3MgbW9kZWwg
aXMgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2Vzcy4KICAgICAKLSAgICBWZWN0b3I8
UmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gPiBtX3Byb2Nlc3NlczsKKyAgICBWZWN0b3I8UmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4+IG1fcHJvY2Vzc2VzOwogICAgIGJvb2wgbV9oYXZlSW5pdGlhbEVt
cHR5UHJvY2VzczsKIAogICAgIFJlZlB0cjxXZWJQYWdlR3JvdXA+IG1fZGVmYXVsdFBhZ2VHcm91
cDsKQEAgLTQxOCw3ICs0MTgsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gTWVzc2FnZXMgdGhhdCB3
ZXJlIHBvc3RlZCBiZWZvcmUgYW55IHBhZ2VzIHdlcmUgY3JlYXRlZC4KICAgICAvLyBUaGUgY2xp
ZW50IHNob3VsZCB1c2UgaW5pdGlhbGl6YXRpb24gbWVzc2FnZXMgaW5zdGVhZCwgc28gdGhhdCBh
IHJlc3RhcnRlZCBwcm9jZXNzIHdvdWxkIGdldCB0aGUgc2FtZSBzdGF0ZS4KLSAgICBWZWN0b3I8
cGFpcjxTdHJpbmcsIFJlZlB0cjxBUElPYmplY3Q+ID4gPiBtX21lc3NhZ2VzVG9JbmplY3RlZEJ1
bmRsZVBvc3RlZFRvRW1wdHlDb250ZXh0OworICAgIFZlY3RvcjxwYWlyPFN0cmluZywgUmVmUHRy
PEFQSU9iamVjdD4+PiBtX21lc3NhZ2VzVG9JbmplY3RlZEJ1bmRsZVBvc3RlZFRvRW1wdHlDb250
ZXh0OwogCiAgICAgQ2FjaGVNb2RlbCBtX2NhY2hlTW9kZWw7CiAKQEAgLTQzMiw3ICs0MzIsNyBA
QCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFN0b3JhZ2VNYW5hZ2VyPiBtX3N0b3JhZ2VNYW5hZ2Vy
OwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBSZWZQdHI8V2ViQ29udGV4dFN1
cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPiA+IFdlYkNvbnRleHRTdXBwbGVtZW50TWFw
OworICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgUmVmUHRyPFdlYkNvbnRleHRTdXBw
bGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+IFdlYkNvbnRleHRTdXBwbGVtZW50TWFwOwog
ICAgIFdlYkNvbnRleHRTdXBwbGVtZW50TWFwIG1fc3VwcGxlbWVudHM7CiAKICNpZiBVU0UoU09V
UCkKQEAgLTQ2NSw4ICs0NjUsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxOZXR3b3JrUHJvY2Vz
c1Byb3h5PiBtX25ldHdvcmtQcm9jZXNzOwogI2VuZGlmCiAgICAgCi0gICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4gPiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7
Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0PiA+IG1fc3Rh
dGlzdGljc1JlcXVlc3RzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0aW9uYXJ5
Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CiAKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgYm9vbCBtX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCmlu
ZGV4IDQ4MzBjZjBjNmMyNTQ4MWFmNTZlYmUzM2I2MDhmYTY0N2RmMjMyOTUuLmI3OTg2MjIxZDhj
OTc2OGRlNGRmYWU1ZjJjNmVlNzM2MzQ4YTVmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAg
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZEdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBob3MKICAgICB9CiAKICAgICBzaXplX3QgaG9zdG5hbWVDb3Vu
dCA9IGhvc3RuYW1lTGlzdC5zaXplKCk7Ci0gICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4g
aG9zdG5hbWVzKGhvc3RuYW1lQ291bnQpOworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4g
aG9zdG5hbWVzKGhvc3RuYW1lQ291bnQpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBo
b3N0bmFtZUNvdW50OyArK2kpCiAgICAgICAgIGhvc3RuYW1lc1tpXSA9IFdlYlN0cmluZzo6Y3Jl
YXRlKGhvc3RuYW1lTGlzdFtpXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5LmgKaW5kZXggYWUzYjVjMjY1MGUxNGUzZjg0Y2VhMTczYWQxOWNi
MWNmOTJlNjRlNC4uMjE1ZjIyZDY5MmE3MmMxMjkzZTQxOTQ3NjFiYTJlZjNhMzE2YzY4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApA
QCAtOTgsOCArOTgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2Nl
cHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAjZW5kaWYKIAotICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7Ci0gICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4g
PiBtX2h0dHBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tzOworICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s+PiBtX2h0dHBD
b29raWVBY2NlcHRQb2xpY3lDYWxsYmFja3M7CiAKICAgICBXZWJDb29raWVNYW5hZ2VyUHJveHlD
bGllbnQgbV9jbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGM0ZmViZGMyNjE1NWMxZDFlYTAzMGIxNzFm
OWU2MTc4ZmU4MWE5NjcuLjk1OWNiNWYyNDVmMzkwOWMwNjJkOTFlM2ZjOWUxMjQ1YTA2YTUzNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdl
clByb3h5LmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHk6OmRpZEdldERhdGFiYXNlc0J5T3JpZ2luKGNvbnN0IFZlY3RvcjxPcmlnaW5BbmREYXRhCiAg
ICAgfQogCiAgICAgc2l6ZV90IG9yaWdpbkFuZERhdGFiYXNlc0NvdW50ID0gb3JpZ2luQW5kRGF0
YWJhc2VzVmVjdG9yLnNpemUoKTsKLSAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiByZXN1
bHQob3JpZ2luQW5kRGF0YWJhc2VzQ291bnQpOworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0
Pj4gcmVzdWx0KG9yaWdpbkFuZERhdGFiYXNlc0NvdW50KTsKIAogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgb3JpZ2luQW5kRGF0YWJhc2VzQ291bnQ7ICsraSkgewogICAgICAgICBjb25zdCBP
cmlnaW5BbmREYXRhYmFzZXMmIG9yaWdpbkFuZERhdGFiYXNlcyA9IG9yaWdpbkFuZERhdGFiYXNl
c1ZlY3RvcltpXTsKQEAgLTE2NSwxMSArMTY1LDExIEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHk6OmRpZEdldERhdGFiYXNlc0J5T3JpZ2luKGNvbnN0IFZlY3RvcjxPcmlnaW5BbmREYXRh
CiAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbkFuZERhdGFiYXNlcy5vcmlnaW5JZGVu
dGlmaWVyKTsKICAgICAKICAgICAgICAgc2l6ZV90IGRhdGFiYXNlc0NvdW50ID0gb3JpZ2luQW5k
RGF0YWJhc2VzLmRhdGFiYXNlcy5zaXplKCk7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJT2Jq
ZWN0PiA+IGRhdGFiYXNlcyhkYXRhYmFzZXNDb3VudCk7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8
QVBJT2JqZWN0Pj4gZGF0YWJhc2VzKGRhdGFiYXNlc0NvdW50KTsKICAgICAKICAgICAgICAgZm9y
IChzaXplX3QgaiA9IDA7IGogPCBkYXRhYmFzZXNDb3VudDsgKytqKSB7CiAgICAgICAgICAgICBj
b25zdCBEYXRhYmFzZURldGFpbHMmIGRldGFpbHMgPSBvcmlnaW5BbmREYXRhYmFzZXMuZGF0YWJh
c2VzW2ldOwotICAgICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUElPYmplY3Q+ID4g
ZGV0YWlsc01hcDsKKyAgICAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8QVBJT2JqZWN0
Pj4gZGV0YWlsc01hcDsKIAogICAgICAgICAgICAgZGV0YWlsc01hcC5zZXQoZGF0YWJhc2VEZXRh
aWxzTmFtZUtleSgpLCBXZWJTdHJpbmc6OmNyZWF0ZShkZXRhaWxzLm5hbWUoKSkpOwogICAgICAg
ICAgICAgZGV0YWlsc01hcC5zZXQoZGF0YWJhc2VEZXRhaWxzRGlzcGxheU5hbWVLZXkoKSwgV2Vi
U3RyaW5nOjpjcmVhdGUoZGV0YWlscy5kaXNwbGF5TmFtZSgpKSk7CkBAIC0xNzgsNyArMTc4LDcg
QEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkR2V0RGF0YWJhc2VzQnlPcmlnaW4o
Y29uc3QgVmVjdG9yPE9yaWdpbkFuZERhdGEKICAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQo
SW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQoZGV0YWlsc01hcCkpOwogICAgICAgICB9CiAKLSAg
ICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUElPYmplY3Q+ID4gb3JpZ2luQW5kRGF0YWJh
c2VzTWFwOworICAgICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSU9iamVjdD4+IG9yaWdp
bkFuZERhdGFiYXNlc01hcDsKICAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNldChvcmln
aW5LZXkoKSwgb3JpZ2luKTsKICAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNldChvcmln
aW5RdW90YUtleSgpLCBXZWJVSW50NjQ6OmNyZWF0ZShvcmlnaW5BbmREYXRhYmFzZXMub3JpZ2lu
UXVvdGEpKTsKICAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNldChvcmlnaW5Vc2FnZUtl
eSgpLCBXZWJVSW50NjQ6OmNyZWF0ZShvcmlnaW5BbmREYXRhYmFzZXMub3JpZ2luVXNhZ2UpKTsK
QEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRHZXRE
YXRhYmFzZU9yaWdpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9yaWdpbgogICAgIH0KIAogICAg
IHNpemVfdCBvcmlnaW5JZGVudGlmaWVyc0NvdW50ID0gb3JpZ2luSWRlbnRpZmllcnMuc2l6ZSgp
OwotICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHNlY3VyaXR5T3JpZ2lucyhvcmlnaW5J
ZGVudGlmaWVyc0NvdW50KTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IHNlY3VyaXR5
T3JpZ2lucyhvcmlnaW5JZGVudGlmaWVyc0NvdW50KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgb3JpZ2luSWRlbnRpZmllcnNDb3VudDsgKytpKQogICAgICAgICBzZWN1cml0eU9yaWdp
bnNbaV0gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihv
cmlnaW5JZGVudGlmaWVyc1tpXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCmluZGV4IDMyNjZkNTg0OWUxNjI1Mjc0NmY5OGFmOWFm
ZTE0YTg2MzM3YTBjM2IuLmM4YWJiZTQwMDAyMTg5ZjczYTM1MDc3MTUwZDk1MTcwYjExODBlNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5oCkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRNb2RpZnlPcmln
aW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZE1vZGlmeURh
dGFiYXNlKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZUlkZW50aWZpZXIpOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2Fs
bGJhY2s+ID4gbV9hcnJheUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
QXJyYXlDYWxsYmFjaz4+IG1fYXJyYXlDYWxsYmFja3M7CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHlDbGllbnQgbV9jbGllbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRm9ybUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Rm9ybUNsaWVudC5jcHAKaW5kZXggZWNkZGJjYzQyNzU5MDdmMzI3Yjc4OTNlNDY4NzJjYzczMGJi
ZjVkYy4uYTE3ZjYxMzQ0NjcyY2E1NDcxZTI0MTQwYjc1ZjJmNDZkYzA2NGQ5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmNwcApAQCAtMzMsNyArMzMsNyBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotYm9vbCBXZWJGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9y
bShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJGcmFtZVByb3h5
KiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiYg
dGV4dEZpZWxkVmFsdWVzLCBBUElPYmplY3QqIHVzZXJEYXRhLCBXZWJGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUHJveHkqIGxpc3RlbmVyKQorYm9vbCBXZWJGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9y
bShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJGcmFtZVByb3h5
KiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0
ZXh0RmllbGRWYWx1ZXMsIEFQSU9iamVjdCogdXNlckRhdGEsIFdlYkZvcm1TdWJtaXNzaW9uTGlz
dGVuZXJQcm94eSogbGlzdGVuZXIpCiB7CiAgICAgaWYgKCFtX2NsaWVudC53aWxsU3VibWl0Rm9y
bSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkZvcm1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3Jt
Q2xpZW50LmgKaW5kZXggMDU5MjUyMzlmOGRjNWUxNWE5NGQxNjhhYzE2Y2NkMTQyN2U4MDUyYS4u
Y2EwZjJiNGI2YzhhOTJiY2JhMDlmZTU0YjBiNDU1MGQ4M2M3NmYyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRm9ybUNsaWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFdlYkZv
cm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eTsKIAogY2xhc3MgV2ViRm9ybUNsaWVudCA6IHB1Ymxp
YyBBUElDbGllbnQ8V0tQYWdlRm9ybUNsaWVudCwga1dLUGFnZUZvcm1DbGllbnRDdXJyZW50VmVy
c2lvbj4gewogcHVibGljOgotICAgIGJvb2wgd2lsbFN1Ym1pdEZvcm0oV2ViUGFnZVByb3h5Kiwg
V2ViRnJhbWVQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPiA+JiB0ZXh0RmllbGRWYWx1ZXMsIEFQSU9iamVjdCogdXNlckRhdGEsIFdl
YkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSopOyAKKyAgICBib29sIHdpbGxTdWJtaXRGb3Jt
KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgVmVj
dG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIEFQSU9iamVj
dCogdXNlckRhdGEsIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSopOyAKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCmluZGV4IGM3ZTliNjY4MzM3OTZl
MzQzYzk2YjE3NWFjZjA1YTk2NGM4MzZmZjEuLjEyMjNlZGJlNDAzMGVhMTQwMzMyMDQ5MDMyZWM1
ZmIxN2EwMjE5N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxs
YmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxB
cnJheUNhbGxiYWNrPj4gbV9hcnJheUNhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAppbmRl
eCBiYWM5OTJiMzk0M2ZiMjlkN2Q1YWRlNDdlYjUyODVmNzgwOGQwZGNkLi43NDVmMWQyNWI0Nzg3
MmJjY2RjZWI5OGExYjkxMGU3YTdmNjBhNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTG9hZGVyQ2xpZW50LmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgV2ViTG9hZGVy
Q2xpZW50Ojpwcm9jZXNzRGlkQ3Jhc2goV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIG1fY2xpZW50
LnByb2Nlc3NEaWRDcmFzaCh0b0FQSShwYWdlKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAK
LXZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViUGFnZVBy
b3h5KiBwYWdlLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZlY3RvcjxSZWZQ
dHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpCit2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlk
Q2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+KiByZW1vdmVkSXRl
bXMpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaApp
bmRleCBhNzUxMDE4ODdlYmY5MTNhZWZiYjNkMzEzYjc0NGI3YmQ1OWY0YzExLi5mNGFjNzg3YTQ3
NDY4YzM5NjYxZTViYWVmNDE5ZTVhMGIxMjllOTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkxvYWRlckNsaWVudC5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKFdlYlBhZ2VQcm94eSopOwogICAgIHZvaWQgcHJv
Y2Vzc0RpZENyYXNoKFdlYlBhZ2VQcm94eSopOwogCi0gICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3QoV2ViUGFnZVByb3h5KiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogYWRkZWRJdGVt
LCBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiogcmVtb3ZlZEl0ZW1zKTsKKyAgICB2b2lkIGRp
ZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkqLCBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBhZGRlZEl0ZW0sIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4qIHJlbW92ZWRJdGVtcyk7
CiAgICAgYm9vbCBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkqLCBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CiAgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW0oV2ViUGFnZVByb3h5KiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSosIEFQSU9iamVjdCop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eS5jcHAKaW5kZXggNDI1ZGM5MWU4ZjlhODdhNDUxZDdkNmQ0ZTIzYjQxMzllMmEz
ZjE3MC4uYjhkNmZmZDhmMWE3ZjhjOWZkNmFlNzcwMTU1ZjFmODRhODNiNWM2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5
LmNwcApAQCAtOTksNyArOTksNyBAQCB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmRp
ZEdldEhvc3RuYW1lc1dpdGhNZWRpYUNhY2hlKGNvbnN0IFZlY3RvcjxTdHJpbgogICAgIH0KIAog
ICAgIHNpemVfdCBob3N0bmFtZUNvdW50ID0gaG9zdG5hbWVMaXN0LnNpemUoKTsKLSAgICBWZWN0
b3I8UmVmUHRyPEFQSU9iamVjdD4gPiBob3N0bmFtZXMoaG9zdG5hbWVDb3VudCk7CisgICAgVmVj
dG9yPFJlZlB0cjxBUElPYmplY3Q+PiBob3N0bmFtZXMoaG9zdG5hbWVDb3VudCk7CiAKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGhvc3RuYW1lQ291bnQ7ICsraSkKICAgICAgICAgaG9zdG5h
bWVzW2ldID0gV2ViU3RyaW5nOjpjcmVhdGUoaG9zdG5hbWVMaXN0W2ldKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4
IDVjMTBiMjRmMGIzMzE5Nzk2NjgzZDQzNGE1OGIyNTEyZTNjMzRjODEuLjVkNTU3ODc5ZWUzZjJk
MDFhZWE3ZWU0ODNmZjczZTM0MzM0YzY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNzEsNyArNzEsNyBAQCBw
cml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKSBPVkVSUklERTsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJh
eUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPEFycmF5Q2FsbGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUNv
bnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDk2Mjc1NzYwYzEwNzM2YTI1NjQ4YTc0ZjJlMDYzZDIw
YjExNzFlNjYuLmY4MWRmM2E1NzRhNjI0MzI1NjZjMGM3NTk5ZjJlYWRjOGIzYzJkMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGll
bnQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgYm9vbCBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQ6
OnNob3dDb250ZXh0TWVudShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYkNvcmUKIAogICAg
IHVuc2lnbmVkIHNpemUgPSBtZW51SXRlbXNWZWN0b3Iuc2l6ZSgpOwogCi0gICAgVmVjdG9yPFJl
ZlB0cjxBUElPYmplY3Q+ID4gbWVudUl0ZW1zOworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0
Pj4gbWVudUl0ZW1zOwogICAgIG1lbnVJdGVtcy5yZXNlcnZlQ2FwYWNpdHkoc2l6ZSk7CiAKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmODdhNzA0N2QzYzNkMTU0ZWM1NGIxNjQ2MmVj
NTk5YmFjMTk5ZWQ1Li4yM2FlZDY2ZTkwOTExNjBjZDM3NzM1MDJkZWNhMGI1MGUyZTlmNjg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTYyLDcgKzE2
Miw3IEBAIHByaXZhdGU6CiAgICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhUmVjb3JkcygpIHsgfQog
ICAgIH5FeGNlZWRlZERhdGFiYXNlUXVvdGFSZWNvcmRzKCkgeyB9CiAKLSAgICBEZXF1ZTxPd25Q
dHI8UmVjb3JkPiA+IG1fcmVjb3JkczsKKyAgICBEZXF1ZTxPd25QdHI8UmVjb3JkPj4gbV9yZWNv
cmRzOwogICAgIE93blB0cjxSZWNvcmQ+IG1fY3VycmVudFJlY29yZDsKIH07CiAKQEAgLTM5Miw3
ICszOTIsNyBAQCBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBXZWJQYWdlUHJveHk6OnJlbGF0
ZWRQYWdlcygpIGNvbnN0CiAgICAgLy8gcGFnZXMoKSByZXR1cm5zIGEgbGlzdCBvZiBwYWdlcyBp
biBXZWJQcm9jZXNzLCBzbyB0aGlzIHBhZ2UgbWF5IG9yIG1heSBub3QgYmUgYW1vbmcgdGhlbSAt
IGEgY2xpZW50IGNhbiB1c2UgYSByZWZlcmVuY2UgdG8gV2ViUGFnZVByb3h5IGFmdGVyIHRoZSBw
YWdlIGhhcyBjbG9zZWQuCiAgICAgVmVjdG9yPFdlYlBhZ2VQcm94eSo+IHBhZ2VzID0gbV9wcm9j
ZXNzLT5wYWdlcygpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4gcmVzdWx0Owor
ICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0Pj4gcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZl
Q2FwYWNpdHkocGFnZXMuc2l6ZSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhZ2Vz
LnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChwYWdlc1tpXSAhPSB0aGlzKQpAQCAtODY4LDcg
Kzg2OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VHJ5UmVzdG9yZVNjcm9sbFBv
c2l0aW9uKCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZUJh
Y2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZCwgVmVjdG9yPFJlZlB0
cjxBUElPYmplY3Q+ID4qIHJlbW92ZWQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQmFj
a0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkLCBWZWN0b3I8UmVmUHRy
PEFQSU9iamVjdD4+KiByZW1vdmVkKQogewogICAgIG1fbG9hZGVyQ2xpZW50LmRpZENoYW5nZUJh
Y2tGb3J3YXJkTGlzdCh0aGlzLCBhZGRlZCwgcmVtb3ZlZCk7CiB9CkBAIC0xMzM5LDcgKzEzMzks
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBOYXRpdmVXZWJX
aGVlbEV2ZW50JiBldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE93blB0cjxW
ZWN0b3I8TmF0aXZlV2ViV2hlZWxFdmVudD4gPiBjb2FsZXNjZWRXaGVlbEV2ZW50ID0gYWRvcHRQ
dHIobmV3IFZlY3RvcjxOYXRpdmVXZWJXaGVlbEV2ZW50Pik7CisgICAgT3duUHRyPFZlY3RvcjxO
YXRpdmVXZWJXaGVlbEV2ZW50Pj4gY29hbGVzY2VkV2hlZWxFdmVudCA9IGFkb3B0UHRyKG5ldyBW
ZWN0b3I8TmF0aXZlV2ViV2hlZWxFdmVudD4pOwogICAgIGNvYWxlc2NlZFdoZWVsRXZlbnQtPmFw
cGVuZChldmVudCk7CiAgICAgbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy5hcHBlbmQo
Y29hbGVzY2VkV2hlZWxFdmVudC5yZWxlYXNlKCkpOwogICAgIHNlbmRXaGVlbEV2ZW50KGV2ZW50
KTsKQEAgLTEzNDcsNyArMTM0Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cHJvY2Vzc05leHRRdWV1ZWRXaGVlbEV2ZW50KCkKIHsKLSAgICBPd25QdHI8VmVjdG9yPE5h
dGl2ZVdlYldoZWVsRXZlbnQ+ID4gbmV4dENvYWxlc2NlZEV2ZW50ID0gYWRvcHRQdHIobmV3IFZl
Y3RvcjxOYXRpdmVXZWJXaGVlbEV2ZW50Pik7CisgICAgT3duUHRyPFZlY3RvcjxOYXRpdmVXZWJX
aGVlbEV2ZW50Pj4gbmV4dENvYWxlc2NlZEV2ZW50ID0gYWRvcHRQdHIobmV3IFZlY3RvcjxOYXRp
dmVXZWJXaGVlbEV2ZW50Pik7CiAgICAgV2ViV2hlZWxFdmVudCBuZXh0V2hlZWxFdmVudCA9IGNv
YWxlc2NlZFdoZWVsRXZlbnQobV93aGVlbEV2ZW50UXVldWUsICpuZXh0Q29hbGVzY2VkRXZlbnQu
Z2V0KCkpOwogICAgIG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuYXBwZW5kKG5leHRD
b2FsZXNjZWRFdmVudC5yZWxlYXNlKCkpOwogICAgIHNlbmRXaGVlbEV2ZW50KG5leHRXaGVlbEV2
ZW50KTsKQEAgLTE5MDcsNyArMTkwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZW1vcnlD
YWNoZUNsaWVudENhbGxzRW5hYmxlZChib29sIG1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZmluZFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEZp
bmRPcHRpb25zIG9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpCiB7CiAgICAgaWYgKHN0
cmluZy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZGlkRmluZFN0cmluZ01hdGNoZXMoc3RyaW5nLCBW
ZWN0b3I8VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+ID4gKCksIDApOworICAgICAgICBkaWRGaW5k
U3RyaW5nTWF0Y2hlcyhzdHJpbmcsIFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4+ICgp
LCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjU4MSw3ICsyNTgxLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFJlc291cmNlRXJyb3IKIAogLy8gRm9ybUNsaWVudAogCi12b2lkIFdlYlBhZ2VQcm94
eTo6d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJ
RCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiYgdGV4dEZpZWxkVmFs
dWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3Ry
aW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKQEAgLTI3NDIsNyArMjc0Miw3IEBAIFN0cmluZyBXZWJQYWdl
UHJveHk6OnBsdWdpbkluZm9ybWF0aW9uUGx1Z2luVVJMS2V5KCkKIAogUGFzc1JlZlB0cjxJbW11
dGFibGVEaWN0aW9uYXJ5PiBXZWJQYWdlUHJveHk6OnBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFy
eShjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlVmVy
c2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHBsdWdpblVSTFN0cmluZykKIHsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSU9i
amVjdD4gPiBwbHVnaW5JbmZvTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8QVBJT2Jq
ZWN0Pj4gcGx1Z2luSW5mb01hcDsKICAgICBpZiAoIWJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgp
KQogICAgICAgICBwbHVnaW5JbmZvTWFwLnNldChXZWJQYWdlUHJveHk6OnBsdWdpbkluZm9ybWF0
aW9uQnVuZGxlSWRlbnRpZmllcktleSgpLCBXZWJTdHJpbmc6OmNyZWF0ZShidW5kbGVJZGVudGlm
aWVyKSk7CiAgICAgaWYgKCFidW5kbGVWZXJzaW9uLmlzRW1wdHkoKSkKQEAgLTMxODEsMTUgKzMx
ODEsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIHVpbnQzMl90IG1hdGNoQ291bnQpCiAgICAgbV9maW5kQ2xpZW50LmRpZEZpbmRTdHJp
bmcodGhpcywgc3RyaW5nLCBtYXRjaENvdW50KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZpbmRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBWZWN0b3I8VmVjdG9yPFdl
YkNvcmU6OkludFJlY3Q+ID4gbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4QWZ0ZXJTZWxl
Y3Rpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluZFN0cmluZ01hdGNoZXMoY29uc3QgU3Ry
aW5nJiBzdHJpbmcsIFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4+IG1hdGNoUmVjdHMs
IGludDMyX3QgZmlyc3RJbmRleEFmdGVyU2VsZWN0aW9uKQogewotICAgIFZlY3RvcjxSZWZQdHI8
QVBJT2JqZWN0PiA+IG1hdGNoZXM7CisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiBtYXRj
aGVzOwogICAgIG1hdGNoZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtYXRjaFJlY3RzLnNpemUo
KSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hdGNoUmVjdHMuc2l6ZSgpOyArK2kp
IHsKICAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZWN0cyA9IG1hdGNo
UmVjdHNbaV07CiAgICAgICAgIHNpemVfdCBudW1SZWN0cyA9IG1hdGNoUmVjdHNbaV0uc2l6ZSgp
OwotICAgICAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiBhcGlSZWN0czsKKyAgICAgICAg
VmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiBhcGlSZWN0czsKICAgICAgICAgYXBpUmVjdHMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShudW1SZWN0cyk7CiAKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1SZWN0czsgKytpKQpAQCAtMzYzOSw3ICszNjM5LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVUeXBlLCBib29sIGhhbmRsZWQp
CiAgICAgY2FzZSBXZWJFdmVudDo6V2hlZWw6IHsKICAgICAgICAgQVNTRVJUKCFtX2N1cnJlbnRs
eVByb2Nlc3NlZFdoZWVsRXZlbnRzLmlzRW1wdHkoKSk7CiAKLSAgICAgICAgT3duUHRyPFZlY3Rv
cjxOYXRpdmVXZWJXaGVlbEV2ZW50PiA+IG9sZGVzdENvYWxlc2NlZEV2ZW50ID0gbV9jdXJyZW50
bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy50YWtlRmlyc3QoKTsKKyAgICAgICAgT3duUHRyPFZlY3Rv
cjxOYXRpdmVXZWJXaGVlbEV2ZW50Pj4gb2xkZXN0Q29hbGVzY2VkRXZlbnQgPSBtX2N1cnJlbnRs
eVByb2Nlc3NlZFdoZWVsRXZlbnRzLnRha2VGaXJzdCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBE
aXNwYXRjaCBhZGRpdGlvbmFsIGV2ZW50cyB0byB0aGUgZGlkTm90SGFuZGxlV2hlZWxFdmVudCBj
bGllbnQgZnVuY3Rpb24uCiAgICAgICAgIGlmICghaGFuZGxlZCAmJiBtX3VpQ2xpZW50LmltcGxl
bWVudHNEaWROb3RIYW5kbGVXaGVlbEV2ZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggODIwZjI4NDIyZWQwZTg5MmY0OWY1OGVjNjVmMGNlNzZlZjZmZDk5
Zi4uMjBhNWY1NDNiZjgwMzYyMTE1YWIzMGQyNjZlM2UzODViMGE5MjU2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzAwLDcgKzMwMCw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7
CiAgICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKLSAgICB2b2lkIGRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZlY3Rv
cjxSZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOworICAgIHZvaWQgZGlkQ2hhbmdl
QmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9y
PFJlZlB0cjxBUElPYmplY3Q+PiogcmVtb3ZlZEl0ZW1zKTsKICAgICB2b2lkIHNob3VsZEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgYm9vbCYgc2hvdWxkR29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW0pOwogICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVp
bnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIApAQCAtNTU0LDcgKzU1
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZpbmRJbmRpY2F0b3IoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBzZWxlY3Rpb25SZWN0SW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkZsb2F0UmVjdD4mIHRleHRSZWN0c0luU2VsZWN0aW9uUmVjdENvb3JkaW5hdGVz
LCBmbG9hdCBjb250ZW50SW1hZ2VTY2FsZUZhY3RvciwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmIGNvbnRlbnRJbWFnZUhhbmRsZSwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpOwog
ICAgIHZvaWQgZGlkRmluZFN0cmluZyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBtYXRjaENvdW50
KTsKICAgICB2b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9p
ZCBkaWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBWZWN0b3I8VmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+ID4gbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4QWZ0ZXJTZWxlY3Rp
b24pOworICAgIHZvaWQgZGlkRmluZFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0Pj4gbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4
QWZ0ZXJTZWxlY3Rpb24pOwogCiAgICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKFBhc3NSZWZQ
dHI8U3RyaW5nQ2FsbGJhY2s+KTsKICNpZiBFTkFCTEUoTUhUTUwpCkBAIC04MzUsNyArODM1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU3luYyh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFj
dGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpOwogICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKLSAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+ID4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6
OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgLy8gVUkgY2xpZW50CiAgICAg
dm9pZCBjcmVhdGVOZXdQYWdlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1v
dXNlQnV0dG9uLCB1aW50NjRfdCYgbmV3UGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
Jik7CkBAIC0xMDk1LDE2ICsxMDk1LDE2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlZpYnJh
dGlvblByb3h5PiBtX3ZpYnJhdGlvbjsKICNlbmRpZgogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX3ZvaWRDYWxsYmFja3M7Ci0gICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPERhdGFDYWxsYmFjaz4gPiBtX2RhdGFDYWxsYmFja3M7Ci0gICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPEltYWdlQ2FsbGJhY2s+ID4gbV9pbWFnZUNhbGxiYWNrczsKLSAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+ID4gbV9zdHJpbmdDYWxs
YmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFZvaWRDYWxsYmFjaz4+IG1fdm9p
ZENhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGF0YUNhbGxiYWNrPj4g
bV9kYXRhQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbWFnZUNhbGxi
YWNrPj4gbV9pbWFnZUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3Ry
aW5nQ2FsbGJhY2s+PiBtX3N0cmluZ0NhbGxiYWNrczsKICAgICBIYXNoU2V0PHVpbnQ2NF90PiBt
X2xvYWREZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8U2NyaXB0VmFsdWVDYWxsYmFjaz4gPiBtX3NjcmlwdFZhbHVlQ2FsbGJhY2tzOwotICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxDb21wdXRlZFBhZ2VzQ2FsbGJhY2s+ID4gbV9jb21w
dXRlZFBhZ2VzQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxWYWxpZGF0
ZUNvbW1hbmRDYWxsYmFjaz4gPiBtX3ZhbGlkYXRlQ29tbWFuZENhbGxiYWNrczsKKyAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8U2NyaXB0VmFsdWVDYWxsYmFjaz4+IG1fc2NyaXB0VmFsdWVD
YWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPENvbXB1dGVkUGFnZXNDYWxs
YmFjaz4+IG1fY29tcHV0ZWRQYWdlc0NhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8VmFsaWRhdGVDb21tYW5kQ2FsbGJhY2s+PiBtX3ZhbGlkYXRlQ29tbWFuZENhbGxiYWNr
czsKICNpZiBQTEFURk9STShHVEspCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFByaW50
RmluaXNoZWRDYWxsYmFjaz4gPiBtX3ByaW50RmluaXNoZWRDYWxsYmFja3M7CisgICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPFByaW50RmluaXNoZWRDYWxsYmFjaz4+IG1fcHJpbnRGaW5pc2hl
ZENhbGxiYWNrczsKICNlbmRpZgogCiAgICAgSGFzaFNldDxXZWJFZGl0Q29tbWFuZFByb3h5Kj4g
bV9lZGl0Q29tbWFuZFNldDsKQEAgLTExOTQsNyArMTE5NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICAgICBEZXF1ZTxOYXRpdmVXZWJLZXlib2FyZEV2ZW50PiBtX2tleUV2ZW50UXVldWU7CiAgICAg
RGVxdWU8TmF0aXZlV2ViV2hlZWxFdmVudD4gbV93aGVlbEV2ZW50UXVldWU7Ci0gICAgRGVxdWU8
T3duUHRyPFZlY3RvcjxOYXRpdmVXZWJXaGVlbEV2ZW50PiA+ID4gbV9jdXJyZW50bHlQcm9jZXNz
ZWRXaGVlbEV2ZW50czsKKyAgICBEZXF1ZTxPd25QdHI8VmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZl
bnQ+Pj4gbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50czsKIAogICAgIGJvb2wgbV9wcm9j
ZXNzaW5nTW91c2VNb3ZlRXZlbnQ7CiAgICAgT3duUHRyPE5hdGl2ZVdlYk1vdXNlRXZlbnQ+IG1f
bmV4dE1vdXNlTW92ZUV2ZW50OwpAQCAtMTI3NSw3ICsxMjc1LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oUVQpCi0gICAgV1RGOjpIYXNoU2V0PFJlZlB0cjxRdFJlZkNvdW50
ZWROZXR3b3JrUmVxdWVzdERhdGE+ID4gbV9hcHBsaWNhdGlvblNjaGVtZVJlcXVlc3RzOworICAg
IFdURjo6SGFzaFNldDxSZWZQdHI8UXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhPj4gbV9h
cHBsaWNhdGlvblNjaGVtZVJlcXVlc3RzOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUEFHRV9WSVNJ
QklMSVRZX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGYxZGI0NmI5MjFjYjBhMjQ2NGU2ZTJlODE4MjdkOWZiMTk1NTJi
NTguLjA5ZmQ0OTMwYmViMzM4NTIxMzg5OTY1OWQ5YWI4MDY1ZmQwZjNmMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTQy
LDcgKzE0Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkRmluaXNoTG9h
ZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihXVEY6OlN0cmluZyBzdWdnZXN0ZWRGaWxl
bmFtZSwgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogCiAgICAgIyBGb3JtcyBtZXNzYWdl
cwotICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZy
YW1lSUQsIFdURjo6VmVjdG9yPHN0ZDo6cGFpcjxXVEY6OlN0cmluZywgV1RGOjpTdHJpbmc+ID4g
dGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYworICAgIFdpbGxTdWJtaXRG
b3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIFdURjo6VmVjdG9y
PHN0ZDo6cGFpcjxXVEY6OlN0cmluZywgV1RGOjpTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29k
ZXIgdXNlckRhdGEpIFZhcmlhZGljCiAKICAgICAjIENhbGxiYWNrIG1lc3NhZ2VzCiAgICAgVm9p
ZENhbGxiYWNrKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC0xOTUsNyArMTk1LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXRGaW5kSW5kaWNhdG9yKFdlYkNvcmU6OkZsb2F0
UmVjdCBzZWxlY3Rpb25SZWN0LCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiB0ZXh0UmVjdHMs
IGZsb2F0IGNvbnRlbnRJbWFnZVNjYWxlRmFjdG9yLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlIGNvbnRlbnRJbWFnZUhhbmRsZSwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpCiAg
ICAgRGlkRmluZFN0cmluZyhXVEY6OlN0cmluZyBzdHJpbmcsIHVpbnQzMl90IG1hdGNoQ291bnQp
CiAgICAgRGlkRmFpbFRvRmluZFN0cmluZyhXVEY6OlN0cmluZyBzdHJpbmcpCi0gICAgRGlkRmlu
ZFN0cmluZ01hdGNoZXMoV1RGOjpTdHJpbmcgc3RyaW5nLCBWZWN0b3I8VmVjdG9yPFdlYkNvcmU6
OkludFJlY3Q+ID4gbWF0Y2hlcywgaW50MzJfdCBmaXJzdEluZGV4QWZ0ZXJTZWxlY3Rpb24pCisg
ICAgRGlkRmluZFN0cmluZ01hdGNoZXMoV1RGOjpTdHJpbmcgc3RyaW5nLCBWZWN0b3I8VmVjdG9y
PFdlYkNvcmU6OkludFJlY3Q+PiBtYXRjaGVzLCBpbnQzMl90IGZpcnN0SW5kZXhBZnRlclNlbGVj
dGlvbikKICAgICBEaWRHZXRJbWFnZUZvckZpbmRNYXRjaChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGNvbnRlbnRJbWFnZUhhbmRsZSwgdWludDMyX3QgbWF0Y2hJbmRleCkKIAogICAg
ICMgUG9wdXBNZW51IG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDFkZjAwOTY4NDkzY2JiMWIyMjliYTM2N2MxYzY2NjRkN2E1NTEx
YjQuLjA4ZmY5ODkzMTVhMmM1NzQxNDZlYzdmMTAwNjhjZWNkNDk5ZmUxZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDcsNyArMTQ3LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpc2Nvbm5lY3QoKQogCiAgICAgbV9yZXNwb25zaXZl
bmVzc1RpbWVyLnN0b3AoKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8V2ViRnJhbWVQcm94eT4gPiBm
cmFtZXM7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJGcmFtZVByb3h5Pj4gZnJhbWVzOwogICAgIGNv
cHlWYWx1ZXNUb1ZlY3RvcihtX2ZyYW1lTWFwLCBmcmFtZXMpOwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDAsIHNpemUgPSBmcmFtZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQpAQCAtMzk2LDcgKzM5
Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikKIAogICAgIHdlYkNvbm5lY3Rpb24oKS0+ZGlkQ2xvc2UoKTsKIAotICAgIFZlY3RvcjxSZWZQ
dHI8V2ViUGFnZVByb3h5PiA+IHBhZ2VzOworICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5
Pj4gcGFnZXM7CiAgICAgY29weVZhbHVlc1RvVmVjdG9yKG1fcGFnZU1hcCwgcGFnZXMpOwogCiAg
ICAgZGlzY29ubmVjdCgpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEJlY29tZVVucmVzcG9uc2l2ZShSZXNwb25z
aXZlbmVzc1RpbWVyKikKIHsKLSAgICBWZWN0b3I8UmVmUHRyPFdlYlBhZ2VQcm94eT4gPiBwYWdl
czsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYlBhZ2VQcm94eT4+IHBhZ2VzOwogICAgIGNvcHlWYWx1
ZXNUb1ZlY3RvcihtX3BhZ2VNYXAsIHBhZ2VzKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6
ZSA9IHBhZ2VzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKICAgICAgICAgcGFnZXNbaV0tPnByb2Nl
c3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoKTsKQEAgLTQzMCw3ICs0MzAsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkQmVjb21lVW5yZXNwb25zaXZlKFJlc3BvbnNpdmVuZXNzVGltZXIqKQog
CiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6aW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlVW5yZXNwb25z
aXZlKFJlc3BvbnNpdmVuZXNzVGltZXIqKQogewotICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVBy
b3h5PiA+IHBhZ2VzOworICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5Pj4gcGFnZXM7CiAg
ICAgY29weVZhbHVlc1RvVmVjdG9yKG1fcGFnZU1hcCwgcGFnZXMpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwLCBzaXplID0gcGFnZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBwYWdl
c1tpXS0+aW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlUHJvY2Vzc1VucmVzcG9uc2l2ZSgpOwpAQCAt
NDM4LDcgKzQzOCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjppbnRlcmFjdGlvbk9jY3VycmVk
V2hpbGVVbnJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1lciopCiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaWRCZWNvbWVSZXNwb25zaXZlKFJlc3BvbnNpdmVuZXNzVGltZXIqKQogewotICAg
IFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5PiA+IHBhZ2VzOworICAgIFZlY3RvcjxSZWZQdHI8
V2ViUGFnZVByb3h5Pj4gcGFnZXM7CiAgICAgY29weVZhbHVlc1RvVmVjdG9yKG1fcGFnZU1hcCwg
cGFnZXMpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gcGFnZXMuc2l6ZSgpOyBpIDwg
c2l6ZTsgKytpKQogICAgICAgICBwYWdlc1tpXS0+cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUo
KTsKQEAgLTQ4Nyw3ICs0ODcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaXNjb25uZWN0
RnJhbWVzRnJvbVBhZ2UoV2ViUGFnZVByb3h5KiBwYWdlKQogewotICAgIFZlY3RvcjxSZWZQdHI8
V2ViRnJhbWVQcm94eT4gPiBmcmFtZXM7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJGcmFtZVByb3h5
Pj4gZnJhbWVzOwogICAgIGNvcHlWYWx1ZXNUb1ZlY3RvcihtX2ZyYW1lTWFwLCBmcmFtZXMpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gZnJhbWVzLnNpemUoKTsgaSA8IHNpemU7ICsr
aSkgewogICAgICAgICBpZiAoZnJhbWVzW2ldLT5wYWdlKCkgPT0gcGFnZSkKQEAgLTQ5OCw3ICs0
OTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlzY29ubmVjdEZyYW1lc0Zyb21QYWdlKFdl
YlBhZ2VQcm94eSogcGFnZSkKIHNpemVfdCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ291bnRJblBh
Z2UoV2ViUGFnZVByb3h5KiBwYWdlKSBjb25zdAogewogICAgIHNpemVfdCByZXN1bHQgPSAwOwot
ICAgIGZvciAoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkZyYW1lUHJveHk+ID46OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIgPSBtX2ZyYW1lTWFwLmJlZ2luKCk7IGl0ZXIgIT0gbV9mcmFtZU1hcC5l
bmQoKTsgKytpdGVyKSB7CisgICAgZm9yIChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViRnJh
bWVQcm94eT4+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9mcmFtZU1hcC5iZWdpbigpOyBpdGVy
ICE9IG1fZnJhbWVNYXAuZW5kKCk7ICsraXRlcikgewogICAgICAgICBpZiAoaXRlci0+dmFsdWUt
PnBhZ2UoKSA9PSBwYWdlKQogICAgICAgICAgICAgKytyZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDY3ZWY0Y2ZhYmU2ODVmYWU5
NWIxNGJhYTc2ZmQ5ZTIwYTMyMzliODkuLjZiZDJjZGY1ZDEwMDNlYTZkOTBmY2I4NTFjOWU5Y2Y0
NDQ2NmM4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
QEAgLTYwLDggKzYwLDggQEAgc3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7CiAKIGNsYXNz
IFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NQcm94eSwgUmVzcG9uc2l2ZW5l
c3NUaW1lcjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPiA+IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW1N
YXA7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViRnJhbWVQcm94eT4g
PiBXZWJGcmFtZVByb3h5TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+PiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtTWFwOworICAg
IHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFt
ZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgV2ViUGFnZVByb3h5Kj4g
V2ViUGFnZVByb3h5TWFwOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5
PiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaAppbmRleCAzYjVh
M2IyZDkyYjk4ZjUyZmI2ZDEzYzdjYzlmMDNjNTI4ZGUxMGNiLi5lODBhZmMzYzY3YjlmODViMThm
ZGRhNTI2OTM3OThjYzViNzdiNjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTc0LDcgKzc0LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0Q2FjaGVP
cmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5JZGVudGlmaWVy
cywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxBcnJheUNhbGxiYWNrPj4gbV9hcnJheUNhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IGU1MmE0NTM2MTc4ZDU3N2EzMDM0ZDFkNDk0
MmU0YmY3MzM4ZjQwMTcuLmEwZTFjMzNhZmEzZTYxZmVmYjgxYjQwOTEyZjJhY2JlNzE3YzY2NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRN
ZW51UHJveHlNYWMubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJv
eHlNYWM6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURh
dAogICAgIG1fcGFnZS0+Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoaXRlbSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHBvcHVsYXRlTlNNZW51KE5TTWVudSogbWVudSwgY29uc3QgVmVjdG9yPFJldGFpblB0
cjxOU01lbnVJdGVtPiA+JiBtZW51SXRlbVZlY3RvcikKK3N0YXRpYyB2b2lkIHBvcHVsYXRlTlNN
ZW51KE5TTWVudSogbWVudSwgY29uc3QgVmVjdG9yPFJldGFpblB0cjxOU01lbnVJdGVtPj4mIG1l
bnVJdGVtVmVjdG9yKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtZW51SXRlbVZl
Y3Rvci5zaXplKCk7ICsraSkgewogICAgICAgICBOU0ludGVnZXIgb2xkU3RhdGUgPSBbbWVudUl0
ZW1WZWN0b3JbaV0uZ2V0KCkgc3RhdGVdOwpAQCAtMTMxLDkgKzEzMSw5IEBAIHN0YXRpYyB2b2lk
IHBvcHVsYXRlTlNNZW51KE5TTWVudSogbWVudSwgY29uc3QgVmVjdG9yPFJldGFpblB0cjxOU01l
bnVJdGVtPiA+JiBtCiAgICAgfQogfQogCi1zdGF0aWMgVmVjdG9yPFJldGFpblB0cjxOU01lbnVJ
dGVtPiA+IG5zTWVudUl0ZW1WZWN0b3IoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURh
dGE+JiBpdGVtcykKK3N0YXRpYyBWZWN0b3I8UmV0YWluUHRyPE5TTWVudUl0ZW0+PiBuc01lbnVJ
dGVtVmVjdG9yKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpCiB7
Ci0gICAgVmVjdG9yPFJldGFpblB0cjxOU01lbnVJdGVtPiA+IHJlc3VsdDsKKyAgICBWZWN0b3I8
UmV0YWluUHRyPE5TTWVudUl0ZW0+PiByZXN1bHQ7CiAKICAgICB1bnNpZ25lZCBzaXplID0gaXRl
bXMuc2l6ZSgpOwogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoc2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlv
bkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAppbmRleCAwZDYyMTE0MjMyOTZi
ZTRmZDFlMDg1YmQ1Y2EwYjljYWExMDZjODAyLi40ODQ3OTA0MDIyMjNjNjU0MGU4MGQyYjBkYzUy
NzdiNzFmOTUzNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHAKQEAgLTUzLDE1ICs1MywxNSBAQCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIoQ2hpbGRQcm9jZXNzKiBjaGlsZFByb2NlcwogCiB2
b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
cyh1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiA+IG9yaWdpbnM7CisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmln
aW5zOwogCiAgICAgY2FjaGVTdG9yYWdlKCkuZ2V0T3JpZ2luc1dpdGhDYWNoZShvcmlnaW5zKTsK
IAogICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50aWZpZXJzOwogICAgIGlkZW50
aWZpZXJzLnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7CiAKLSAgICBIYXNoU2V0PFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKLSAg
ICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gPjo6aXRlcmF0b3IgaSA9IG9yaWdpbnMu
YmVnaW4oKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBl
bmQgPSBvcmlnaW5zLmVuZCgpOworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj46
Oml0ZXJhdG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7CiAgICAgZm9yICg7IGkgIT0gZW5kOyArK2kp
IHsKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKICAgICAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggNmJkNDE1YWNjZDg4ODExYTI1MDI0
OGNhM2RkNzFhMzE1NzYzNDQzZi4uYzMyMGM2YmYxNDhjODk5ZjBiYTg1ODQzMjRmY2FjZmUxOWUx
NGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNzgsNyArNzgsNyBAQCB2
b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6RGF0YQogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBSZWZQ
dHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gcG9zaXRpb24gPSBHZW9sb2NhdGlvblBvc2l0aW9uOjpj
cmVhdGUoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRh
LmFjY3VyYWN5LCBkYXRhLmNhblByb3ZpZGVBbHRpdHVkZSwgZGF0YS5hbHRpdHVkZSwgZGF0YS5j
YW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZGF0YS5hbHRpdHVkZUFjY3VyYWN5LCBkYXRhLmNh
blByb3ZpZGVIZWFkaW5nLCBkYXRhLmhlYWRpbmcsIGRhdGEuY2FuUHJvdmlkZVNwZWVkLCBkYXRh
LnNwZWVkKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZT4gPiB3ZWJQYWdlQ29weTsKKyAg
ICBWZWN0b3I8UmVmUHRyPFdlYlBhZ2U+PiB3ZWJQYWdlQ29weTsKICAgICBjb3B5VG9WZWN0b3Io
bV9wYWdlU2V0LCB3ZWJQYWdlQ29weSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3ZWJQ
YWdlQ29weS5zaXplKCk7ICsraSkgewogICAgICAgICBXZWJQYWdlKiBwYWdlID0gd2ViUGFnZUNv
cHlbaV0uZ2V0KCk7CkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
OjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnCiAg
ICAgLy8gRklYTUU6IEFkZCBsb2NhbGl6ZWQgZXJyb3Igc3RyaW5nLgogICAgIFJlZlB0cjxHZW9s
b2NhdGlvbkVycm9yPiBlcnJvciA9IEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlv
bkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlLCBlcnJvck1lc3NhZ2UpOwogCi0gICAgVmVjdG9y
PFJlZlB0cjxXZWJQYWdlPiA+IHdlYlBhZ2VDb3B5OworICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFn
ZT4+IHdlYlBhZ2VDb3B5OwogICAgIGNvcHlUb1ZlY3RvcihtX3BhZ2VTZXQsIHdlYlBhZ2VDb3B5
KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYlBhZ2VDb3B5LnNpemUoKTsgKytpKSB7
CiAgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSB3ZWJQYWdlQ29weVtpXS5nZXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFz
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29u
RGF0YWJhc2VQcm94eS5oCmluZGV4IGY0ZGQ0YWI3MjYyNmM3MzdjYWViMjE4NDI4OWEyYTIzY2Vh
MDI4MDkuLjNhOTlhZDU3MDU5YWZmODBjZWU5NjZhYTc1NTE0MDNmMDM5ZmQ0ZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFz
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2Vi
SWNvbkRhdGFiYXNlUHJveHkuaApAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc0VuYWJsZWQ7CiAgICAgV2ViUHJvY2VzcyogbV9wcm9jZXNzOwogICAgIAotICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpJY29uTG9hZERlY2lzaW9uQ2FsbGJhY2s+ID4g
bV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxXZWJDb3JlOjpJY29uTG9hZERlY2lzaW9uQ2FsbGJhY2s+PiBtX2ljb25Mb2FkRGVjaXNpb25D
YWxsYmFja3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQ
bHVnSW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luLm1tCmluZGV4IGM3Njg3MGFiMzZmMWJlY2NlZmJhYjkzN2Qz
NTg5NDNhZGM3ZjA0ZWQuLmFkYzE1MmQyNWU2NDQ1ZThhYmQ2NDkzOGViNTI4ZmYwMmY2MGY0MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS1dlYlByb2Nlc3NQbHVnSW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5tbQpAQCAtMzksMTAg
KzM5LDEwIEBACiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCi10eXBlZGVmIEhh
c2hNYXA8V0tCdW5kbGVQYWdlUmVmLCBSZXRhaW5QdHI8V0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyICo+ID4gQnVuZGxlUGFnZVdyYXBwZXJDYWNoZTsKK3R5cGVkZWYg
SGFzaE1hcDxXS0J1bmRsZVBhZ2VSZWYsIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIgKj4+IEJ1bmRsZVBhZ2VXcmFwcGVyQ2FjaGU7CiAKIEBpbnRl
cmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAoKSB7Ci0gICAgUmV0YWluUHRyPGlk
PFdLV2ViUHJvY2Vzc1BsdWdJbj4gPiBfcHJpbmNpcGFsQ2xhc3NJbnN0YW5jZTsKKyAgICBSZXRh
aW5QdHI8aWQ8V0tXZWJQcm9jZXNzUGx1Z0luPj4gX3ByaW5jaXBhbENsYXNzSW5zdGFuY2U7CiAg
ICAgV0tSZXRhaW5QdHI8V0tCdW5kbGVSZWY+IF9idW5kbGVSZWY7CiAgICAgQnVuZGxlUGFnZVdy
YXBwZXJDYWNoZSBfYnVuZGxlUGFnZVdyYXBwZXJDYWNoZTsKICAgICBSZXRhaW5QdHI8V0tDb25u
ZWN0aW9uICo+IF9jb25uZWN0aW9uV3JhcHBlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
M2M0MDBjMWFlMzc4ZTRkMThlMTNjODk2MjQ5NThkMzU0Yzg1NTlkMC4uZDdkNDExM2VkZTdlNGM4
MmExNmQ3ODhmOGFkNzUyOTZjYjFlNGM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTQx
NSwxMiArNDE1LDEyIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlc2V0QXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nCiAKIFBhc3NSZWZQdHI8SW1t
dXRhYmxlQXJyYXk+IEluamVjdGVkQnVuZGxlOjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUo
KQogewotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiA+IG9yaWdpbnM7CisgICAg
SGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOwogICAgIGNhY2hlU3RvcmFn
ZSgpLmdldE9yaWdpbnNXaXRoQ2FjaGUob3JpZ2lucyk7Ci0gICAgVmVjdG9yPCBSZWZQdHI8QVBJ
T2JqZWN0PiA+IG9yaWdpbnNWZWN0b3I7CisgICAgVmVjdG9yPCBSZWZQdHI8QVBJT2JqZWN0Pj4g
b3JpZ2luc1ZlY3RvcjsKIAotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiA+Ojpp
dGVyYXRvciBpdCA9IG9yaWdpbnMuYmVnaW4oKTsKLSAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKKyAgICBIYXNoU2V0PFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBpdCA9IG9yaWdpbnMuYmVnaW4oKTsKKyAg
ICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBlbmQgPSBvcmlnaW5z
LmVuZCgpOwogICAgIGZvciAoIDsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBvcmlnaW5zVmVj
dG9yLmFwcGVuZChXZWJTdHJpbmc6OmNyZWF0ZSgoKml0KS0+ZGF0YWJhc2VJZGVudGlmaWVyKCkp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0uY3BwCmluZGV4IDkyYTdlNjk1ZWQyOTk3YmNhOTBjYmMxYzNiZTU5MmE2NDQ3YWRkOTUuLmI0
YzVmMGY0YzUyM2FkMjU4NmI0YmVmN2E5NDQ5NmViNzM0NjJmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9y
d2FyZExpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKQEAgLTM2LDcgKzM2
LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtOjpjaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgY29uc3QgSGlzdG9yeUl0ZW1WZWN0
b3ImIGNoaWxkcmVuID0gbV9pdGVtLT5jaGlsZHJlbigpOwogICAgIHNpemVfdCBzaXplID0gY2hp
bGRyZW4uc2l6ZSgpOwotICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHZlY3RvcihzaXpl
KTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4+IHZlY3RvcihzaXplKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgdmVjdG9yW2ldID0gSW5qZWN0
ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOjpjcmVhdGUoY2hpbGRyZW5baV0pOwogICAgIHJl
dHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQodmVjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcAppbmRleCA5MGViYjVkZDk4ZjU5ZGMzMjc0
MjgyZmQ5MjNkYTI0ZDJjM2M5NDc1Li5mYWE5YjdmYmI4MWU5MzczNDVlNzUwZTA0ZjJmMWYzOWM0
NTAzYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQ6OndpbGxXcml0ZVRvUGFzdGVib2FyZChXZWJQYWdlKiBwYWdlLCBSYW5nZSoKICAgICB9
CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50OjpnZXRQYXN0ZWJvYXJk
RGF0YUZvclJhbmdlKFdlYlBhZ2UqIHBhZ2UsIFJhbmdlKiByYW5nZSwgVmVjdG9yPFN0cmluZz4m
IHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+ID4mIHBhc3RlYm9h
cmREYXRhKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6OmdldFBhc3RlYm9h
cmREYXRhRm9yUmFuZ2UoV2ViUGFnZSogcGFnZSwgUmFuZ2UqIHJhbmdlLCBWZWN0b3I8U3RyaW5n
PiYgcGFzdGVib2FyZFR5cGVzLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiBwYXN0ZWJv
YXJkRGF0YSkKIHsKICAgICBpZiAobV9jbGllbnQuZ2V0UGFzdGVib2FyZERhdGFGb3JSYW5nZSkg
ewogICAgICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gcmFuZ2VIYW5kbGUg
PSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShyYW5nZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAppbmRleCA5NmQ4YmMyOGI2
MzAxMjg3NDRjZDBlZDhmODc3YjgzNTQ3MjU5YWMwLi4xNDAwZDVmNDdjYWYwZWI2NjFlMDU4MWY1
ZTdhNjcwODA1YmQ2MjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRWRp
dG9yQ2xpZW50LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2hhbmdl
KFdlYlBhZ2UqLCBTdHJpbmdJbXBsKiBub3RpZmljYXRpb25OYW1lKTsKICAgICB2b2lkIGRpZENo
YW5nZVNlbGVjdGlvbihXZWJQYWdlKiwgU3RyaW5nSW1wbCogbm90aWZpY2F0aW9uTmFtZSk7CiAg
ICAgdm9pZCB3aWxsV3JpdGVUb1Bhc3RlYm9hcmQoV2ViUGFnZSosIFdlYkNvcmU6OlJhbmdlKik7
Ci0gICAgdm9pZCBnZXRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYlBhZ2UqLCBXZWJDb3JlOjpS
YW5nZSosIFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiA+JiBwYXN0ZWJvYXJkRGF0YSk7CisgICAgdm9pZCBnZXRQYXN0
ZWJvYXJkRGF0YUZvclJhbmdlKFdlYlBhZ2UqLCBXZWJDb3JlOjpSYW5nZSosIFZlY3RvcjxTdHJp
bmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
Pj4mIHBhc3RlYm9hcmREYXRhKTsKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkKFdlYlBh
Z2UqKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
Y3BwCmluZGV4IGYwNzY3NWE2Mzk4MTcwMmM4NjY3NGEzZGI0ZmIwMWEwNGZlMGZmNjkuLmRlYTVl
YWI3ODEzNzYyMDFhMjUzYTRlOWQxMGY2OTQ2OGExMDkzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIElu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVs
ZChXZWJQYWdlKiBwYWdlLAogICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRQZXJmb3JtQWN0aW9u
SW5UZXh0RmllbGQodG9BUEkocGFnZSksIHRvQVBJKG5vZGVIYW5kbGUuZ2V0KCkpLCBhY3Rpb25U
eXBlLCB0b0FQSShmcmFtZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCi12b2lkIEluamVj
dGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTZW5kU3VibWl0RXZlbnQoV2ViUGFnZSogcGFn
ZSwgSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVudCwgV2ViRnJhbWUqIGZyYW1lLCBXZWJGcmFt
ZSogc291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+ID4m
IHZhbHVlcykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNlbmRTdWJt
aXRFdmVudChXZWJQYWdlKiBwYWdlLCBIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50LCBXZWJG
cmFtZSogZnJhbWUsIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4+JiB2YWx1ZXMpCiB7CiAgICAgaWYgKCFtX2NsaWVudC53aWxsU2Vu
ZFN1Ym1pdEV2ZW50KQogICAgICAgICByZXR1cm47CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU2VuZFN1Ym1pdEV2ZW50KFdlYlBhZ2Uq
IHBhZ2UsIEhUTUxGb3JtRWwKICAgICBtX2NsaWVudC53aWxsU2VuZFN1Ym1pdEV2ZW50KHRvQVBJ
KHBhZ2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShzb3Vy
Y2VGcmFtZSksIHRvQVBJKHRleHRGaWVsZHNNYXAuZ2V0KCkpLCBtX2NsaWVudC5jbGllbnRJbmZv
KTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9y
bShXZWJQYWdlKiBwYWdlLCBIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50LCBXZWJGcmFtZSog
ZnJhbWUsIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJp
bmcsIFN0cmluZz4gPiYgdmFsdWVzLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCit2b2lk
IEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqIHBh
Z2UsIEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQsIFdlYkZyYW1lKiBmcmFtZSwgV2ViRnJh
bWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4m
IHZhbHVlcywgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQogewogICAgIGlmICghbV9jbGll
bnQud2lsbFN1Ym1pdEZvcm0pCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKaW5kZXggOTViNzgyNjg1NTg0OGY0MmE3NjM1MjY5ZTc0
ZjFhMDI0YWEzNTU5Zi4uOTYwNWFjYmMyY2I4NGQ2ZWY0N2VmYjQ2YTk2MWViYThjMDI2ZDY1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKQEAgLTUzLDgg
KzUzLDggQEAgcHVibGljOgogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEZpZWxkKFdlYlBh
Z2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgV2ViRnJhbWUqKTsKICAgICB2b2lkIHRl
eHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVt
ZW50KiwgV2ViRnJhbWUqKTsKICAgICBib29sIHNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVs
ZChXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCosIFdLSW5wdXRGaWVsZEFjdGlv
blR5cGUsIFdlYkZyYW1lKik7ICAgIAotICAgIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV2ViUGFnZSos
IFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1lKiwgV2ViRnJhbWUqIHNvdXJjZUZy
YW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiwgUmVmUHRyPEFQ
SU9iamVjdD4mIHVzZXJEYXRhKTsKLSAgICB2b2lkIHdpbGxTZW5kU3VibWl0RXZlbnQoV2ViUGFn
ZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1lKiwgV2ViRnJhbWUqIHNvdXJj
ZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+Jik7CisgICAg
dm9pZCB3aWxsU3VibWl0Rm9ybShXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50Kiwg
V2ViRnJhbWUqLCBXZWJGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBTdHJpbmc+PiYsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CisgICAgdm9p
ZCB3aWxsU2VuZFN1Ym1pdEV2ZW50KFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQq
LCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4+Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAppbmRleCBlOGNm
NmFiZmI3YjAzZWNmZWFmZTZmODRjZDMxMTcxMjhiOTQ0Njc4Li4yNTlhMmU4YjQ4NTE2ZWY0ZDIz
ZmMyMWRjOTAwY2IzZmQ5OWI2NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmZlYXR1cmVzVXNlZEluUGFnZShXZWJQYWdlKiBwYWdlLCBj
b25zdCBWZWMKICAgICBpZiAoIW1fY2xpZW50LmZlYXR1cmVzVXNlZEluUGFnZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4gZmVhdHVyZVN0cmluZ09i
amVjdHNWZWN0b3I7CisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+PiBmZWF0dXJlU3RyaW5n
T2JqZWN0c1ZlY3RvcjsKIAogICAgIFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSBmZWF0dXJlcy5lbmQoKTsKICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IGZlYXR1cmVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAKaW5kZXggYTUzZjFkYmIxOTM2NjBlZmYzODkyZmFjMDM3NWMzYTZjMDllNDNi
NC4uOTlkMzRhM2MzMWJiZGU1ZTc3NDg0MzlkNTU1ZDY3YTIzNTUwZDg5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6c2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChXZWJDb3JlOjpSZXNvdXJj
ZUxvYQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6aW50ZXJuYWxseUZhaWxlZExv
YWRUaW1lckZpcmVkKCkKIHsKLSAgICBWZWN0b3I8UmVmUHRyPFJlc291cmNlTG9hZGVyPiA+IGlu
dGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnM7CisgICAgVmVjdG9yPFJlZlB0cjxSZXNvdXJj
ZUxvYWRlcj4+IGludGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnM7CiAgICAgY29weVRvVmVj
dG9yKG1faW50ZXJuYWxseUZhaWxlZFJlc291cmNlTG9hZGVycywgaW50ZXJuYWxseUZhaWxlZFJl
c291cmNlTG9hZGVycyk7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnRlcm5h
bGx5RmFpbGVkUmVzb3VyY2VMb2FkZXJzLnNpemUoKTsgKytpKQpAQCAtMjEyLDggKzIxMiw4IEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChi
b29sIGVuYWJsZWQpCiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpuZXR3b3JrUHJv
Y2Vzc0NyYXNoZWQoKQogewotICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVmUHRyPFdlYlJl
c291cmNlTG9hZGVyPiA+OjppdGVyYXRvciBlbmQgPSBtX3dlYlJlc291cmNlTG9hZGVycy5lbmQo
KTsKLSAgICBmb3IgKEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9h
ZGVyPiA+OjppdGVyYXRvciBpID0gbV93ZWJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsgaSAhPSBl
bmQ7ICsraSkKKyAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxXZWJSZXNvdXJjZUxv
YWRlcj4+OjppdGVyYXRvciBlbmQgPSBtX3dlYlJlc291cmNlTG9hZGVycy5lbmQoKTsKKyAgICBm
b3IgKEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj46Oml0
ZXJhdG9yIGkgPSBtX3dlYlJlc291cmNlTG9hZGVycy5iZWdpbigpOyBpICE9IGVuZDsgKytpKQog
ICAgICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKGktPnZhbHVlLmdldCgpLT5yZXNv
dXJjZUxvYWRlcigpKTsKIAogICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLmNsZWFyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggZjE4NzZmNjU1Y2ZmZjQ4NWM4YzYyYzQ1MWYxYzc3OTlj
Mjc4OWQwNS4uNTVmNmUzMTdkM2FkNDkyMTYwZmIzMDhhZTFhOTM4ZTQ5M2ViYzE4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtNjcsMTAgKzY3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKik7
CiAgICAgdm9pZCBpbnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyRmlyZWQoKTsKICAgICAKLSAgICBI
YXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4gPiBtX2ludGVybmFsbHlGYWls
ZWRSZXNvdXJjZUxvYWRlcnM7CisgICAgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI+PiBtX2ludGVybmFsbHlGYWlsZWRSZXNvdXJjZUxvYWRlcnM7CiAgICAgV2ViQ29yZTo6
UnVuTG9vcDo6VGltZXI8V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyPiBtX2ludGVybmFsbHlGYWls
ZWRMb2FkVGltZXI7CiAgICAgCi0gICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBSZWZQdHI8V2Vi
UmVzb3VyY2VMb2FkZXI+ID4gbV93ZWJSZXNvdXJjZUxvYWRlcnM7CisgICAgSGFzaE1hcDx1bnNp
Z25lZCBsb25nLCBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+PiBtX3dlYlJlc291cmNlTG9hZGVy
czsKICAgICAKICAgICB1bnNpZ25lZCBtX3N1c3BlbmRQZW5kaW5nUmVxdWVzdHNDb3VudDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CmluZGV4IDE1M2FiMjExODIwNzY5NTQwODQ1MjQ5MTliMzM2MDI5MmU3ZGQ5NjkuLjMxMmYwNjQ2
YzIzYjBlYWJhNTIyNTFiM2VmOWEwODY2ZTQ0NWVmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTY5LDEzICs2OSwxMyBA
QCBwcml2YXRlOgogICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQ
YWdlKik7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiA+IG1faWRU
b0NhbGxiYWNrTWFwOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+PiBtX2lkVG9DYWxsYmFja01hcDsKICNlbmRpZgog
I2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiA+IG1faWRUb1ZvaWRDYWxsYmFja01hcDsKKyAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPj4gbV9pZFRv
Vm9pZENhbGxiYWNrTWFwOwogI2VuZGlmCiAgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+LCB1aW50NjRfdD4gbV9vcmlnaW5Ub0lETWFwOwotICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gPiBtX2lkVG9PcmlnaW5NYXA7
CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4g
bV9pZFRvT3JpZ2luTWFwOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShM
RUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuaAppbmRleCBiYzllYjhjNjkzZGM2Y2E0MWVmNWE3YTFiNjg4MGE4NTJi
MGJkMjJhLi5jYjFmODdjYWY0NzEyOTE2ZTMzZGI4NTExNzI0ZTIwNzQ2MzA1ZTVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTkwLDEwICs5MCwxMCBAQCBwcml2YXRlOgog
ICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uPiwgdWludDY0
X3Q+IE5vdGlmaWNhdGlvbk1hcDsKICAgICBOb3RpZmljYXRpb25NYXAgbV9ub3RpZmljYXRpb25N
YXA7CiAgICAgCi0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6
Tm90aWZpY2F0aW9uPiA+IE5vdGlmaWNhdGlvbklETWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4+IE5vdGlmaWNhdGlvbklETWFw
OwogICAgIE5vdGlmaWNhdGlvbklETWFwIG1fbm90aWZpY2F0aW9uSURNYXA7CiAgICAgCi0gICAg
dHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Piwg
VmVjdG9yPHVpbnQ2NF90PiA+IE5vdGlmaWNhdGlvbkNvbnRleHRNYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0PiwgVmVjdG9yPHVp
bnQ2NF90Pj4gTm90aWZpY2F0aW9uQ29udGV4dE1hcDsKICAgICBOb3RpZmljYXRpb25Db250ZXh0
TWFwIG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcDsKICAgICAKICAgICBIYXNoTWFwPFN0cmluZywg
Ym9vbD4gbV9wZXJtaXNzaW9uc01hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHAK
aW5kZXggNTNhYzYyZGM5YzJjOWEyZjU5MWYwYzYzYTAyOTQ4NzhkNTAyOWFhZS4uMTY2NzExMjk0
Y2QwNzcxOWFjMzI4OTcxZjU3NGI0OGE5N2U5M2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9i
amVjdE1hcC5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIE5QUnVudGltZU9iamVjdE1hcDo6
aW52YWxpZGF0ZSgpCiAKICAgICBWZWN0b3I8TlBPYmplY3QqPiBvYmplY3RzOwogCi0gICAgZm9y
IChIYXNoTWFwPE5QT2JqZWN0KiwgSlNDOjpXZWFrPEpTTlBPYmplY3Q+ID46Oml0ZXJhdG9yIHB0
ciA9IG1fanNOUE9iamVjdHMuYmVnaW4oKSwgZW5kID0gbV9qc05QT2JqZWN0cy5lbmQoKTsgcHRy
ICE9IGVuZDsgKytwdHIpIHsKKyAgICBmb3IgKEhhc2hNYXA8TlBPYmplY3QqLCBKU0M6OldlYWs8
SlNOUE9iamVjdD4+OjppdGVyYXRvciBwdHIgPSBtX2pzTlBPYmplY3RzLmJlZ2luKCksIGVuZCA9
IG1fanNOUE9iamVjdHMuZW5kKCk7IHB0ciAhPSBlbmQ7ICsrcHRyKSB7CiAgICAgICAgIEpTTlBP
YmplY3QqIGpzTlBPYmplY3QgPSBwdHItPnZhbHVlLmdldCgpOwogICAgICAgICBpZiAoIWpzTlBP
YmplY3QpIC8vIFNraXAgem9tYmllcy4KICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9i
amVjdE1hcC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05Q
UnVudGltZU9iamVjdE1hcC5oCmluZGV4IDUzYTU5YWFhZDE5NjI1ZDljODI1NmNiMDA1YTA5M2E2
YzlkMWQ2MjIuLjg3NDQyODlmY2JhYzljZmM3NWQ1YWQ0MWE1MWRhNzcyMDhmOWVlZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRp
bWVPYmplY3RNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKICAg
ICBQbHVnaW5WaWV3KiBtX3BsdWdpblZpZXc7CiAKICAgICBIYXNoTWFwPEpTQzo6SlNPYmplY3Qq
LCBOUEpTT2JqZWN0Kj4gbV9ucEpTT2JqZWN0czsKLSAgICBIYXNoTWFwPE5QT2JqZWN0KiwgSlND
OjpXZWFrPEpTTlBPYmplY3Q+ID4gbV9qc05QT2JqZWN0czsKKyAgICBIYXNoTWFwPE5QT2JqZWN0
KiwgSlNDOjpXZWFrPEpTTlBPYmplY3Q+PiBtX2pzTlBPYmplY3RzOwogICAgIFZlY3RvcjxOUE9i
amVjdCo+IG1fbnBPYmplY3RzVG9GaW5hbGl6ZTsKICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1l
cjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbi5jcHAKaW5kZXggZmFiMzQyYjAyOThkYjc5Y2YzZTUxNTgzMmU5ZWIxOWQyOGNk
MWFhZi4uZWZjZjE5M2RjZjVlNDdjMmU0NGNlZjBmYjU0NTRjODNjMzBjMzhlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW4uY3BwCkBAIC01MzMsNyArNTMzLDcgQEAgTmV0c2NhcGVQbHVnaW5TdHJl
YW0qIE5ldHNjYXBlUGx1Z2luOjpzdHJlYW1Gcm9tSUQodWludDY0X3Qgc3RyZWFtSUQpCiAKIHZv
aWQgTmV0c2NhcGVQbHVnaW46OnN0b3BBbGxTdHJlYW1zKCkKIHsKLSAgICBWZWN0b3I8UmVmUHRy
PE5ldHNjYXBlUGx1Z2luU3RyZWFtPiA+IHN0cmVhbXM7CisgICAgVmVjdG9yPFJlZlB0cjxOZXRz
Y2FwZVBsdWdpblN0cmVhbT4+IHN0cmVhbXM7CiAgICAgY29weVZhbHVlc1RvVmVjdG9yKG1fc3Ry
ZWFtcywgc3RyZWFtcyk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0cmVhbXMuc2l6
ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDM4YWY5MzYzZmNmYTZiYmQ2ZDhl
MTNiNWZmNzJjNThmNDczNzBkOTcuLjRkMTljZjdkMWM0N2Y2ZDNhMDRhMTQ4ZmRkZDY4NTM4NWUz
MGVmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0yNjksMTAgKzI2OSwxMCBAQCBwcml2
YXRlOgogCiAgICAgdWludDY0X3QgbV9uZXh0UmVxdWVzdElEOwogCi0gICAgdHlwZWRlZiBIYXNo
TWFwPHVpbnQ2NF90LCBzdGQ6OnBhaXI8U3RyaW5nLCB2b2lkKj4gPiBQZW5kaW5nVVJMTm90aWZ5
TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjpwYWlyPFN0cmluZywgdm9p
ZCo+PiBQZW5kaW5nVVJMTm90aWZ5TWFwOwogICAgIFBlbmRpbmdVUkxOb3RpZnlNYXAgbV9wZW5k
aW5nVVJMTm90aWZpY2F0aW9uczsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiA+IFN0cmVhbXNNYXA7CisgICAgdHlwZWRlZiBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+PiBTdHJlYW1zTWFwOwog
ICAgIFN0cmVhbXNNYXAgbV9zdHJlYW1zOwogCiAgICAgUmVmUHRyPE5ldHNjYXBlUGx1Z2luTW9k
dWxlPiBtX3BsdWdpbk1vZHVsZTsKQEAgLTMyOSw3ICszMjksNyBAQCBwcml2YXRlOgogCiAgICAg
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOwogICAgIH07Ci0gICAg
dHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBPd25QdHI8VGltZXI+ID4gVGltZXJNYXA7CisgICAg
dHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBPd25QdHI8VGltZXI+PiBUaW1lck1hcDsKICAgICBU
aW1lck1hcCBtX3RpbWVyczsKICAgICB1bnNpZ25lZCBtX25leHRUaW1lcklEOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW5TdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGI5NWIyMzUxN2ZkMDk0Yzc3OWQzMDUxOTM5
NGM1YWM5NTIxOGJiNzguLmZmYTU1Y2IyNWQ4Y2Q4NzQ0NmJhODM3ZmQzOTBlODNiOGM0YTdiNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCkBAIC0xMDYsNyArMTA2LDcgQEAg
cHJpdmF0ZToKICAgICBDU3RyaW5nIG1faGVhZGVyczsKIAogICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOwotICAgIE93
blB0cjwgVmVjdG9yPHVpbnQ4X3Q+ID4gbV9kZWxpdmVyeURhdGE7CisgICAgT3duUHRyPCBWZWN0
b3I8dWludDhfdD4+IG1fZGVsaXZlcnlEYXRhOwogICAgIGJvb2wgbV9zdG9wU3RyZWFtV2hlbkRv
bmVEZWxpdmVyaW5nOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1NpbXBsZVBERlBsdWdpbi5tbQppbmRleCA2MTBjMjA5YzU5MGI4OTFm
NWFkMWFlOGU2ZWY5MjZlZjM5OGQ5ZjE0Li44ZDU2ZmQ1NDhlODk3MjIxNzUzZDQ3ZWQwNGYxMjFh
MzdiYWE0MmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1NpbXBsZVBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1NpbXBsZVBERlBsdWdpbi5tbQpAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgdm9p
ZCBnZXRBbGxWYWx1ZXNJblBERk5hbWVUcmVlKENHUERGRGljdGlvbmFyeVJlZiB0cmVlLCBWZWN0
b3I8Q0dQREZPYmplYwogICAgIGFwcGVuZFZhbHVlc0luUERGTmFtZVN1YnRyZWVUb1ZlY3Rvcih0
cmVlLCBhbGxWYWx1ZXMpOwogfQogCi1zdGF0aWMgdm9pZCBnZXRBbGxTY3JpcHRzSW5QREZEb2N1
bWVudChDR1BERkRvY3VtZW50UmVmIHBkZkRvY3VtZW50LCBWZWN0b3I8UmV0YWluUHRyPENGU3Ry
aW5nUmVmPiA+JiBzY3JpcHRzKQorc3RhdGljIHZvaWQgZ2V0QWxsU2NyaXB0c0luUERGRG9jdW1l
bnQoQ0dQREZEb2N1bWVudFJlZiBwZGZEb2N1bWVudCwgVmVjdG9yPFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4+JiBzY3JpcHRzKQogewogICAgIGlmICghcGRmRG9jdW1lbnQpCiAgICAgICAgIHJldHVy
bjsKQEAgLTM4Myw3ICszODMsNyBAQCB2b2lkIFNpbXBsZVBERlBsdWdpbjo6cGRmRG9jdW1lbnRE
aWRMb2FkKCkKICAgICAKIHZvaWQgU2ltcGxlUERGUGx1Z2luOjpydW5TY3JpcHRzSW5QREZEb2N1
bWVudCgpCiB7Ci0gICAgVmVjdG9yPFJldGFpblB0cjxDRlN0cmluZ1JlZj4gPiBzY3JpcHRzOwor
ICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiBzY3JpcHRzOwogICAgIGdldEFsbFNj
cmlwdHNJblBERkRvY3VtZW50KFttX3BkZkRvY3VtZW50LmdldCgpIGRvY3VtZW50UmVmXSwgc2Ny
aXB0cyk7CiAKICAgICBzaXplX3Qgc2NyaXB0Q291bnQgPSBzY3JpcHRzLnNpemUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAppbmRleCA0YTU0ZmVhNTIxZTM0MTY2OGE5OGE5
NDgxZDEzMzMyYjUzMjI1MDBmLi4wMmQ3MDQ5MjFiOTU0ZmNmNGEwM2YxODNkNWEzZDVlMTU1NTQ4
NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCkBAIC02NCwxMCArNjQs
MTAgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcXVldWU7CiAKLSAgICBW
ZWN0b3I8UmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPiA+IG1fcGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25zOworICAgIFZlY3RvcjxSZWZQdHI8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+PiBt
X3BsdWdpblByb2Nlc3NDb25uZWN0aW9uczsKIAogICAgIE11dGV4IG1fcGF0aHNBbmRDb25uZWN0
aW9uc011dGV4OwotICAgIEhhc2hNYXA8c3RkOjpwYWlyPFN0cmluZywgUGx1Z2luUHJvY2Vzczo6
VHlwZT4sIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiA+IG1fcGF0aHNBbmRDb25uZWN0aW9u
czsKKyAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTdHJpbmcsIFBsdWdpblByb2Nlc3M6OlR5cGU+LCBS
ZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4+IG1fcGF0aHNBbmRDb25uZWN0aW9uczsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cAppbmRleCA0Y2I2ZjY5NDgzOWJiN2E1MzlhZGVkY2Q0ZGUwNjIwMDNhMDcwZGNhLi4xNWY5MjU3
NDkwOTMwNjAxZDAyM2Y3ZTZlZjUzZTcyMDI4NTZjZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xMTY5LDcgKzExNjksNyBA
QCB2b2lkIFBsdWdpblZpZXc6OnJlbW92ZVN0cmVhbShTdHJlYW0qIHN0cmVhbSkKIAogdm9pZCBQ
bHVnaW5WaWV3OjpjYW5jZWxBbGxTdHJlYW1zKCkKIHsKLSAgICBWZWN0b3I8UmVmUHRyPFN0cmVh
bT4gPiBzdHJlYW1zOworICAgIFZlY3RvcjxSZWZQdHI8U3RyZWFtPj4gc3RyZWFtczsKICAgICBj
b3B5VmFsdWVzVG9WZWN0b3IobV9zdHJlYW1zLCBzdHJlYW1zKTsKICAgICAKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHN0cmVhbXMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCA1Njk4ZGVlNjc5YmRkZjVjMTg5
MzVkN2RmZDVhMTllNzE0MmI1MTA3Li4xMzcxNmRmMzdkZGE3NzlmYWRiMTNjYWU0MWEyNzMzOTc1
NjgzODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmgKQEAgLTIyOSwxNSArMjI5LDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmVpbmdE
ZXN0cm95ZWQ7CiAKICAgICAvLyBQZW5kaW5nIFVSTFJlcXVlc3RzIHRoYXQgdGhlIHBsdWctaW4g
aGFzIG1hZGUuCi0gICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+ID4gbV9wZW5kaW5nVVJMUmVx
dWVzdHM7CisgICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+PiBtX3BlbmRpbmdVUkxSZXF1ZXN0
czsKICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5WaWV3PiBtX3BlbmRpbmdVUkxS
ZXF1ZXN0c1RpbWVyOwogCiAgICAgLy8gUGVuZGluZyBmcmFtZSBsb2FkcyB0aGF0IHRoZSBwbHVn
LWluIGhhcyBtYWRlLgotICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2ViRnJhbWU+LCBSZWZQ
dHI8VVJMUmVxdWVzdD4gPiBGcmFtZUxvYWRNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0
cjxXZWJGcmFtZT4sIFJlZlB0cjxVUkxSZXF1ZXN0Pj4gRnJhbWVMb2FkTWFwOwogICAgIEZyYW1l
TG9hZE1hcCBtX3BlbmRpbmdGcmFtZUxvYWRzOwogCiAgICAgLy8gU3RyZWFtcyB0aGF0IHRoZSBw
bHVnLWluIGhhcyByZXF1ZXN0ZWQgdG8gbG9hZC4gCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFN0cmVhbT4gPiBtX3N0cmVhbXM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0
cmVhbT4+IG1fc3RyZWFtczsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAg
IC8vIEEgbWFwIG9mIGFsbCByZWxhdGVkIE5QT2JqZWN0cyBmb3IgdGhpcyBwbHVnLWluIHZpZXcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFy
ZWFNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVh
TWFwLmNwcAppbmRleCAyYWJmY2EyMjE4MmE1ZWEzOTgyZmVhZWM2YTA5MzczMmRkM2U3NTMyLi4z
YWNlNmZkZDQ5MDFkZTcyOWU5ZTFlMmY5NjkzZmMyMjUyMTk0N2I2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKQEAgLTI4
NSw3ICsyODUsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdl
RXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgYwogICAgIGlmICghd2ViUGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxGcmFtZT4gPiBmcmFtZXM7Cisg
ICAgVmVjdG9yPFJlZlB0cjxGcmFtZT4+IGZyYW1lczsKIAogICAgIFBhZ2UqIHBhZ2UgPSB3ZWJQ
YWdlLT5jb3JlUGFnZSgpOwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1l
KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CkBAIC0z
MTMsNyArMzEzLDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VF
dmVudCh1aW50NjRfdCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb24KIHsKICAgICBBU1NFUlQoc3Rv
cmFnZVR5cGUoKSA9PSBMb2NhbFN0b3JhZ2UpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxGcmFtZT4g
PiBmcmFtZXM7CisgICAgVmVjdG9yPFJlZlB0cjxGcmFtZT4+IGZyYW1lczsKIAogICAgIFBhZ2VH
cm91cCYgcGFnZUdyb3VwID0gKldlYlByb2Nlc3M6OnNoYXJlZCgpLndlYlBhZ2VHcm91cChtX3N0
b3JhZ2VOYW1lc3BhY2VJRCktPmNvcmVQYWdlR3JvdXAoKTsKICAgICBjb25zdCBIYXNoU2V0PFBh
Z2UqPiYgcGFnZXMgPSBwYWdlR3JvdXAucGFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCmluZGV4
IGExM2U0NjlkNTAxZTBhNDNjM2I5YmQwMjQ2NzgzM2Q1NGE1NThhYTQuLjRiNGJkMTdmNmFmMWIy
Y2VkZjUzZTdmMDIwNTRmYTQ5OTdhODFhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApAQCAtODUs
NyArODUsNyBAQCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6flN0b3JhZ2VOYW1lc3BhY2VJbXBsKCkK
IAogUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0b3JhZ2VB
cmVhKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQogewotICAgIEhh
c2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgUmVmUHRyPFN0b3JhZ2VBcmVh
TWFwPiA+OjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9zdG9yYWdlQXJlYU1hcHMuYWRkKHNlY3VyaXR5
T3JpZ2luLmdldCgpLCAwKTsKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4sIFJlZlB0cjxTdG9yYWdlQXJlYU1hcD4+OjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9zdG9y
YWdlQXJlYU1hcHMuYWRkKHNlY3VyaXR5T3JpZ2luLmdldCgpLCAwKTsKICAgICBpZiAocmVzdWx0
LmlzTmV3RW50cnkpCiAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBTdG9yYWdlQXJl
YU1hcDo6Y3JlYXRlKHRoaXMsIHNlY3VyaXR5T3JpZ2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAppbmRl
eCBkNDgyMGFhNjY5ZTNlZGE5MGI0NzY2M2YyN2QyZmI1MDZhMjVhZWNiLi5iMTRlOWRhNTlmMzhk
M2M3NjAxYzEyMDZiNDcyYTc4MTdjZDU4MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApAQCAtNjEsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fc3RvcmFnZU5hbWVzcGFjZUlEOwogICAg
IHVuc2lnbmVkIG1fcXVvdGFJbkJ5dGVzOwogCi0gICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFyZWFNYXA+ID4gbV9zdG9yYWdlQXJlYU1h
cHM7CisgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8
U3RvcmFnZUFyZWFNYXA+PiBtX3N0b3JhZ2VBcmVhTWFwczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDc1YzFhNmZkOGUzZWM4
YmJlZDAyMjQ0YTk0M2FhNTlhNTFmN2QxMjEuLjI1YTYyN2M3YzFjZDRhNjU2YWIyOGUxNTNlM2Nh
NWI4OTNmNWMzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgc3RhdGljIHZvaWQga2V5VmFsdWVTdG9yYWdlT3JpZ2luSWRlbnRpZmllcnMoVmVjdG9y
PFNlY3VyaXR5T3JpZ2luRGF0YT4mIGlkZW50aWYKIHsKICAgICBBU1NFUlQoaWRlbnRpZmllcnMu
aXNFbXB0eSgpKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+ID4gY29yZU9y
aWdpbnM7CisgICAgVmVjdG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IGNvcmVPcmlnaW5zOwog
CiAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5vcmlnaW5zKGNvcmVPcmlnaW5zKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
YXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IGNlNzFhOWFjMTRkMzY5YzUwY2RlMTM0
ZmVlMTRjMmQ1ZDg0YzgzNjEuLjQ4ZWIzYTlmNzFkYWM2NTA1NzM3NWJmMTU1MGVjOWQzYzcyMzcx
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9p
ZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0CiAgICAgLy8gdG8gZ2V0IGJvdGggdGhlIG9yaWdpbnMgYW5kIHRoZSBWZWN0
b3Igb2YgRGF0YWJhc2VEZXRhaWxzIGZvciBlYWNoIG9yaWdpbiBpbiBvbmUKICAgICAvLyBzaG90
LiAgVGhhdCB3b3VsZCBhdm9pZCB0YWtpbmcgdGhlIG51bWVyb3VzIGxvY2tzIHRoaXMgcmVxdWly
ZXMuCiAKLSAgICBWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiA+IG9yaWdpbnM7CisgICAg
VmVjdG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAgICAgRGF0YWJhc2VNYW5h
Z2VyOjptYW5hZ2VyKCkub3JpZ2lucyhvcmlnaW5zKTsKIAogICAgIFZlY3RvcjxPcmlnaW5BbmRE
YXRhYmFzZXM+IG9yaWdpbkFuZERhdGFiYXNlc1ZlY3RvcjsKQEAgLTEwMyw3ICsxMDMsNyBAQCB2
b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6Z2V0RGF0YWJhc2VzQnlPcmlnaW4odWludDY0X3QgY2Fs
bGJhY2tJRCkgY29uc3QKIAogdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmdldERhdGFiYXNlT3Jp
Z2lucyh1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdAogewotICAgIFZlY3RvcjxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+ID4gb3JpZ2luczsKKyAgICBWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4gb3JpZ2luczsKICAgICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5vcmlnaW5zKG9yaWdp
bnMpOwogCiAgICAgc2l6ZV90IG51bU9yaWdpbnMgPSBvcmlnaW5zLnNpemUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAppbmRleCA5ZjQ0ZjA5MDM0MGIwNDNkZjNiMTk2NmZhN2NkZGEzOTUxNDBi
YjQ1Li5jMTczYWJjNmZhOGJkYjJmN2Y1MmRhYjc1YzUxNjg5NGU2NmMyMGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCkBAIC0yMzMsNyArMjMzLDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OndpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChSYW5nZSogcmFuZ2UpCiAgICAgbV9wYWdl
LT5pbmplY3RlZEJ1bmRsZUVkaXRvckNsaWVudCgpLndpbGxXcml0ZVRvUGFzdGVib2FyZChtX3Bh
Z2UsIHJhbmdlKTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldENsaWVudFBhc3RlYm9h
cmREYXRhRm9yUmFuZ2UoUmFuZ2UqIHJhbmdlLCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5
cGVzLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gPiYgcGFzdGVib2FyZERhdGEpCit2b2lk
IFdlYkVkaXRvckNsaWVudDo6Z2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShSYW5nZSog
cmFuZ2UsIFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8U2hh
cmVkQnVmZmVyPj4mIHBhc3RlYm9hcmREYXRhKQogewogICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5k
bGVFZGl0b3JDbGllbnQoKS5nZXRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKG1fcGFnZSwgcmFuZ2Us
IHBhc3RlYm9hcmRUeXBlcywgcGFzdGVib2FyZERhdGEpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
aW5kZXggOWVkODE1MDgwZjA4Mzk3MmU0Mzc4NmU0OWRiZjY2ZGYyN2QyYWVhMS4uOTliZDhiZDU5
YjA1YjA1NjYzNzgwZjIxZWQ4N2RmNzhjNDc5NjcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBA
IC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEVuZEVkaXRpbmco
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJv
YXJkKFdlYkNvcmU6OlJhbmdlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFdyaXRl
U2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdldENs
aWVudFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBWZWN0b3I8U3RyaW5n
PiYgcGFzdGVib2FyZFR5cGVzLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4g
PiYgcGFzdGVib2FyZERhdGEpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRDbGllbnRQ
YXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0cmluZz4mIHBh
c3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PiYgcGFz
dGVib2FyZERhdGEpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRTZWxlY3Rpb25U
eXBlc0ZvclBhc3RlYm9hcmQoKSBPVkVSUklERTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmVn
aXN0ZXJVbmRvU3RlcChQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPikgT1ZFUlJJREU7CkBA
IC05NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVh
bCBOU1N0cmluZyAqdXNlclZpc2libGVTdHJpbmcoTlNVUkwgKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50KiBkb2N1bWVudEZyYWdtZW50RnJvbUF0dHJp
YnV0ZWRTdHJpbmcoTlNBdHRyaWJ1dGVkU3RyaW5nICosIFZlY3RvcjwgUmVmUHRyPFdlYkNvcmU6
OkFyY2hpdmVSZXNvdXJjZT4gPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RG9j
dW1lbnRGcmFnbWVudCogZG9jdW1lbnRGcmFnbWVudEZyb21BdHRyaWJ1dGVkU3RyaW5nKE5TQXR0
cmlidXRlZFN0cmluZyAqLCBWZWN0b3I8IFJlZlB0cjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+
PiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnNlcnRpb25QYXN0ZWJvYXJkKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgTlNVUkwq
IGNhbm9uaWNhbGl6ZVVSTChOU1VSTCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgTlNVUkwqIGNh
bm9uaWNhbGl6ZVVSTFN0cmluZyhOU1N0cmluZyopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAppbmRleCA2M2ZmOTBhYTdmMmY2ZjA0NTdjOWQzMzc5YzMxZGY2NGJk
OWY3ZGFlLi4xYzgzMzU3Y2RiNDI2OGQ4MDAxODNkYTU5Y2MwYmM4YmM2MTRhMTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzUxLDcgKzc1MSw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRnJhbWVQb2xpY3lGdW5j
dGlvbiBmdW5jdGlvbiwKICAgICAKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBmb3JtU3Rh
dGUtPmZvcm0oKTsKICAgICBXZWJGcmFtZSogc291cmNlRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJG
cmFtZUxvYWRlckNsaWVudCo+KGZvcm1TdGF0ZS0+c291cmNlRG9jdW1lbnQoKS0+ZnJhbWUoKS0+
bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKLSAgICBjb25zdCBWZWN0b3I8c3RkOjpw
YWlyPFN0cmluZywgU3RyaW5nPiA+JiB2YWx1ZXMgPSBmb3JtU3RhdGUtPnRleHRGaWVsZFZhbHVl
cygpOworICAgIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdmFsdWVz
ID0gZm9ybVN0YXRlLT50ZXh0RmllbGRWYWx1ZXMoKTsKIAogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLndpbGxT
dWJtaXRGb3JtKHdlYlBhZ2UsIGZvcm0sIG1fZnJhbWUsIHNvdXJjZUZyYW1lLCB2YWx1ZXMsIHVz
ZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQppbmRleCA3NDFlY2Q3
YjNlZDE2MGYxNTQ1Zjg4ZDBkYmE4YTEwNTNlMWQyYTE3Li44MjM1YmM2ZDg4MGYzNmZhMDU1NWEy
NzUzMzBkNzZlMjdlMzU1ZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1t
CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIE5TQXJyYXkgKmNyZWF0ZUV4Y2x1ZGVkRWxlbWVu
dHNGb3JBdHRyaWJ1dGVkU3RyaW5nQ29udmVyc2lvbigpCiAgICAgcmV0dXJuIGVsZW1lbnRzOwog
fQogCi1Eb2N1bWVudEZyYWdtZW50KiBXZWJFZGl0b3JDbGllbnQ6OmRvY3VtZW50RnJhZ21lbnRG
cm9tQXR0cmlidXRlZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPFJl
ZlB0cjxBcmNoaXZlUmVzb3VyY2U+ID4mIHJlc291cmNlcykKK0RvY3VtZW50RnJhZ21lbnQqIFdl
YkVkaXRvckNsaWVudDo6ZG9jdW1lbnRGcmFnbWVudEZyb21BdHRyaWJ1dGVkU3RyaW5nKE5TQXR0
cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8UmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4+JiBy
ZXNvdXJjZXMpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkgKmV4Y2x1ZGVkRWxlbWVudHMgPSBjcmVh
dGVFeGNsdWRlZEVsZW1lbnRzRm9yQXR0cmlidXRlZFN0cmluZ0NvbnZlcnNpb24oKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuaAppbmRleCAwNjlhOWEyYWNhOWVlOGZkODA2YTIwZTUzODkxMzU5NThlMmI2MTZhLi5jOTNl
MTc3MjA2YWY5NjdiNjUyYjA4YTk0NGIzYmExMzIzZTg1YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC04NCw3ICs4
NCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQogICAgIE11
dGV4IG1fc2Nyb2xsaW5nVHJlZXNNdXRleDsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZT4gPiBtX3Njcm9sbGluZ1RyZWVzOworICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlPj4gbV9zY3JvbGxpbmdUcmVl
czsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggMGE3ZWQxN2IyOWZlMDhhZjFhOGQzNDhkYzBm
NmNjY2VjNDc3NGNhZC4uMzUwZTY5OGUzYWM0MjFjYTgyMmY5ZjBlOWVhOWEwZmFjMzJmNDUxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuY3BwCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZmluZFN0
cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEZpbmRPcHRpb25zIG9wdGlvbnMKIAog
ICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+ZmluZFN0cmluZ01hdGNoaW5nUmFuZ2VzKHN0cmlu
ZywgY29yZShvcHRpb25zKSwgbWF4TWF0Y2hDb3VudCwgJm1fZmluZE1hdGNoZXMsIGluZGV4Rm9y
U2VsZWN0aW9uKTsKIAotICAgIFZlY3RvcjxWZWN0b3I8SW50UmVjdD4gPiBtYXRjaFJlY3RzOwor
ICAgIFZlY3RvcjxWZWN0b3I8SW50UmVjdD4+IG1hdGNoUmVjdHM7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2ZpbmRNYXRjaGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFZlY3RvcjxJ
bnRSZWN0PiByZWN0czsKICAgICAgICAgbV9maW5kTWF0Y2hlc1tpXS0+dGV4dFJlY3RzKHJlY3Rz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmgKaW5kZXggYmE1ZTc3MTIxZGQ2NzZkZWFkYjk5NTY0OGQwNTIxZmY2MzZjMWY4OC4uYWYw
YzBhMWM0ODUxYTRhZjM2ZjMzNTg3YmVmMjhkZmQ4MzRmZWMxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmgKQEAgLTg1LDcgKzg1
LDcgQEAgcHJpdmF0ZToKICAgICAvLyB0aGUgZmluZCBpbmRpY2F0b3IgaXNuJ3Qgc2hvd2luZywg
YnV0IGl0IHdpbGwgbmV2ZXIgYmUgZmFsc2Ugd2hlbiBpdCBpcyBzaG93aW5nLgogICAgIGJvb2wg
bV9pc1Nob3dpbmdGaW5kSW5kaWNhdG9yOwogICAgIFdlYkNvcmU6OkludFJlY3QgbV9maW5kSW5k
aWNhdG9yUmVjdDsKLSAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlJhbmdlPiA+IG1fZmluZE1h
dGNoZXM7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4+IG1fZmluZE1hdGNoZXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCmlu
ZGV4IDNhMTNkMjAzOGUxOWU2MjI1MmFiNmFiM2JmZTRhNjllM2ZjZWJhYjMuLjI3MDRjMjQ2OTVj
YjY4MTRkMzc1YzliZGY0YjgxMzk5ZDNjY2VmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNw
cApAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgTm9DdXJyZW50SXRlbUlu
ZGV4ID0gVUlOVF9NQVg7CiAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODgxOTI2OD46IFRoaXMg
bGVha3MgYWxsIEhpc3RvcnlJdGVtcyB0aGF0IGdvIGludG8gdGhlc2UgbWFwcy4KIC8vIFdlIG5l
ZWQgdG8gY2xlYXIgdXAgdGhlIGxpZmUgdGltZSBvZiB0aGVzZSBvYmplY3RzLgogCi10eXBlZGVm
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxIaXN0b3J5SXRlbT4gPiBJRFRvSGlzdG9yeUl0ZW1N
YXA7Cit0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxIaXN0b3J5SXRlbT4+IElEVG9I
aXN0b3J5SXRlbU1hcDsKIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8SGlzdG9yeUl0ZW0+LCB1aW50
NjRfdD4gSGlzdG9yeUl0ZW1Ub0lETWFwOwogCiBzdGF0aWMgSURUb0hpc3RvcnlJdGVtTWFwJiBp
ZFRvSGlzdG9yeUl0ZW1NYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAKaW5kZXggMWE0ZjA5MzQ0ZGYzMTI0NjIxODVmYjhlYmVhOTVjMWJhYzZi
OTNiNi4uZTI2MDU2ZTkyODY5Y2Q1NTlkODAzNzk1MzM1OWQ0YjI3YjY3ZjFjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC00MDYsNyAr
NDA2LDcgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gV2ViRnJhbWU6OmNoaWxkRnJhbWVz
KCkKICAgICBpZiAoIXNpemUpCiAgICAgICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6Y3JlYXRl
KCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiB2ZWN0b3I7CisgICAgVmVjdG9y
PFJlZlB0cjxBUElPYmplY3Q+PiB2ZWN0b3I7CiAgICAgdmVjdG9yLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoc2l6ZSk7CiAKICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fY29yZUZyYW1lLT50cmVl
KCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS0+bmV4dFNpYmxp
bmcoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDM0N2JiY2ZmZjBmYzJmY2NiZjUxZWM0YWE0ZWY1YzIzMGVkYjcxODcuLjhlNzA1ZGMw
YWUzNWU2NmZjMzg5ZWU2ZThhMDZlMGI4Y2RkOWU0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcxOSw3ICs3MTksNyBAQCBQYXNzUmVm
UHRyPEltbXV0YWJsZUFycmF5PiBXZWJQYWdlOjp0cmFja2VkUmVwYWludFJlY3RzKCkKICAgICBp
ZiAoIXNpemUpCiAgICAgICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6Y3JlYXRlKCk7CiAKLSAg
ICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiB2ZWN0b3I7CisgICAgVmVjdG9yPFJlZlB0cjxB
UElPYmplY3Q+PiB2ZWN0b3I7CiAgICAgdmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6
ZSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDYwNzE0NTQ5ZWM3Y2Q2MmI5
ZmEwYjBhMThmM2M5NzAzYmMwNGM0MTYuLjNmMWNmNzFiNDZhNDgyNTUxZjQ2NGE0ZjFmMWFkZWZk
YzYyYzQ0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMTY1LDcgKzE2NSw3IEBAIGNsYXNzIFdlYkdlc3R1cmVFdmVudDsKIGNsYXNzIFdlYlRv
dWNoRXZlbnQ7CiAjZW5kaWYKIAotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFBhZ2VPdmVybGF5PiA+
IFBhZ2VPdmVybGF5TGlzdDsKK3R5cGVkZWYgVmVjdG9yPFJlZlB0cjxQYWdlT3ZlcmxheT4+IFBh
Z2VPdmVybGF5TGlzdDsKIAogY2xhc3MgV2ViUGFnZSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxB
UElPYmplY3Q6OlR5cGVCdW5kbGVQYWdlPiwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VTZW5kZXI8V2ViUGFnZT4gewogcHVibGljOgpAQCAt
ODUwLDcgKzg1MCw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PFBsdWdpblZpZXcqPiBtX3Bs
dWdpblZpZXdzOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlRleHRD
aGVja2luZ1JlcXVlc3Q+ID4gbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcDsKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdD4+IG1f
cGVuZGluZ1RleHRDaGVja2luZ1JlcXVlc3RNYXA7CiAKICAgICBib29sIG1fdXNlRml4ZWRMYXlv
dXQ7CiAKQEAgLTkyNyw3ICs5MjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPFdlYlBhZ2U+IG1fc2VuZERpZFVwZGF0ZUluV2luZG93U3RhdGVUaW1lcjsKICAgICBi
b29sIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKIAotICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxXZWJVbmRvU3RlcD4gPiBtX3VuZG9TdGVwTWFwOworICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxXZWJVbmRvU3RlcD4+IG1fdW5kb1N0ZXBNYXA7CiAKICAgICBXZWJDb3JlOjpJ
bnRTaXplIG1fd2luZG93UmVzaXplclNpemU7CiAKQEAgLTk4Miw3ICs5ODIsNyBAQCBwcml2YXRl
OgogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwogCiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
IG1fcGVuZGluZ0Ryb3BTYW5kYm94RXh0ZW5zaW9uOwotICAgIFZlY3RvcjxSZWZQdHI8U2FuZGJv
eEV4dGVuc2lvbj4gPiBtX3BlbmRpbmdEcm9wRXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQ7CisgICAg
VmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPj4gbV9wZW5kaW5nRHJvcEV4dGVuc2lvbnNG
b3JGaWxlVXBsb2FkOwogCiAgICAgYm9vbCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9M
YXllclRyZWVIb3N0TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L0xheWVyVHJlZUhvc3RNYWMuaAppbmRleCA2NTdkZjMzMjA5MDZmNmNmOWQwMDIzOWVhZDNiNjI1
OGY0NGFmMTlhLi5kYjU4N2U1YjgyNDIwMjM0YmM1Njk2MmI3OGUyY2UzNDk0NmIxMTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhv
c3RNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVy
VHJlZUhvc3RNYWMuaApAQCAtOTMsNyArOTMsNyBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwogICAgIE93blB0cjxXZWJDb3JlOjpH
cmFwaGljc0xheWVyPiBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXI7Ci0gICAgdHlwZWRlZiBI
YXNoTWFwPFBhZ2VPdmVybGF5KiwgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+ID4gUGFn
ZU92ZXJsYXlMYXllck1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkqLCBPd25Q
dHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7CiAgICAgUGFn
ZU92ZXJsYXlMYXllck1hcCBtX3BhZ2VPdmVybGF5TGF5ZXJzOwogCiAgICAgT3duUHRyPExheWVy
SG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBkZDhlOTczZDBiY2YzNWUwYjZlMWI5MjAyNWYz
NjA1NmU4ZWQyYzQxLi43YzhhM2NjMzM1YWM2YjMwNDRhZmE4ZGI0YzI0YzczYzFhMjVjOWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC0xMjMsOSArMTIz
LDkgQEAgcHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2RlYnVnSW5mb0xheWVy
OwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPFBhZ2VPdmVybGF5KiwgT3duUHRyPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI+ID4gUGFnZU92ZXJsYXlMYXllck1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8
UGFnZU92ZXJsYXkqLCBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4+IFBhZ2VPdmVybGF5
TGF5ZXJNYXA7CiAgICAgUGFnZU92ZXJsYXlMYXllck1hcCBtX3BhZ2VPdmVybGF5TGF5ZXJzOwot
ICAgIG11dGFibGUgSGFzaE1hcDxjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgUmV0YWlu
UHRyPENBTGF5ZXI+ID4gbV9wYWdlT3ZlcmxheVBsYXRmb3JtTGF5ZXJzOworICAgIG11dGFibGUg
SGFzaE1hcDxjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgUmV0YWluUHRyPENBTGF5ZXI+
PiBtX3BhZ2VPdmVybGF5UGxhdGZvcm1MYXllcnM7CiAKICAgICBib29sIG1faXNQYWludGluZ1N1
c3BlbmRlZDsKICAgICBib29sIG1faGFzUm9vdENvbXBvc2l0aW5nTGF5ZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAwY2M0MTA4NjI5ZGE1YzJmMzgwYTVj
ZDMzMjYyMjg1ZmEzNjRmN2IwLi45NDM2MWY2ODU5NjhlZDc3NWQ2ZWM4YzBlYjQ4YzNhNDVlYmE5
MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5OCw4
ICs0OTgsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnZpc2l0ZWRMaW5rU3RhdGVDaGFuZ2VkKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpMaW5rSGFzaD4mIGxpbmtIYQogewogICAgIC8vIEZJWE1FOiBXZSBt
YXkgd2FudCB0byB0cmFjayB2aXNpdGVkIGxpbmtzIHBlciBXZWJQYWdlR3JvdXAgcmF0aGVyIHRo
YW4gcGVyIFdlYkNvbnRleHQuCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaW5rSGFzaGVz
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdl
R3JvdXBQcm94eT4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BhZ2VHcm91cE1hcC5iZWdpbigp
OwotICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZUdyb3VwUHJveHk+ID46
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGFnZUdyb3VwTWFwLmVuZCgpOworICAgICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZUdyb3VwUHJveHk+Pjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3BhZ2VHcm91cE1hcC5iZWdpbigpOworICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8V2ViUGFnZUdyb3VwUHJveHk+Pjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wYWdlR3Jv
dXBNYXAuZW5kKCk7CiAgICAgICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAg
ICBQYWdlOjp2aXNpdGVkU3RhdGVDaGFuZ2VkKFBhZ2VHcm91cDo6cGFnZUdyb3VwKGl0LT52YWx1
ZS0+aWRlbnRpZmllcigpKSwgbGlua0hhc2hlc1tpXSk7CiAgICAgfQpAQCAtNTEwLDggKzUxMCw4
IEBAIHZvaWQgV2ViUHJvY2Vzczo6dmlzaXRlZExpbmtTdGF0ZUNoYW5nZWQoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkxpbmtIYXNoPiYgbGlua0hhCiB2b2lkIFdlYlByb2Nlc3M6OmFsbFZpc2l0ZWRM
aW5rU3RhdGVDaGFuZ2VkKCkKIHsKICAgICAvLyBGSVhNRTogV2UgbWF5IHdhbnQgdG8gdHJhY2sg
dmlzaXRlZCBsaW5rcyBwZXIgV2ViUGFnZUdyb3VwIHJhdGhlciB0aGFuIHBlciBXZWJDb250ZXh0
LgotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlR3JvdXBQcm94eT4gPjo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBtX3BhZ2VHcm91cE1hcC5iZWdpbigpOwotICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxXZWJQYWdlR3JvdXBQcm94eT4gPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
bV9wYWdlR3JvdXBNYXAuZW5kKCk7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBh
Z2VHcm91cFByb3h5Pj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlR3JvdXBNYXAuYmVnaW4o
KTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZUdyb3VwUHJveHk+Pjo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gbV9wYWdlR3JvdXBNYXAuZW5kKCk7CiAgICAgZm9yICg7IGl0ICE9
IGVuZDsgKytpdCkKICAgICAgICAgUGFnZTo6YWxsVmlzaXRlZFN0YXRlQ2hhbmdlZChQYWdlR3Jv
dXA6OnBhZ2VHcm91cChpdC0+dmFsdWUtPmlkZW50aWZpZXIoKSkpOwogCkBAIC01NDMsOCArNTQz
LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRDYWNoZU1vZGVsKHVpbnQzMl90IGNtKQogCiBXZWJQ
YWdlKiBXZWJQcm9jZXNzOjpmb2N1c2VkV2ViUGFnZSgpIGNvbnN0CiB7ICAgIAotICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlPiA+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3Bh
Z2VNYXAuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZT4g
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BhZ2VNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBhZ2U+Pjo6Y29uc3RfaXRlcmF0
b3IgZW5kID0gbV9wYWdlTWFwLmVuZCgpOworICAgIGZvciAoSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFdlYlBhZ2U+Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BhZ2VNYXAuYmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSAoKml0KS52YWx1ZS5nZXQo
KTsKICAgICAgICAgaWYgKHBhZ2UtPndpbmRvd0FuZFdlYlBhZ2VBcmVGb2N1c2VkKCkpCiAgICAg
ICAgICAgICByZXR1cm4gcGFnZTsKQEAgLTU2MSw3ICs1NjEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OmNyZWF0ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJgogewogICAgIC8vIEl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayBmb3IgcGFnZSBleGlz
dGVuY2UgaGVyZSBzaW5jZSBkdXJpbmcgYSB3aW5kb3cub3BlbigpIChvciB0YXJnZXRlZAogICAg
IC8vIGxpbmspIHRoZSBXZWJQYWdlIGdldHMgY3JlYXRlZCBib3RoIGluIHRoZSBzeW5jaHJvbm91
cyBoYW5kbGVyIGFuZCB0aHJvdWdoIHRoZSBub3JtYWwgd2F5LiAKLSAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8V2ViUGFnZT4gPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fcGFnZU1hcC5hZGQo
cGFnZUlELCAwKTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZT4+OjpBZGRS
ZXN1bHQgcmVzdWx0ID0gbV9wYWdlTWFwLmFkZChwYWdlSUQsIDApOwogICAgIGlmIChyZXN1bHQu
aXNOZXdFbnRyeSkgewogICAgICAgICBBU1NFUlQoIXJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwog
ICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV2ViUGFnZTo6Y3JlYXRlKHBhZ2VJRCwg
cGFyYW1ldGVycyk7CkBAIC02NTAsNyArNjUwLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRDbG9z
ZShDb3JlSVBDOjpDb25uZWN0aW9uKikKICAgICBtX2luRGlkQ2xvc2UgPSB0cnVlOwogCiAgICAg
Ly8gQ2xvc2UgYWxsIHRoZSBsaXZlIHBhZ2VzLgotICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZT4g
PiBwYWdlczsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYlBhZ2U+PiBwYWdlczsKICAgICBjb3B5VmFs
dWVzVG9WZWN0b3IobV9wYWdlTWFwLCBwYWdlcyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBwYWdlcy5zaXplKCk7ICsraSkKICAgICAgICAgcGFnZXNbaV0tPmNsb3NlKCk7CkBAIC02OTUs
NyArNjk1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKQogCiBXZWJQYWdlR3JvdXBQcm94eSogV2ViUHJvY2Vzczo6d2ViUGFnZUdyb3VwKFBhZ2VH
cm91cCogcGFnZUdyb3VwKQogewotICAgIGZvciAoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdl
YlBhZ2VHcm91cFByb3h5PiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZUdyb3VwTWFwLmJl
Z2luKCksIGVuZCA9IG1fcGFnZUdyb3VwTWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAg
ICBmb3IgKEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlR3JvdXBQcm94eT4+Ojpjb25z
dF9pdGVyYXRvciBpdCA9IG1fcGFnZUdyb3VwTWFwLmJlZ2luKCksIGVuZCA9IG1fcGFnZUdyb3Vw
TWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgaWYgKGl0LT52YWx1ZS0+Y29y
ZVBhZ2VHcm91cCgpID09IHBhZ2VHcm91cCkKICAgICAgICAgICAgIHJldHVybiBpdC0+dmFsdWUu
Z2V0KCk7CiAgICAgfQpAQCAtNzEwLDcgKzcxMCw3IEBAIFdlYlBhZ2VHcm91cFByb3h5KiBXZWJQ
cm9jZXNzOjp3ZWJQYWdlR3JvdXAodWludDY0X3QgcGFnZUdyb3VwSUQpCiAKIFdlYlBhZ2VHcm91
cFByb3h5KiBXZWJQcm9jZXNzOjp3ZWJQYWdlR3JvdXAoY29uc3QgV2ViUGFnZUdyb3VwRGF0YSYg
cGFnZUdyb3VwRGF0YSkKIHsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZUdy
b3VwUHJveHk+ID46OkFkZFJlc3VsdCByZXN1bHQgPSBtX3BhZ2VHcm91cE1hcC5hZGQocGFnZUdy
b3VwRGF0YS5wYWdlR3JvdXBJRCwgMCk7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdl
YlBhZ2VHcm91cFByb3h5Pj46OkFkZFJlc3VsdCByZXN1bHQgPSBtX3BhZ2VHcm91cE1hcC5hZGQo
cGFnZUdyb3VwRGF0YS5wYWdlR3JvdXBJRCwgMCk7CiAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5
KSB7CiAgICAgICAgIEFTU0VSVCghcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CiAgICAgICAgIHJl
c3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXZWJQYWdlR3JvdXBQcm94eTo6Y3JlYXRlKHBhZ2VHcm91
cERhdGEpOwpAQCAtNzk5LDggKzc5OSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRDYXNlRm9s
ZGVkQ2hhcmFjdGVycyhTdHJpbmdIYXNoZXImIGhhc2hlciwgY29uc3QgU3RyaW5nJiBzCiAgICAg
aWYgKHN0cmluZy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoc3RyaW5nLmlz
OEJpdCgpKQotICAgICAgICByZXR1cm4gaGFzaGVyLmFkZENoYXJhY3RlcnM8TENoYXIsIENhc2VG
b2xkaW5nSGFzaDo6Zm9sZENhc2U8TENoYXI+ID4oc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmlu
Zy5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIGhhc2hlci5hZGRDaGFyYWN0ZXJzPFVDaGFyLCBDYXNl
Rm9sZGluZ0hhc2g6OmZvbGRDYXNlPFVDaGFyPiA+KHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3Ry
aW5nLmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIGhhc2hlci5hZGRDaGFyYWN0ZXJzPExDaGFy
LCBDYXNlRm9sZGluZ0hhc2g6OmZvbGRDYXNlPExDaGFyPj4oc3RyaW5nLmNoYXJhY3RlcnM4KCks
IHN0cmluZy5sZW5ndGgoKSk7CisgICAgcmV0dXJuIGhhc2hlci5hZGRDaGFyYWN0ZXJzPFVDaGFy
LCBDYXNlRm9sZGluZ0hhc2g6OmZvbGRDYXNlPFVDaGFyPj4oc3RyaW5nLmNoYXJhY3RlcnMxNigp
LCBzdHJpbmcubGVuZ3RoKCkpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaGFzaEZvclBsdWdJbk9y
aWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpAQCAtOTAxLDcgKzkwMSw3IEBAIHN0YXRpYyB2b2lk
IGZyb21Db3VudGVkU2V0VG9IYXNoTWFwKFR5cGVDb3VudFNldCogY291bnRlZFNldCwgSGFzaE1h
cDxTdHJpbmcsIHVpCiAgICAgICAgIG1hcC5zZXQoaXQtPmtleSwgaXQtPnZhbHVlKTsKIH0KIAot
c3RhdGljIHZvaWQgZ2V0V2ViQ29yZU1lbW9yeUNhY2hlU3RhdGlzdGljcyhWZWN0b3I8SGFzaE1h
cDxTdHJpbmcsIHVpbnQ2NF90PiA+JiByZXN1bHQpCitzdGF0aWMgdm9pZCBnZXRXZWJDb3JlTWVt
b3J5Q2FjaGVTdGF0aXN0aWNzKFZlY3RvcjxIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+PiYgcmVz
dWx0KQogewogICAgIFN0cmluZyBpbWFnZXNTdHJpbmcoQVNDSUlMaXRlcmFsKCJJbWFnZXMiKSk7
CiAgICAgU3RyaW5nIGNzc1N0cmluZyhBU0NJSUxpdGVyYWwoIkNTUyIpKTsKQEAgLTExMTQsOCAr
MTExNCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZShjb25zdCBUZXh0
Q2hlY2tlclN0YXRlJiB0ZXh0Q2hlY2tlclN0YXRlKQogICAgIGlmICghY29udGludW91c1NwZWxs
Q2hlY2tpbmdUdXJuZWRPZmYgJiYgIWdyYW1tYXJDaGVja2luZ1R1cm5lZE9mZikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBhZ2U+ID46Oml0ZXJh
dG9yIGVuZCA9IG1fcGFnZU1hcC5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxXZWJQYWdlPiA+OjppdGVyYXRvciBpdCA9IG1fcGFnZU1hcC5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpIHsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZT4+OjppdGVy
YXRvciBlbmQgPSBtX3BhZ2VNYXAuZW5kKCk7CisgICAgZm9yIChIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8V2ViUGFnZT4+OjppdGVyYXRvciBpdCA9IG1fcGFnZU1hcC5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpIHsKICAgICAgICAgV2ViUGFnZSogcGFnZSA9ICgqaXQpLnZhbHVlLmdldCgpOwog
ICAgICAgICBpZiAoY29udGludW91c1NwZWxsQ2hlY2tpbmdUdXJuZWRPZmYpCiAgICAgICAgICAg
ICBwYWdlLT51bm1hcmtBbGxNaXNzcGVsbGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKaW5kZXggMDQ3ZTNkOGE1YTA3YjdlNzRlMGM0YmQ5MWRmZDE1YjkxYTE0MzE2
YS4uMTUxYWY2ZmIzNzA1YmM0ODU0NWYwMGRlNzNiODcxODNlMTk0NzFlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTI2Myw4ICsyNjMsOCBAQCBwcml2YXRlOgog
CiAgICAgUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4gbV93ZWJDb25uZWN0aW9uOwog
Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBhZ2U+ID4gbV9wYWdlTWFwOwotICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlR3JvdXBQcm94eT4gPiBtX3BhZ2VHcm91
cE1hcDsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZT4+IG1fcGFnZU1hcDsK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViUGFnZUdyb3VwUHJveHk+PiBtX3BhZ2VH
cm91cE1hcDsKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGU+IG1faW5qZWN0ZWRCdW5kbGU7CiAK
ICAgICBSZWZQdHI8RXZlbnREaXNwYXRjaGVyPiBtX2V2ZW50RGlzcGF0Y2hlcjsKQEAgLTI5OCw3
ICsyOTgsNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViRnJhbWUqPiBt
X2ZyYW1lTWFwOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBPd25QdHI8V2Vi
UHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPiA+IFdlYlByb2Nlc3NTdXBw
bGVtZW50TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgT3duUHRyPFdlYlBy
b2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+IFdlYlByb2Nlc3NTdXBwbGVt
ZW50TWFwOwogICAgIFdlYlByb2Nlc3NTdXBwbGVtZW50TWFwIG1fc3VwcGxlbWVudHM7CiAKICAg
ICBUZXh0Q2hlY2tlclN0YXRlIG1fdGV4dENoZWNrZXJTdGF0ZTsK
</data>
<flag name="review"
          id="222614"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>