<?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>191298</bug_id>
          
          <creation_ts>2018-11-06 00:31:14 -0800</creation_ts>
          <short_desc>Payment process stub with feature flag</short_desc>
          <delta_ts>2020-09-28 09:50:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Zamiul Haque">zhaque</reporter>
          <assigned_to name="Zamiul Haque">zhaque</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1475435</commentid>
    <comment_count>0</comment_count>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-06 00:31:14 -0800</bug_when>
    <thetext>Payment process stub with feature flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475436</commentid>
    <comment_count>1</comment_count>
      <attachid>353947</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-06 00:34:26 -0800</bug_when>
    <thetext>Created attachment 353947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475439</commentid>
    <comment_count>2</comment_count>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-06 00:37:36 -0800</bug_when>
    <thetext>Hey guys, please ignore the obvious style errors, and changelog entries for now as those are a work in progress. I just wanted to get this patch out as soon I could get it to build on at least the iOS-simulator, so you guys could start taking a look at what was done. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475440</commentid>
    <comment_count>3</comment_count>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-06 00:38:32 -0800</bug_when>
    <thetext>Also, I&apos;ll be rebasing it ASAP, so please ignore that as well!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475446</commentid>
    <comment_count>4</comment_count>
      <attachid>353949</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-06 01:08:49 -0800</bug_when>
    <thetext>Created attachment 353949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475448</commentid>
    <comment_count>5</comment_count>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-06 01:10:02 -0800</bug_when>
    <thetext>Fixed most of the obvious style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476263</commentid>
    <comment_count>6</comment_count>
      <attachid>354162</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-07 15:10:41 -0800</bug_when>
    <thetext>Created attachment 354162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476271</commentid>
    <comment_count>7</comment_count>
      <attachid>354162</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-11-07 15:21:58 -0800</bug_when>
    <thetext>Comment on attachment 354162
Patch

It&apos;ll take me a while to get through this, but one high-level comment: I think this should be called the Payments process (com.apple.WebKit.Payments).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476277</commentid>
    <comment_count>8</comment_count>
      <attachid>354162</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-07 15:25:04 -0800</bug_when>
    <thetext>Comment on attachment 354162
Patch

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

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:176
&gt; +void PaymentProcess::fetchWebsiteData(PAL::SessionID sessionID, OptionSet&lt;WebsiteDataType&gt; websiteDataTypes, uint64_t callbackID)

Why does the PaymentProcess have these (fetchWebsiteData/deleteWebsiteData/etc.)?

&gt; Source/WebKit/UIProcess/API/C/WKContext.h:53
&gt; +typedef WKContextChildProcessDidCrashCallback WKContextDatabaseProcessDidCrashCallback;

Database process??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476286</commentid>
    <comment_count>9</comment_count>
      <attachid>354162</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-11-07 15:36:05 -0800</bug_when>
    <thetext>Comment on attachment 354162
Patch

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

&gt; Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig:77
&gt; +ENABLE_PAYMENT_PROCESS = ;

The ENABLE_ flags should be kept in sorted order.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.messages.in:36
&gt; +    # Initializes a WebsiteDataStore/Session in the PaymentProcess with the correct parameters
&gt; +    InitializeWebsiteDataStore(struct WebKit::PaymentProcessCreationParameters processCreationParameters)
&gt; +
&gt; +    # Creates a connection for communication with a WebProcess
&gt; +    CreatePaymentToWebProcessConnection(bool isServiceWorkerProcess, struct WebCore::SecurityOriginData origin)
&gt; +
&gt; +    FetchWebsiteData(PAL::SessionID sessionID, OptionSet&lt;WebKit::WebsiteDataType&gt; websiteDataTypes, uint64_t callbackID)
&gt; +    DeleteWebsiteData(PAL::SessionID sessionID, OptionSet&lt;WebKit::WebsiteDataType&gt; websiteDataTypes, WallTime modifiedSince, uint64_t callbackID)
&gt; +    DeleteWebsiteDataForOrigins(PAL::SessionID sessionID, OptionSet&lt;WebKit::WebsiteDataType&gt; websiteDataTypes, Vector&lt;WebCore::SecurityOriginData&gt; origins, uint64_t callbackID)
&gt; +
&gt; +    DestroySession(PAL::SessionID sessionID)

These are all storage process messages. Let&apos;s start out with an empty message list then add things as we go.

&gt; Source/WebKit/Sources.txt:227
&gt; +PaymentProcess/PaymentProcess.cpp @no-unify
&gt; +PaymentProcess/PaymentToWebProcessConnection.cpp @no-unify

Would be nice to know why these can&apos;t be unified.

&gt; Source/WebKit/SourcesCocoa.txt:198
&gt; +PaymentProcess/ios/PaymentProcessIOS.mm @no-unify

Ditto.

&gt; Source/WebKit/UIProcess/Payment/PaymentProcessProxy.cpp:2
&gt; + * Copyright (C) 2013-2018 Apple Inc. All rights reserved.

More storage process code in this file that can be removed.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:962
&gt; +TEST(ServiceWorkers, PaymentProcessConnectionCreation)

It&apos;s awesome to have a test already, but it doesn&apos;t belong in this file.

&gt; Tools/WebKitTestRunner/TestController.cpp:1066
&gt; +const char* TestController::databaseProcessName()

This shouldn&apos;t be called databaseProcessName.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476363</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-11-07 17:39:53 -0800</bug_when>
    <thetext>(In reply to Andy Estes from comment #7)
&gt; Comment on attachment 354162 [details]
&gt; Patch
&gt; 
&gt; It&apos;ll take me a while to get through this, but one high-level comment: I
&gt; think this should be called the Payments process (com.apple.WebKit.Payments).

Slight modification to this plan. Let&apos;s call the process name com.apple.WebKit.Payments, but when naming C++ classes and whatnot let&apos;s use PaymentProcess (and PaymentProcessProxy, etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476368</commentid>
    <comment_count>11</comment_count>
      <attachid>354191</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-07 17:57:32 -0800</bug_when>
    <thetext>Created attachment 354191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476384</commentid>
    <comment_count>12</comment_count>
      <attachid>354197</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-07 19:06:35 -0800</bug_when>
    <thetext>Created attachment 354197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476390</commentid>
    <comment_count>13</comment_count>
      <attachid>354198</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-07 19:16:12 -0800</bug_when>
    <thetext>Created attachment 354198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476476</commentid>
    <comment_count>14</comment_count>
      <attachid>354226</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-08 02:15:14 -0800</bug_when>
    <thetext>Created attachment 354226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476477</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-08 02:18:26 -0800</bug_when>
    <thetext>Attachment 354226 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 66 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>1476484</commentid>
    <comment_count>16</comment_count>
      <attachid>354230</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-08 02:45:51 -0800</bug_when>
    <thetext>Created attachment 354230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476485</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-08 02:48:17 -0800</bug_when>
    <thetext>Attachment 354230 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 67 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>1476691</commentid>
    <comment_count>18</comment_count>
      <attachid>354283</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-08 15:32:28 -0800</bug_when>
    <thetext>Created attachment 354283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477171</commentid>
    <comment_count>19</comment_count>
      <attachid>354407</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-09 16:20:54 -0800</bug_when>
    <thetext>Created attachment 354407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477695</commentid>
    <comment_count>20</comment_count>
      <attachid>354407</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-11-12 13:24:23 -0800</bug_when>
    <thetext>Comment on attachment 354407
Patch

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

&gt; Source/WebKit/ChangeLog:106
&gt; +        * WebProcess/Storage/WebSWClientConnection.h:
&gt; +        * WebProcess/Storage/WebToPaymentProcessConnection.cpp: Added.

These don&apos;t belong in WebProcess/Storage.

&gt; Source/WebKit/ChangeLog:113
&gt; +        * WebProcess/Storage/WebToPaymentProcessConnection.h: Added.

Ditto.

&gt; Source/WebCore/en.lproj/Localizable.strings:47
&gt; +/* visible name of the payment process. The argument is the application name. */
&gt; +&quot;%@ Payment&quot; = &quot;%@ Payment&quot;;

s/Payment/Payments

&gt; Source/WebKit/CMakeLists.txt:36
&gt; +    &quot;${WEBKIT_DIR}/Shared/Payment&quot;
&gt;      &quot;${WEBKIT_DIR}/Shared/WebsiteData&quot;
&gt; +    &quot;${WEBKIT_DIR}/PaymentProcess&quot;

These should be in sorted order.

&gt; Source/WebKit/CMakeLists.txt:52
&gt; +    &quot;${WEBKIT_DIR}/UIProcess/Payment&quot;

Ditto.

&gt; Source/WebKit/Configurations/Payment-OSX-sandbox.entitlements:5
&gt; +	&lt;key&gt;com.apple.rootless.payment.WebKitPaymentSandbox&lt;/key&gt;

Not sure what this file does. Maybe we should talk to rniwa about this?

&gt; Source/WebKit/DerivedSources.make:40
&gt; +    $(WebKit2)/PaymentProcess \

Needs to be sorted.

&gt; Source/WebKit/DerivedSources.make:138
&gt; +    PaymentProcess \
&gt; +    PaymentProcessProxy \
&gt; +    PaymentToWebProcessConnection \

Ditto.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:46
&gt; +#include &quot;ChildProcessMessages.h&quot;
&gt; +#include &quot;Logging.h&quot;
&gt; +#include &quot;PaymentProcessCreationParameters.h&quot;
&gt; +#include &quot;PaymentProcessMessages.h&quot;
&gt; +#include &quot;PaymentProcessProxyMessages.h&quot;
&gt; +#include &quot;PaymentToWebProcessConnection.h&quot;
&gt; +#include &quot;WebCoreArgumentCoders.h&quot;
&gt; +#include &quot;WebsiteData.h&quot;
&gt; +#include &lt;WebCore/FileSystem.h&gt;
&gt; +#include &lt;WebCore/NotImplemented.h&gt;
&gt; +#include &lt;WebCore/TextEncoding.h&gt;
&gt; +#include &lt;pal/SessionID.h&gt;
&gt; +#include &lt;wtf/CallbackAggregator.h&gt;
&gt; +#include &lt;wtf/CrossThreadTask.h&gt;
&gt; +#include &lt;wtf/MainThread.h&gt;
&gt; +#include &lt;wtf/MemoryPressureHandler.h&gt;

After doing the other cleanups, I&apos;d remove these includes by one and only keep the ones that are necessary to build.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:59
&gt; +    : m_queue(WorkQueue::create(&quot;com.apple.WebKit.Payments&quot;))

I don&apos;t think we need a WorkQueue yet.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:63
&gt; +    // Make sure the UTF8Encoding encoding and the text encoding maps have been built on the main thread before a background thread needs it.
&gt; +    // FIXME: https://bugs.webkit.org/show_bug.cgi?id=135365 - Need a more explicit way of doing this besides accessing the UTF8Encoding.
&gt; +    UTF8Encoding();

Not sure we need this either so long as we don&apos;t have background threads.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:129
&gt; +void PaymentProcess::ensurePathExists(const String&amp; path)
&gt; +{
&gt; +    ASSERT(!RunLoop::isMain());
&gt; +
&gt; +    if (!FileSystem::makeAllDirectories(path))
&gt; +        LOG_ERROR(&quot;Failed to make all directories for path &apos;%s&apos;&quot;, path.utf8().data());
&gt; +}
&gt; +
&gt; +void PaymentProcess::postPaymentTask(CrossThreadTask&amp;&amp; task)
&gt; +{
&gt; +    ASSERT(RunLoop::isMain());
&gt; +
&gt; +    LockHolder locker(m_paymentTaskMutex);
&gt; +
&gt; +    m_paymentTasks.append(WTFMove(task));
&gt; +
&gt; +    m_queue-&gt;dispatch([this] {
&gt; +        performNextPaymentTask();
&gt; +    });
&gt; +}
&gt; +
&gt; +void PaymentProcess::performNextPaymentTask()
&gt; +{
&gt; +    ASSERT(!RunLoop::isMain());
&gt; +
&gt; +    CrossThreadTask task;
&gt; +    {
&gt; +        LockHolder locker(m_paymentTaskMutex);
&gt; +        ASSERT(!m_paymentTasks.isEmpty());
&gt; +        task = m_paymentTasks.takeFirst();
&gt; +    }
&gt; +
&gt; +    task.performTask();
&gt; +}

Don&apos;t think we need any of this.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:137
&gt; +#if USE(UNIX_DOMAIN_SOCKETS)
&gt; +    IPC::Connection::SocketPair socketPair = IPC::Connection::createPlatformConnection();
&gt; +    m_paymentToWebProcessConnections.append(PaymentToWebProcessConnection::create(socketPair.server));
&gt; +    parentProcessConnection()-&gt;send(Messages::PaymentProcessProxy::DidCreatePaymentToWebProcessConnection(IPC::Attachment(socketPair.client)), 0);
&gt; +#elif OS(DARWIN)

This feature is Cocoa-only for now, so we don&apos;t need the USE(UNIX_DOMAIN_SOCKETS) part of this.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:191
&gt; +#if !PLATFORM(COCOA)
&gt; +void PaymentProcess::initializeProcess(const ChildProcessInitializationParameters&amp;)
&gt; +    {
&gt; +#if OS(LINUX)
&gt; +        auto&amp; memoryPressureHandler = MemoryPressureHandler::singleton();
&gt; +        memoryPressureHandler.setLowMemoryHandler([this] (Critical, Synchronous) {
&gt; +            // FIXME: no lowMemoryHandler() implemented for PaymentProcess currently.
&gt; +            // But at least define this setLowMemoryHandler() empty so platformReleaseMemory is called.
&gt; +        });
&gt; +        memoryPressureHandler.install();
&gt; +#endif
&gt; +    }
&gt; +void PaymentProcess::destroySession(PAL::SessionID sessionID)
&gt; +{
&gt; +}
&gt; +
&gt; +void PaymentProcess::initializeProcessName(const ChildProcessInitializationParameters&amp;)
&gt; +{
&gt; +}
&gt; +
&gt; +void PaymentProcess::initializeSandbox(const ChildProcessInitializationParameters&amp;, SandboxInitializationParameters&amp;)
&gt; +{
&gt; +}
&gt; +#endif // !PLATFORM(COCOA)

Surely don&apos;t need any of this right now, because PaymentProcess will start out Cocoa-only.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.h:25
&gt; + */
&gt; +#if ENABLE(PAYMENT_PROCESS)

Missing a blank line before the #if.

The pragma should also be above the #if.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.h:49
&gt; +    void postPaymentTask(CrossThreadTask&amp;&amp;);

Don&apos;t think you&apos;ll need this.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.h:67
&gt; +    void initializeWebsiteDataStore(const PaymentProcessCreationParameters&amp;);

Ditto.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.h:81
&gt; +    void destroySession(PAL::SessionID);
&gt; +    
&gt; +    // For execution on work queue thread only
&gt; +    void performNextPaymentTask();
&gt; +    void ensurePathExists(const String&amp;);
&gt; +
&gt; +    Vector&lt;Ref&lt;PaymentToWebProcessConnection&gt;&gt; m_paymentToWebProcessConnections;
&gt; +
&gt; +    Ref&lt;WorkQueue&gt; m_queue;
&gt; +
&gt; +    Deque&lt;CrossThreadTask&gt; m_paymentTasks;
&gt; +    Lock m_paymentTaskMutex;

Ditto.

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.cpp:53
&gt; +    // Use this flag to force synchronous messages to be treated as asynchronous messages in the WebProcess.
&gt; +    // Otherwise, the WebProcess would process incoming synchronous IPC while waiting for a synchronous IPC
&gt; +    // reply from the payment process, which would be unsafe.
&gt; +    m_connection-&gt;setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(true);
&gt; +    m_connection-&gt;open();

Maybe we need this, but I don&apos;t know right now. I&apos;d replace this with a FIXME saying to investigate whether we need to call setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(true).

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.cpp:83
&gt; +

Surprised this didn&apos;t need UNUSED_PARAMSs.

&gt; Source/WebKit/PaymentProcess/ios/PaymentProcessIOS.mm:29
&gt; +#if PLATFORM(IOS_FAMILY)

I think this should just be PLATFORM(IOS) for now.

&gt; Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Payments.sb:47
&gt; +(version 1)
&gt; +(deny default (with partial-symbolication))
&gt; +(allow system-audit file-read-metadata)
&gt; +
&gt; +(import &quot;common.sb&quot;)
&gt; +
&gt; +(deny mach-lookup (xpc-service-name-prefix &quot;&quot;))
&gt; +
&gt; +(deny lsopen)
&gt; +
&gt; +(allow file-read* file-write* (extension &quot;com.apple.app-sandbox.read-write&quot;))
&gt; +
&gt; +(deny sysctl*)
&gt; +(allow sysctl-read
&gt; +    (sysctl-name
&gt; +        &quot;hw.availcpu&quot;
&gt; +        &quot;hw.ncpu&quot;
&gt; +        &quot;hw.model&quot;
&gt; +        &quot;kern.memorystatus_level&quot;
&gt; +        &quot;vm.footprint_suspend&quot;))
&gt; +
&gt; +;; Various services required by system frameworks
&gt; +(allow mach-lookup
&gt; +   (global-name &quot;com.apple.analyticsd&quot;))

I don&apos;t know if this is right. I think we should start with the most restrictive seatbelt profile possible then expand it from there. Maybe for now this should just do the &quot;(import &quot;common.sb)&quot;? Maybe Brent Fulgham can help us with this part.

&gt; Source/WebKit/Sources.txt:223
&gt; +Shared/Payment/PaymentProcessCreationParameters.cpp
&gt; +

Sorted order please.

&gt; Source/WebKit/Sources.txt:227
&gt; +PaymentProcess/PaymentProcess.cpp @no-unify
&gt; +PaymentProcess/PaymentToWebProcessConnection.cpp @no-unify

Ditto.

Also, why @no-unify?

&gt; Source/WebKit/Sources.txt:390
&gt; +UIProcess/Payment/PaymentProcessProxy.cpp
&gt; +

Ditto.

&gt; Source/WebKit/SourcesCocoa.txt:199
&gt; +
&gt; +PaymentProcess/ios/PaymentProcessIOS.mm @no-unify
&gt; +

Ditto.

&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:65
&gt; +    default: return nil;

We don&apos;t like adding defaults since they silence compiler warnings about missing enumeration values.

Also, shouldn&apos;t you actually handle ProcessType::Payment here?

&gt; Source/WebKit/UIProcess/Payment/PaymentProcessProxy.cpp:138
&gt; +#if USE(UNIX_DOMAIN_SOCKETS)
&gt; +    reply(connectionIdentifier);
&gt; +#elif OS(DARWIN)
&gt; +    reply(IPC::Attachment(connectionIdentifier.port(), MACH_MSG_TYPE_MOVE_SEND));
&gt; +#elif OS(WINDOWS)
&gt; +    reply(connectionIdentifier.handle());
&gt; +#else

No need for Unix or Windows code here.

&gt; Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:93
&gt; +    void schedulePaymentJob(const WebCore::ServiceWorkerJobData&amp;);

This doesn&apos;t belong here.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:1247
&gt; +#if PLATFORM(GTK) || PLATFORM(WPE)
&gt; +            // GTK+ and WPE ports don&apos;t exit on send sync message failure.
&gt; +            // In this particular case, the payment process can be terminated by the UI process while the
&gt; +            // connection is being done, so we always want to exit instead of crashing.
&gt; +            // See https://bugs.webkit.org/show_bug.cgi?id=183348.
&gt; +            exit(0);
&gt; +#else

No need for this.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:1258
&gt; +#if USE(UNIX_DOMAIN_SOCKETS)
&gt; +        IPC::Connection::Identifier connectionIdentifier = encodedConnectionIdentifier.releaseFileDescriptor();
&gt; +#elif OS(DARWIN)
&gt; +        IPC::Connection::Identifier connectionIdentifier(encodedConnectionIdentifier.port());
&gt; +#elif OS(WINDOWS)
&gt; +        IPC::Connection::Identifier connectionIdentifier(encodedConnectionIdentifier.handle());
&gt; +#else

No need for Unix and Windows code here.

&gt; Tools/WebKitTestRunner/TestController.cpp:1069
&gt; +#if PLATFORM(IOS_FAMILY)

PLATFORM(IOS)

&gt; Tools/WebKitTestRunner/TestController.cpp:1070
&gt; +    return &quot;com.apple.WebKit.Payment&quot;;

com.apple.WebKit.Payments.

&gt; LayoutTests/http/wpt/service-workers/persistent-importScripts.html:42
&gt; -        if (window.testRunner)
&gt; +        if (window.testRunner) {
&gt;              testRunner.terminateNetworkProcess();
&gt; +            testRunner.terminatePaymentProcess();
&gt; +        }

Don&apos;t think you need to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478483</commentid>
    <comment_count>21</comment_count>
      <attachid>354407</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-14 09:42:54 -0800</bug_when>
    <thetext>Comment on attachment 354407
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=191298

Please always provide a radar for your work.

&gt;&gt; Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Payments.sb:47
&gt;&gt; +   (global-name &quot;com.apple.analyticsd&quot;))
&gt; 
&gt; I don&apos;t know if this is right. I think we should start with the most restrictive seatbelt profile possible then expand it from there. Maybe for now this should just do the &quot;(import &quot;common.sb)&quot;? Maybe Brent Fulgham can help us with this part.

Yes. I&apos;d get rid of everything below &quot;(deny lsopen)&quot; and then see what sandbox error messages you get as you run your tests. We can open the sandbox to support those needed system calls, rather than start with some boilerplate version that might include things you don&apos;t need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478651</commentid>
    <comment_count>22</comment_count>
      <attachid>354858</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-14 15:07:40 -0800</bug_when>
    <thetext>Created attachment 354858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478733</commentid>
    <comment_count>23</comment_count>
      <attachid>354883</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-14 18:22:25 -0800</bug_when>
    <thetext>Created attachment 354883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478744</commentid>
    <comment_count>24</comment_count>
      <attachid>354885</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-14 19:10:36 -0800</bug_when>
    <thetext>Created attachment 354885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478796</commentid>
    <comment_count>25</comment_count>
      <attachid>354900</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-15 00:46:40 -0800</bug_when>
    <thetext>Created attachment 354900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479011</commentid>
    <comment_count>26</comment_count>
      <attachid>354966</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-15 12:05:58 -0800</bug_when>
    <thetext>Created attachment 354966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479084</commentid>
    <comment_count>27</comment_count>
      <attachid>354983</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-15 13:51:26 -0800</bug_when>
    <thetext>Created attachment 354983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479511</commentid>
    <comment_count>28</comment_count>
      <attachid>354983</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-16 11:17:20 -0800</bug_when>
    <thetext>Comment on attachment 354983
Patch

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

Cool!

&gt; Source/WebKit/Configurations/PaymentService.xcconfig:27
&gt; +WK_PAYMENT_ENTITLEMENTS_RESTRICTED_YES = Configurations/Payment-OSX-sandbox.entitlements;

This should probably be removed.  It refers to a file that doesn&apos;t exist.  When we need to give the process entitlements, we can add such a thing.

&gt; Source/WebKit/PaymentProcess/PaymentProcess.messages.in:25
&gt; +messages -&gt; PaymentProcess LegacyReceiver {

Please don&apos;t add any new LegacyReceivers.

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.cpp:52
&gt; +    // to force synchronous messages to be treated as asynchronous messages in the WebProcess.

This isn&apos;t exactly true.  It forces synchronous messages to not cause deadlock, but they&apos;re still synchronous.

&gt; Source/WebKit/UIProcess/API/C/WKContextPrivate.h:95
&gt; +// NOTE: This is only available when PAYMENT_PROCESS is ENABLED

This should be removed.  Just make the SPI not do anything when the feature is disabled.

&gt; Source/WebKit/UIProcess/Payments/PaymentProcessProxy.cpp:42
&gt; +static uint64_t generatePaymentProcessCallbackID()

This should not be necessary.  Use sendWithAsyncReply instead.  In this patch it can just be removed because it isn&apos;t used.

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:630
&gt; +void WebProcessPool::paymentProcessCrashed(PaymentProcessProxy* paymentProcessProxy)

This should be a PaymentProcessProxy&amp;

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:724
&gt; +        sendToPaymentProcess(Messages::PaymentProcess::DestroySession(PAL::SessionID::legacyPrivateSessionID()));

Can we get away with not supporting the legacy private session id in the payment process, or is it really needed for testing?  Let&apos;s not add it if we can.  We&apos;re trying to remove uses of legacyProvateSessionID.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:143
&gt; +            processPool-&gt;sendToPaymentProcess(Messages::PaymentProcess::DestroySession(m_sessionID));

This should probably be wrapped in a function like the network process has.  Having the same abstraction seems like a good idea in this case.

&gt; Tools/WebKitTestRunner/TestController.cpp:1082
&gt; +    return &quot;Payment process not available on anything but iOS&quot;;

Why not?  It seems like we would want to implement this on Mac, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479519</commentid>
    <comment_count>29</comment_count>
      <attachid>354983</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-16 11:28:23 -0800</bug_when>
    <thetext>Comment on attachment 354983
Patch

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

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:82
&gt; +#endif // !PAYMENT(PAYMENT_PROCESS)

// ENABLE(PAYMENT_PROCESS)

&gt; Source/WebKit/PaymentProcess/PaymentProcess.h:69
&gt; +#endif // !PAYMENT(PAYMENT_PROCESS)

// ENABLE(PAYMENT_PROCESS)

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.cpp:92
&gt; +#endif // !PAYMENT(PAYMENT_PROCESS)

// ENABLE(PAYMENT_PROCESS)

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.h:64
&gt; +#endif // !PAYMENT(PAYMENT_PROCESS)

// ENABLE(PAYMENT_PROCESS)

&gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:88
&gt; +- (void)_terminatePaymentProcess;

This one needs availability macros (look for WK_IOS_TBA and WK_MAC_TBA)

&gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:96
&gt; +- (pid_t)_paymentProcessIdentifier WK_API_AVAILABLE(ios(11.3));

This should use TBA availability macros.

&gt; Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:93
&gt; +    void schedulePaymentJob(const WebCore::ServiceWorkerJobData&amp;);

Are we sure we need this? Looks like this is not implemented anywhere.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:1050
&gt; +    // Make sure payment process is not launched.
&gt; +    EXPECT_EQ(0, webView.get().configuration.processPool._paymentProcessIdentifier);

It&apos;s unclear to me how the payment process would be relevant to this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479525</commentid>
    <comment_count>30</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-11-16 11:31:49 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #28)
&gt; Comment on attachment 354983 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=354983&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/TestController.cpp:1082
&gt; &gt; +    return &quot;Payment process not available on anything but iOS&quot;;
&gt; 
&gt; Why not?  It seems like we would want to implement this on Mac, too.

Maybe we will implement this on Mac one day, but right now we don&apos;t have the PassKit support do this anywhere other than on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479730</commentid>
    <comment_count>31</comment_count>
      <attachid>355158</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-16 16:24:47 -0800</bug_when>
    <thetext>Created attachment 355158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481383</commentid>
    <comment_count>32</comment_count>
      <attachid>355593</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-25 08:04:08 -0800</bug_when>
    <thetext>Created attachment 355593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481385</commentid>
    <comment_count>33</comment_count>
      <attachid>355595</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-25 08:19:14 -0800</bug_when>
    <thetext>Created attachment 355595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481399</commentid>
    <comment_count>34</comment_count>
      <attachid>355601</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-25 12:32:26 -0800</bug_when>
    <thetext>Created attachment 355601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481443</commentid>
    <comment_count>35</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-11-25 19:25:36 -0800</bug_when>
    <thetext>What is the goal of this new process? Why is it needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481532</commentid>
    <comment_count>36</comment_count>
      <attachid>355601</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-26 09:06:28 -0800</bug_when>
    <thetext>Comment on attachment 355601
Patch

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

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.cpp:52
&gt; +    // FIXME:
&gt; +    // Use m_connection-&gt;setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(true)
&gt; +    // to prevent deadlock while using synchronous messages

I hope we won&apos;t need this.

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.messages.in:24
&gt; +messages -&gt; PaymentToWebProcessConnection LegacyReceiver {

Please remove LegacyReceiver.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:459
&gt; +    return (pid_t)0;

You shouldn&apos;t need the cast.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:87
&gt; +// NOTE: This is only available when PAYMENT_PROCESS is ENABLED

This comment isn&apos;t necessary.

&gt; Source/WebKit/UIProcess/Payments/PaymentProcessProxy.cpp:103
&gt; +    m_processPool.paymentProcessCrashed(this);

Pass *this so the callee knows it can&apos;t be null.  Also, the header and implementation don&apos;t line up right now.

&gt; Source/WebKit/UIProcess/Payments/PaymentProcessProxy.messages.in:24
&gt; +messages -&gt; PaymentProcessProxy LegacyReceiver {

Please no LegacyReceiver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481538</commentid>
    <comment_count>37</comment_count>
      <attachid>355601</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-26 09:16:09 -0800</bug_when>
    <thetext>Comment on attachment 355601
Patch

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

&gt;&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.cpp:52
&gt;&gt; +    // to prevent deadlock while using synchronous messages
&gt; 
&gt; I hope we won&apos;t need this.

Actually, this NEEDS to be set to true right now. This is not about preventing deadlocks. Unless you set this to true, the WebContent process may re-enter when sending a sync IPC, which is a huge source of security bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481684</commentid>
    <comment_count>38</comment_count>
      <attachid>355675</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-26 14:15:22 -0800</bug_when>
    <thetext>Created attachment 355675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481702</commentid>
    <comment_count>39</comment_count>
      <attachid>355679</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-26 14:57:03 -0800</bug_when>
    <thetext>Created attachment 355679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481761</commentid>
    <comment_count>40</comment_count>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-26 16:40:13 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #35)
&gt; What is the goal of this new process? Why is it needed?

We were planning on experimenting with PKPaymentAuthorizationController on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481977</commentid>
    <comment_count>41</comment_count>
      <attachid>355679</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-11-27 11:10:20 -0800</bug_when>
    <thetext>Comment on attachment 355679
Patch

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

&gt; Source/WebKit/Configurations/PaymentService.xcconfig:33
&gt; +INFOPLIST_FILE = ;

We will need an Info.plist file for this service as well as an entry point file. For instance, look at how INFOPLIST_FILE is set in NetworkService.xcconfig, then look at Source/WebKit/NetworkProcess/EntryPoint/.

&gt; Source/WebKit/DerivedSources.make:126
&gt; +    NetworkContentRuleListManager \

NetworkContentRuleListManager?

&gt; Source/WebKit/PaymentProcess/PaymentProcess.cpp:29
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;PaymentProcess.h&quot;

These two lines should go above the ENABLE(PAYMENT_PROCESS) line.

&gt; Source/WebKit/PaymentProcess/PaymentToWebProcessConnection.cpp:29
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;PaymentToWebProcessConnection.h&quot;

Ditto.

&gt; Source/WebKit/PaymentProcess/ios/PaymentProcessIOS.mm:27
&gt; +#import &quot;config.h&quot;

Ditto.

&gt; Source/WebKit/UIProcess/WebProcessPool.h:180
&gt; +    // Sends the message to WebProcess or PaymentProcess as approporiate for current process model.

This comment isn&apos;t right. These will always send to the PaymentProcess.

&gt; Source/WebKit/WebProcess/WebPage/WebPageInspectorTargetController.cpp:66
&gt; -    InspectorTarget* target = m_targets.get(targetId);
&gt; +    auto* target = m_targets.get(targetId);

This change doesn&apos;t seem related.

&gt; Source/WebKit/WebProcess/WebPage/WebPageInspectorTargetController.cpp:81
&gt; -    InspectorTarget* target = m_targets.get(targetId);
&gt; +    auto* target = m_targets.get(targetId);

Ditto.

&gt; Source/WebKit/WebProcess/WebPage/WebPageInspectorTargetController.cpp:94
&gt; -    InspectorTarget* target = m_targets.get(targetId);
&gt; +    auto* target = m_targets.get(targetId);

Ditto.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:48
&gt; +#if ENABLE(PAYMENT_PROCESS)
&gt; +#include &quot;PaymentProcessMessages.h&quot;
&gt; +#endif // ENABLE(PAYMENT_PROCESS)

Please group the ENABLE(PAYMENT_PROCESS) includes together rather than scattering them into the unconditional includes (see below for other examples).

&gt; Source/WebKit/WebProcess/WebProcess.cpp:77
&gt; +#if ENABLE(PAYMENT_PROCESS)
&gt; +#include &quot;WebToPaymentProcessConnection.h&quot;
&gt; +#endif // ENABLE(PAYMENT_PROCESS)

Ditto.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:147
&gt; +    EXPECT_EQ((pid_t)0, [sharedProcessPool _paymentProcessIdentifier]);

I don&apos;t think we need this.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:172
&gt; +    EXPECT_EQ((pid_t)0, [sharedProcessPool _paymentProcessIdentifier]);

Ditto.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:1135
&gt; +    // There should be no payment process created.
&gt; +    EXPECT_EQ(0, webView.get().configuration.processPool._paymentProcessIdentifier);
&gt; +

Ditto.

&gt; Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:338
&gt; +    void terminatePaymentProcess();

This should be annotated with [Conditional=PAYMENT_PROCESS].

&gt; Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:1300
&gt; +void TestRunner::terminatePaymentProcess()
&gt; +{
&gt; +    WKRetainPtr&lt;WKStringRef&gt; messageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;TerminatePaymentProcess&quot;));
&gt; +    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), messageName.get(), nullptr, nullptr);
&gt; +}

Wrap this in #if ENABLE(PAYMENT_PROCESS).

&gt; Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:451
&gt; +    void terminatePaymentProcess();

Ditto.

&gt; Tools/WebKitTestRunner/TestController.cpp:1083
&gt; +const char* TestController::paymentProcessName()
&gt; +{
&gt; +#if PLATFORM(FAMILY_IOS)
&gt; +    return &quot;com.apple.WebKit.Payments&quot;;
&gt; +#else
&gt; +    return &quot;Payment process not available on anything but iOS&quot;;
&gt; +#endif
&gt; +}

This is not right. Have the function always return &quot;com.apple.WebKit.Payments&quot;, then wrap the function in #if ENABLE(PAYMENT_PROCESS).

&gt; Tools/WebKitTestRunner/TestController.cpp:1522
&gt; +void TestController::paymentProcessDidCrash(WKContextRef context, const void *clientInfo)
&gt; +{
&gt; +    static_cast&lt;TestController*&gt;(const_cast&lt;void*&gt;(clientInfo))-&gt;paymentProcessDidCrash();
&gt; +}

I think this function is supposed to be registered as a WKContextClient callback, but it doesn&apos;t look like you wired that up.

&gt; Tools/WebKitTestRunner/TestController.cpp:2667
&gt; +void TestController::terminatePaymentProcess()
&gt; +{
&gt; +    WKContextTerminatePaymentProcess(platformContext());
&gt; +}
&gt; +

Wrap this in #if ENABLE(PAYMENT_PROCESS).

&gt; Tools/WebKitTestRunner/TestController.h:184
&gt; +    static const char* paymentProcessName();

Ditto.

&gt; Tools/WebKitTestRunner/TestController.h:256
&gt; +    void terminatePaymentProcess();

Ditto.

&gt; Tools/WebKitTestRunner/TestInvocation.cpp:1461
&gt; +    if (WKStringIsEqualToUTF8CString(messageName, &quot;TerminatePaymentProcess&quot;)) {
&gt; +        ASSERT(!messageBody);
&gt; +        TestController::singleton().terminatePaymentProcess();
&gt; +        return nullptr;
&gt; +    }
&gt; +

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481984</commentid>
    <comment_count>42</comment_count>
      <attachid>355679</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-27 11:24:40 -0800</bug_when>
    <thetext>Comment on attachment 355679
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPageInspectorTargetController.cpp:66
&gt;&gt; +    auto* target = m_targets.get(targetId);
&gt; 
&gt; This change doesn&apos;t seem related.

I think these miiiight be needed as unified-source-related build fixes.

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPageInspectorTargetController.cpp:81
&gt;&gt; +    auto* target = m_targets.get(targetId);
&gt; 
&gt; Ditto.

(This too)

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPageInspectorTargetController.cpp:94
&gt;&gt; +    auto* target = m_targets.get(targetId);
&gt; 
&gt; Ditto.

(and this)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482318</commentid>
    <comment_count>43</comment_count>
      <attachid>355837</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-11-27 18:49:20 -0800</bug_when>
    <thetext>Created attachment 355837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482328</commentid>
    <comment_count>44</comment_count>
      <attachid>355837</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-27 19:33:08 -0800</bug_when>
    <thetext>Comment on attachment 355837
Patch

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

&gt; Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig:293
&gt; +ENABLE_PAYMENT_PROCESS = ;

This does precisely nothing. If you want it to do anything at all, it has to be down below in the long FEATURE_DEFINES line too.

ALSO, why is it disabled? It’s weird to add so much code and not even build it anywhere.

&gt; Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig:294
&gt;  ENABLE_PAYMENT_REQUEST = ENABLE_PAYMENT_REQUEST;

Then again, maybe that’s OK.

&gt; Source/WebKit/Configurations/BaseTarget.xcconfig:114
&gt; +WK_PAYMENT_SERVICE_PRODUCT_NAME = com.apple.WebKit.Payments;

I wonder why this is here? I see the storage one below; are the *other* process names in BaseTarget or in their own xcconfigs?

&gt; Source/WebKit/Configurations/PaymentService.xcconfig:33
&gt; +INFOPLIST_FILE[sdk=iphone*] = PaymentProcess/EntryPoint/ios/XPCService/PaymentService/Info-iOS.plist;

SDK conditionals like this are a big red flag w.r.t. PLATFORM(IOSMAC), you probably want to use WK_PLATFORM_NAME. Are the others like this?

&gt; Source/WebKit/PaymentProcess/PaymentProcess.h:39
&gt; +struct PaymentProcessCreationParameters;

You have this, plus a whole new file for this struct, and yet as far as I can tell, nothing uses it??

&gt; Source/WebKit/UIProcess/API/C/WKContext.h:66
&gt; +    WKContextPaymentProcessDidCrashCallback                             paymentProcessDidCrash;

You cannot change these structs; old versions must be immutable for source compatibility. You need to add a new version (which is quite a bit of typing.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:1644
&gt; +PaymentProcessCreationParameters WebsiteDataStore::paymentProcessParameters()

Ditto my previous question about PaymentProcessCreationParameters... nothing ever calls this function?

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:69
&gt; +#if ENABLE(PAYMENT_PROCESS)

We usually like to put things like this in their own paragraph (and they then break out of alphabetical order too. See e.g. RESOURCE_LOAD_STATISTICS and NETSCAPE_PLUGIN_API below.

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:6305
&gt; +		3913602A219514BD0056492A /* Payment */ = {

Payment... or ...

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:6314
&gt; +		392E942A219A2E850050F982 /* Payments */ = {

...Payments?

&gt; Source/WebKit/WebProcess/Payments/WebToPaymentProcessConnection.h:33
&gt; +#include &lt;WebCore/SWServer.h&gt;

Why ServiceWorkers headers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489608</commentid>
    <comment_count>45</comment_count>
      <attachid>357759</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-12-19 17:00:17 -0800</bug_when>
    <thetext>Created attachment 357759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489902</commentid>
    <comment_count>46</comment_count>
      <attachid>357829</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-12-20 10:12:00 -0800</bug_when>
    <thetext>Created attachment 357829
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489912</commentid>
    <comment_count>47</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-12-20 10:17:53 -0800</bug_when>
    <thetext>Attachment 357829 did not pass style-queue:


ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.h:56:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxy.h:136:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxy.h:151:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:40:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:69:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:117:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:121:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:136:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:149:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:163:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:177:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:266:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:358:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:366:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:402:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:412:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:581:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:608:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:617:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:660:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
ERROR: Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxyCocoa.mm:677:  Misplaced OS version check. Please use a named macro in wtf/Platform.h or wtf/FeatureDefines.h.  [build/version_check] [5]
Total errors found: 21 in 89 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>1489940</commentid>
    <comment_count>48</comment_count>
      <attachid>357834</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-12-20 11:00:45 -0800</bug_when>
    <thetext>Created attachment 357834
Patch #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489941</commentid>
    <comment_count>49</comment_count>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-12-20 11:01:23 -0800</bug_when>
    <thetext>This patch should have a much smaller diff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489946</commentid>
    <comment_count>50</comment_count>
      <attachid>357834</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-12-20 11:11:29 -0800</bug_when>
    <thetext>Comment on attachment 357834
Patch #2

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

&gt; Source/WebCore/ChangeLog:10
&gt; +2018-11-14  Zamiul Haque  &lt;zhaque@apple.com&gt;

Double changelogs

&gt; Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxy.cpp:148
&gt; +    // FIXME: This should be a MESSAGE_CHECK.

Why isn&apos;t it, then?

&gt; Source/WebKit/PaymentProcess/PaymentProcessCoordinatorProxy.cpp:183
&gt; +    // It&apos;s possible that the payment has been canceled already.

Don&apos;t know that we need this comment every time. Also is it even accurate in this case? The other ones about cancellation check m_state, this one is checking canCompletePayment()

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:11689
&gt; +				&quot;INFOPLIST_FILE[sdk=macosx*]&quot; = &quot;PaymentProcess/EntryPoint/ios/XPCService/PaymentService/Info-iOS.plist&quot;;

Info-iOS for macosx seems wrong. Also should these even be in the xcproj? Aren&apos;t they already in the xcconfigs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490093</commentid>
    <comment_count>51</comment_count>
      <attachid>357876</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-12-20 15:08:18 -0800</bug_when>
    <thetext>Created attachment 357876
Patch #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490595</commentid>
    <comment_count>52</comment_count>
      <attachid>358014</attachid>
    <who name="Zamiul Haque">zhaque</who>
    <bug_when>2018-12-21 19:17:23 -0800</bug_when>
    <thetext>Created attachment 358014
Patch #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545196</commentid>
    <comment_count>53</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-16 21:00:22 -0700</bug_when>
    <thetext>Still relevant?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353947</attachid>
            <date>2018-11-06 00:34:26 -0800</date>
            <delta_ts>2018-11-06 01:08:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181106003425.patch</filename>
            <type>text/plain</type>
            <size>374407</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDdhNDNlMDU1ZWEyZDU2NThlNDkwYTM0NDU5ZDA2YjZhYTUxM2YzLi42NTMzOGJhZWYxNzU0Yjdm
ZGQ3ODQ0YjU4Y2Y1ZDcxNDUxNGVlNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMC0xMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM3MDYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNlNmMxZTI0ZDRjODdiYmEwMTZhMTZjOTg3OTA5NjQxOGIz
MmUyYmEuLjUxNjcwZjk3ODc4Y2E0YThjNGZkYzQ4NzJhNmQ3MmUyN2FiNDgxMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFw
cGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3M6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvUGxheWJhY2tRdWFsaXR5TWV0
cmljcyk6CisKIDIwMTgtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyJ3MgcGFyZW50IHNob3VsZCBi
ZSBhIFdlYWtQdHIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyNzE0YWM3MWMxMWQ5ZTRjYWQ4ZDRkYWRkZGE0OGEw
MDQ3ZjYzYzIuLjEzMDM2MTBkMjY0N2QyMjNkZWYxMmNmYjUyOTUxY2FiZDQxNzRkZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTY5IEBACisyMDE4LTExLTA2ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVA
YXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEy
OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50
aXRsZW1lbnRzOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3gu
ZW50aXRsZW1lbnRzOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Rh
dGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1l
bnRTZXJ2aWNlLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnB1
dE9yQWRkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHA6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkTm90SGFu
ZGxlRmV0Y2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVucmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6
c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpwb3N0UGF5bWVudFRhc2spOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzczo6cGVyZm9ybU5leHRQYXltZW50VGFzayk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAg
ICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gu
bWVzc2FnZXMuaW4uCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5U
YWJsZS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRi
b3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuUGF5bWVudC5zYjogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiLgorICAgICAgICAq
IFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0Ojpwcm9jZXNzU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdlYktpdDo6c2Fu
ZGJveERpcmVjdG9yeSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlUGF5
bWVudFByb2Nlc3NDYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRD
bG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRD
bGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xv
c2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzc0FuZFdlYnNpdGVE
YXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1l
bnRQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRB
bnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2guY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9TZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2guaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVu
dC9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW46IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVz
c2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oLgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW46IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcC4KKyAgICAgICAgKFdl
YktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5z
dGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW46IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BheW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oLgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIuY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE4LTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWxsb3cgZW5jb2Rpbmcgb2Ygc21hbGwgZW51bSBjbGFzc2VzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJh
MjQ5NzMzYi4uN2EyODU3MjdlYjY1NzI5MmRkMDE3NGE2YjkwN2VjODViZTUyZGY1NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNzQsNiArNzQsOCBAQCBFTkFCTEVfQ09OVEVOVF9GSUxU
RVJJTkdfaXBob25lb3MgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkdfaXBob25lc2ltdWxhdG9yID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwog
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX21hY29zeCA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
RzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKKwogRU5BQkxFX0NTUzNfVEVYVCA9IDsK
IAogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKaW5kZXggZjI2ZTk2ZDQyYTA4NGMzZDUzYzJjMDk3MDhjYjEyM2UwOTYyNmRh
Yi4uZDIwMTYzNWMwNWFjNzM0NmViYzE2OTMxYjU4Y2QxNWIzZmI0ZTRmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtNDMsNiAr
NDMsOSBAQAogLyogVmlzaWJsZSBuYW1lIG9mIFNlcnZpY2UgV29ya2VyIHByb2Nlc3MuIFRoZSBh
cmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBTZXJ2aWNlIFdvcmtlciAo
JUApIiA9ICIlQCBTZXJ2aWNlIFdvcmtlciAoJUApIjsKIAorLyogdmlzaWJsZSBuYW1lIG9mIHRo
ZSBwYXltZW50IHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4g
Ki8KKyIlQCBQYXltZW50IiA9ICIlQCBQYXltZW50IjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRo
ZSB3ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwog
IiVAIFdlYiBDb250ZW50IiA9ICIlQCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IGUwMGFlMmYyZmRlOGMxN2MyMDlkNDRmMTlkOGQ2NGE2ZGQwMDJmNjguLmZiMDA2
YTlkNmQ3MGVjOGRlMTdhOTBmOWVjNDg2YWJiM2ZjZTkwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtMzI2MCwzMyArMzI2MCw0NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldFNob3VsZERpc2FibGVTbGVlcChib29sIGZsYWcpCiAKIHN0ZDo6b3B0
aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp2aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MoKQogewotICAgIGlmICgh
W21fdmlkZW9MYXllciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHZpZGVvUGVyZm9ybWFu
Y2VNZXRyaWNzKV0pCisvLyAgICBpZiAoIVttX3ZpZGVvTGF5ZXIgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcih2aWRlb1BlcmZvcm1hbmNlTWV0cmljcyldKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotCi0jaWYgUExBVEZPUk0oV0FUQ0hPUykKLSAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotI2Vsc2UKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKLSAgICBhdXRv
IG1ldHJpY3MgPSBbbV92aWRlb0xheWVyIHZpZGVvUGVyZm9ybWFuY2VNZXRyaWNzXTsKLSAgICBp
ZiAoIW1ldHJpY3MpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICB1aW50MzJf
dCBkaXNwbGF5Q29tcG9zaXRlZEZyYW1lcyA9IDA7Ci0gICAgaWYgKFttZXRyaWNzIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IobnVtYmVyT2ZEaXNwbGF5Q29tcG9zaXRlZFZpZGVvRnJhbWVz
KV0pCi0gICAgICAgIGRpc3BsYXlDb21wb3NpdGVkRnJhbWVzID0gW21ldHJpY3MgbnVtYmVyT2ZE
aXNwbGF5Q29tcG9zaXRlZFZpZGVvRnJhbWVzXTsKLQotICAgIHJldHVybiBWaWRlb1BsYXliYWNr
UXVhbGl0eU1ldHJpY3MgewotICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oW21ldHJpY3Mg
dG90YWxOdW1iZXJPZlZpZGVvRnJhbWVzXSksCi0gICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90
PihbbWV0cmljcyBudW1iZXJPZkRyb3BwZWRWaWRlb0ZyYW1lc10pLAotICAgICAgICBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oW21ldHJpY3MgbnVtYmVyT2ZDb3JydXB0ZWRWaWRlb0ZyYW1lc10pLAot
ICAgICAgICBbbWV0cmljcyB0b3RhbEZyYW1lRGVsYXldLAotICAgICAgICBkaXNwbGF5Q29tcG9z
aXRlZEZyYW1lcywKLSAgICB9OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlm
Ci19CisgICAgCisvLyNpZiBQTEFURk9STShXQVRDSE9TKQorLy8gICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKy8vI2Vsc2UKKy8vI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKy8vI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgorLy8jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIK
Ky8vICAgIGF1dG8gbWV0cmljcyA9IFttX3ZpZGVvTGF5ZXIgdmlkZW9QZXJmb3JtYW5jZU1ldHJp
Y3NdOworLy8gICAgaWYgKCFtZXRyaWNzKQorLy8gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisvLworLy8gICAgdWludDMyX3QgZGlzcGxheUNvbXBvc2l0ZWRGcmFtZXMgPSAwOworLy8gICAg
aWYgKFttZXRyaWNzIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IobnVtYmVyT2ZEaXNwbGF5
Q29tcG9zaXRlZFZpZGVvRnJhbWVzKV0pCisvLyAgICAgICAgZGlzcGxheUNvbXBvc2l0ZWRGcmFt
ZXMgPSBbbWV0cmljcyBudW1iZXJPZkRpc3BsYXlDb21wb3NpdGVkVmlkZW9GcmFtZXNdOworLy8K
Ky8vICAgIHJldHVybiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MgeworLy8gICAgICAgIHN0
YXRpY19jYXN0PHVpbnQzMl90PihbbWV0cmljcyB0b3RhbE51bWJlck9mVmlkZW9GcmFtZXNdKSwK
Ky8vICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oW21ldHJpY3MgbnVtYmVyT2ZEcm9wcGVk
VmlkZW9GcmFtZXNdKSwKKy8vICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oW21ldHJpY3Mg
bnVtYmVyT2ZDb3JydXB0ZWRWaWRlb0ZyYW1lc10pLAorLy8gICAgICAgIFttZXRyaWNzIHRvdGFs
RnJhbWVEZWxheV0sCisvLyAgICAgICAgZGlzcGxheUNvbXBvc2l0ZWRGcmFtZXMsCisvLyAgICB9
OworLy8jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisvLyNlbmRpZgorfQorCisvL2Jvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrLCBNZWRpYVRpbWUgdGltZSkKKy8veworLy8g
ICAgaWYgKCFtX2F2UGxheWVyKQorLy8gICAgICAgIHJldHVybiBmYWxzZTsKKy8vCisvLyAgICBf
X2Jsb2NrIFdURjo6RnVuY3Rpb248dm9pZCgpPiB0YXNrSW4gPSBXVEZNb3ZlKHRhc2spOworLy8K
Ky8vICAgIFttX2F2UGxheWVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNW
YWx1ZSB2YWx1ZVdpdGhDTVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKy8vICAgICAgICB0YXNrSW4oKTsKKy8vICAgIH1d
OworLy8gICAgcmV0dXJuIHRydWU7CisvL30KIAogTlNBcnJheSogYXNzZXRNZXRhZGF0YUtleU5h
bWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFhZGI1ZTkzYzIz
ZGNhNzU0M2IxODA0YzUuLjUxZDQ3ZGE2ZDJhMDUzZDlkYTM4YjU2MTEzMjg4YjFmNTk5YTBjYTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzEsNyArMzEsOSBAQCBzZXQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZSIK
ICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCiAgICAgIiR7
V0VCS0lUX0RJUn0vU2hhcmVkL1JlbW90ZUxheWVyVHJlZSIKKyAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvV2Vic2l0ZURhdGEiCisg
ICAgIiR7V0VCS0lUX0RJUn0vUGF5bWVudFByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkiCiAgICAgIiR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9DIgpAQCAtNDcsNiArNDksNyBAQCBzZXQoV2ViS2l0X0lOQ0xV
REVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgorICAgICIke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2VyQ29udGVudCIK
ICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24iCiAgICAgIiR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2siCkBAIC0xMzIsNiAr
MTM1LDkgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAgU2hhcmVkL1BsdWdp
bnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4KIAorICAgIFBheW1lbnRQcm9j
ZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3Rv
clByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2Fn
ZXMuaW4KQEAgLTE1Myw2ICsxNTksOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAK
ICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAor
ICAgIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKwog
ICAgIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTIyMSw2ICsyMjksMTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklF
UwogICAgIFdlYktpdAogKQogCitzZXQoUGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2Vi
S2l0CispCisKIHNldChQbHVnaW5Qcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpAQCAt
NDQwLDEwICs0NTIsMjAgQEAgaWYgKFdlYktpdF9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRSkK
ICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoTmV0d29ya1Byb2Nlc3MgUFJPUEVSVElFUyBPVVRQ
VVRfTkFNRSAke1dlYktpdF9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRX0pCiBlbmRpZiAoKQog
CithZGRfZXhlY3V0YWJsZShQYXltZW50UHJvY2VzcyAke1BheW1lbnRQcm9jZXNzX1NPVVJDRVN9
KQorQUREX1dFQktJVF9QUkVGSVhfSEVBREVSKFBheW1lbnRQcm9jZXNzKQordGFyZ2V0X2xpbmtf
bGlicmFyaWVzKFBheW1lbnRQcm9jZXNzICR7UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTfSkKK2lu
c3RhbGwoVEFSR0VUUyBQYXltZW50UHJvY2VzcyBERVNUSU5BVElPTiAiJHtMSUJFWEVDX0lOU1RB
TExfRElSfSIpCisKK2lmIChXZWJLaXRfUGF5bWVudFByb2Nlc3NfT1VUUFVUX05BTUUpCisgICAg
c2V0X3RhcmdldF9wcm9wZXJ0aWVzKFBheW1lbnRQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05B
TUUgJHtXZWJLaXRfUGF5bWVudFByb2Nlc3NfT1VUUFVUX05BTUV9KQorZW5kaWYgKCkKKwogaWYg
KENPTVBJTEVSX0lTX0dDQ19PUl9DTEFORykKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxB
R1MoV2ViS2l0IC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKICAgICBXRUJLSVRfQUREX1RBUkdFVF9D
WFhfRkxBR1MoV2ViUHJvY2VzcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCiAgICAgV0VCS0lUX0FE
RF9UQVJHRVRfQ1hYX0ZMQUdTKE5ldHdvcmtQcm9jZXNzIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikK
KyAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoUGF5bWVudFByb2Nlc3MgLVduby11bnVz
ZWQtcGFyYW1ldGVyKQogZW5kaWYgKCkKIAogIyBGSVhNRTogTWFjIHNob3VsZCBidWlsZCBhIHBs
dWdpbiBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9E
YXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMv
RGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMKaW5kZXggMzc0NzVlZWU4ODJkNTM2MTI4M2ZhMzFh
MGVmNjFiNWJkODQzYWViYi4uNTE1MDFkNWZmZDQyNTY1MTI5MzkwNjdmNjAzNTZkZTNlZTgzOGFl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9T
LmVudGl0bGVtZW50cworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNl
cy1pT1MuZW50aXRsZW1lbnRzCkBAIC0zLDkgKzMsNyBAQAogPHBsaXN0IHZlcnNpb249IjEuMCI+
CiA8ZGljdD4KIAk8a2V5PnNlYXRiZWx0LXByb2ZpbGVzPC9rZXk+Ci0JPGFycmF5PgotCQk8c3Ry
aW5nPmNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZTwvc3RyaW5nPgotCTwvYXJyYXk+CisJPGFycmF5
Lz4KIAk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1czwva2V5PgogCTx0cnVlLz4K
IDwvZGljdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVu
dC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4NmFhNzE1YWUw
ZWYyZWQ4NDA3MTQzYzljZmViMGE2MjFmMTVjZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzCkBA
IC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwh
RE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6
Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNp
b249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5yb290bGVzcy5wYXltZW50LldlYktp
dFBheW1lbnRTYW5kYm94PC9rZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25m
aWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzNWUzYTcxZmUyMDMzMTYzZWVkMDkyY2M5YTk5MzY1YzhjMGIyOTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2
aWNlLnhjY29uZmlnCkBAIC0wLDAgKzEsMzYgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxMy0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy8vCisvLyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKy8vIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisvLyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKy8vIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
Ky8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorLy8gUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorLy8gT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJCYXNlWFBDU2VydmljZS54Y2NvbmZpZyIKKworV0tf
WFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFID0gRGF0YWJhc2VzLWlPUzsKKworV0tf
U1RPUkFHRV9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF9OTyA9IDsKK1dLX1NUT1JBR0VfRU5USVRM
RU1FTlRTX1JFU1RSSUNURURfWUVTID0gQ29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJv
eC5lbnRpdGxlbWVudHM7CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8g
PSAkKFdLX1NUT1JBR0VfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfJChXS19VU0VfUkVTVFJJQ1RF
RF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lHTl9GTEFHUyA9ICQoV0tfTElCUkFSWV9W
QUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFH
RV9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQ
Uk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSBQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlL0luZm8ucGxpc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggZmU1NTFmNDk3MWU0MTAyMDJjMzczYjg1ZTE3OGM1NTNhNmM3NTNj
MS4uYWZkN2MwYzBiYmUwMmJiZmM4NTFkMTBmMmY2ZGM1NmQ3Y2JiZWFiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtMzcsNiArMzcsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktp
dDIpL1NoYXJlZC9BUEkvQ29jb2EgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMgXAorICAgICQoV2ViS2l0MikvUGF5bWVu
dFByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsZVBheSBcCiAgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9BdXRvbWF0aW9uIFwKQEAgLTUxLDYgKzUyLDcgQEAgVlBBVEggPSBcCiAgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRh
dGEgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QYXltZW50IFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTczLDYgKzc1
LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L1BheW1lbnQgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvU3RvcmFnZSBcCkBAIC0xMzEsNiArMTM0LDkgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAg
ICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAog
ICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBQYXltZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFBy
b2Nlc3NQcm94eSBcCisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIFwKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
IFwKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5jcHAKaW5kZXggNGRkOTU0ZWU0N2VlZmRjNTIxMDQ4ZDhiY2M3MGEzNmVkMDNjN2Q5
Ny4uM2EyOTU0ZmI3YTgxYTQ2NTIzZGI2ZGJiOThiMjExZWFlMmY3MTc3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0yODcsNyArMjg3LDcgQEAgdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0LCBjb25zdCBJREIKICAgICAgICAgJiYgb3ZlcndyaXRlTW9kZSAhPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU6Ok92ZXJ3cml0ZSkK
ICAgICAgICAgJiYgb3ZlcndyaXRlTW9kZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSW5kZXhl
ZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU6Ok92ZXJ3cml0ZUZvckN1cnNvcikpIHsKICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgbWVzc2FnZSBmcm9tIHRoZSBXZWJQcm9jZXNzIGlzIGNvcnJ1
cHQuCi0gICAgICAgIC8vIFRoZSBOZXR3b3JrIFByb2Nlc3Mgc2hvdWxkIHJldHVybiBlYXJseSBh
dCB0aGlzIHBvaW50LCBidXQgY2FuIHdlIGFsc28ga2lsbCB0aGUgYmFkIFdlYlByb2Nlc3M/Cisg
ICAgICAgIC8vIFRoZSBQYXltZW50UHJvY2VzcyBzaG91bGQgcmV0dXJuIGVhcmx5IGF0IHRoaXMg
cG9pbnQsIGJ1dCBjYW4gd2UgYWxzbyBraWxsIHRoZSBiYWQgV2ViUHJvY2Vzcz8KICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAxYzk0MjI0
MDQxOGZhMjJiMzNjNGY3YjMwNjEwMGUyMjBlNjVkMjg4Li40MGE5YjZlM2NlNTkzNjUwNjc1OTRi
MTUzNjY1Zjg1Nzg4MTRhMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNzMy
LDcgKzczMiw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlEQkNvbm5lY3Rpb25Ub1NlcnZl
cklkZW50aWZpZXIoKQogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJs
aXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0
X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAgIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyID0gZ2VuZXJhdGVJREJDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCk7Ci0g
ICAgTE9HKEluZGV4ZWREQiwgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxp
c2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIgLSAlIiBQUkl1NjQsIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKKyAgICBMT0coSW5kZXhlZERCLCAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlciAtICUiIFBSSXU2NCwgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpOwogICAgIEFTU0VSVCghbV93ZWJJREJDb25uZWN0aW9ucy5jb250
YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwogICAgIAogICAgIG1fd2ViSURCQ29u
bmVjdGlvbnMuc2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmNyZWF0ZSgqdGhpcywgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHNlc3Np
b25JRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwCmluZGV4IDA0Y2JmMjFiM2U3YWFh
NjMxYjUyNTNhN2Q1OTYzZGM0ODdlOTlkNzYuLmFhNTVjM2Q3ZTQyMGYzZmE4ZjAwNmUyYTRiNDM4
MThiZmQ5MDE0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgdm9pZCBXZWJTV09yaWdpblN0b3JlOjpzZW5kU3RvcmVIYW5kbGUoV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQogCiAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpX
ZWJTV0NsaWVudENvbm5lY3Rpb246OlNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoaGFuZGxl
KSk7CiB9Ci0KKyAgICAKIHZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6ZGlkSW52YWxpZGF0ZVNoYXJl
ZE1lbW9yeSgpCiB7CiAgICAgZm9yIChhdXRvKiBjb25uZWN0aW9uIDogbV93ZWJTV1NlcnZlckNv
bm5lY3Rpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAw
YzI4MDJkMjM0MjkyNDhjNTdmYTI4ZjZjNjEwZGNjNzIwZDI0ZmEzLi45YmQxOTMzOGYxOGJiY2M2
YTFhOGNiZmMyM2E5ZGI1ZDM3Mzg0ZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcApAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogI2RlZmlu
ZSBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVM
RUFTRV9MT0dfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFNlcnZp
Y2VXb3JrZXIsICIlcCAtIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6IiBmbXQsIHRoaXMsICMjX19W
QV9BUkdTX18pCiAjZGVmaW5lIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihtX3Nlc3Npb25JRC5pc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKLQorICAgIAogV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24oU1dTZXJ2ZXImIHNlcnZlciwgSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogU1dT
ZXJ2ZXI6OkNvbm5lY3Rpb24oc2VydmVyKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQpA
QCAtNzUsNyArNzUsNyBAQCBXZWJTV1NlcnZlckNvbm5lY3Rpb246On5XZWJTV1NlcnZlckNvbm5l
Y3Rpb24oKQogICAgIGZvciAoYXV0byBrZXlWYWx1ZSA6IG1fY2xpZW50T3JpZ2lucykKICAgICAg
ICAgc2VydmVyKCkudW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoa2V5VmFsdWUudmFsdWUs
IGtleVZhbHVlLmtleSk7CiB9Ci0KKyAgICAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpy
ZWplY3RKb2JJbkNsaWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVy
LCBjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQogewogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Sm9iUmVqZWN0ZWRJblNlcnZlcihqb2JJZGVudGlm
aWVyLCBleGNlcHRpb25EYXRhKSk7CkBAIC0xMzgsNyArMTM4LDYgQEAgdm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIHNlcnYKICAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29ubmVj
dGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRj
aCB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRl
bnRpZmllciB9KTsKICAgICB9KTsKIH0KLQogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0
YXJ0RmV0Y2goU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIs
IFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmJiBmb3JtRGF0YSwgU3RyaW5nJiYgcmVmZXJyZXIpCiB7CiAgICAg
YXV0byogd29ya2VyID0gc2VydmVyKCkuYWN0aXZlV29ya2VyRnJvbVJlZ2lzdHJhdGlvbklEKHNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKQEAgLTIxNyw3ICsyMTYsNiBAQCB2
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZAogICAgICAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3Mo
KmNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRpb25JZGVudGlmaWVyLCBX
VEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHNvdXJjZURhdGEpIH0pOwogICAgIH0pOwogfQotCiB2
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihTZXJ2aWNlV29y
a2VySm9iRGF0YSYmIGpvYkRhdGEpCiB7CiAgICAgYXV0byBzZWN1cml0eU9yaWdpbiA9IFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChqb2JEYXRhLnNjcmlwdFVSTCk7CkBAIC0yNjIsNyArMjYw
LDYgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKEZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVz
IiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBt
X2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KLQog
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xp
ZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIGF1dG8q
IHNvdXJjZVNlcnZpY2VXb3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJCeUlEKHNvdXJjZUlkZW50aWZp
ZXIpOwpAQCAtMzA4LDEyICszMDUsMTAgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGkKICAgICBz
ZXJ2ZXIoKS51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChpdGVyYXRvci0+dmFsdWUsIGNs
aWVudElkZW50aWZpZXIpOwogICAgIG1fY2xpZW50T3JpZ2lucy5yZW1vdmUoaXRlcmF0b3IpOwog
fQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2Vu
ZFRvQ29udGV4dFByb2Nlc3MoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBVJiYgbWVzc2FnZSkKIHsKICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24mPihjb25uZWN0aW9uKS5zZW5kKFdURk1vdmUobWVzc2FnZSkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTBlNGU0MTkxNGYyNGU3N2VlNTk0NzNlYmIxZjk0OWVmYzFlOTJjYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwCkBAIC0wLDAgKzEsMjIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1
ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVu
Y29kaW5nLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9DYWxs
YmFja0FnZ3JlZ2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2VzczsKKyAgICByZXR1cm4g
cHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkKKyAgICA6IG1f
cXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudFByb2Nlc3Mi
KSkKK3sKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhl
IHRleHQgZW5jb2RpbmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJl
Zm9yZSBhIGJhY2tncm91bmQgdGhyZWFkIG5lZWRzIGl0LgorICAgIC8vIEZJWE1FOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhw
bGljaXQgd2F5IG9mIGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGlu
Zy4KKyAgICBVVEY4RW5jb2RpbmcoKTsKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2VzcygpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRp
YWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpz
aG91bGRUZXJtaW5hdGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlz
cGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQ
cm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1l
bnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6Q2hpbGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVdlYnNp
dGVEYXRhU3RvcmUoY29uc3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMoY29u
c3QgU3RyaW5nJiBwYXRoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisg
ICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMocGF0aCkpCisgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIG1ha2UgYWxsIGRpcmVjdG9yaWVzIGZvciBwYXRoICclcyciLCBw
YXRoLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpwb3N0UGF5bWVu
dFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOworCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wYXltZW50VGFza011dGV4KTsKKwor
ICAgIG1fcGF5bWVudFRhc2tzLmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKKworICAgIG1fcXVldWUt
PmRpc3BhdGNoKFt0aGlzXSB7CisgICAgICAgIHBlcmZvcm1OZXh0UGF5bWVudFRhc2soKTsKKyAg
ICB9KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6cGVyZm9ybU5leHRQYXltZW50VGFzaygp
Cit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBDcm9zc1RocmVhZFRh
c2sgdGFzazsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGF5bWVudFRhc2tN
dXRleCk7CisgICAgICAgIEFTU0VSVCghbV9wYXltZW50VGFza3MuaXNFbXB0eSgpKTsKKyAgICAg
ICAgdGFzayA9IG1fcGF5bWVudFRhc2tzLnRha2VGaXJzdCgpOworICAgIH0KKworICAgIHRhc2su
cGVyZm9ybVRhc2soKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK3sKKyNpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKKyAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFp
ciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7CisgICAgbV9w
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUoc29ja2V0UGFpci5zZXJ2ZXIpKTsKKyAgICBwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjpEaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQoc29ja2V0UGFp
ci5jbGllbnQpKSwgMCk7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgLy8gQ3JlYXRlIHRoZSBsaXN0
ZW5pbmcgcG9ydC4KKyAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0ID0gTUFDSF9QT1JUX05V
TEw7CisgICAgYXV0byBrciA9IG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBN
QUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOworICAgIGlmIChrciAhPSBL
RVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWFj
aCBwb3J0LCBlcnJvciAleCIsIGtyKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisKKyAgICAv
LyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29ubmVjdGlvbi4KKyAgICBtX3BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9ucy5hcHBlbmQoUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0
ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIobGlzdGVuaW5nUG9ydCkpKTsKKworICAgIElQ
Qzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTUFL
RV9TRU5EKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bihjbGllbnRQb3J0KSwgMCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBzZXJ2ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyOworICAgIGlm
ICghSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVycyhzZXJ2
ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBMT0dfRVJST1IoIkZh
aWxlZCB0byBjcmVhdGUgc2VydmVyIGFuZCBjbGllbnQgaWRlbnRpZmllcnMiKTsKKyAgICAgICAg
Q1JBU0goKTsKKyAgICB9CisKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKHNlcnZlcklkZW50aWZpZXIpOworICAgIG1fcGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKworICAg
IElQQzo6QXR0YWNobWVudCBjbGllbnRTb2NrZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94
eTo6RGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY2xpZW50U29ja2V0KSwg
MCk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorewor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIHdlYnNpdGVEYXRhID0gc3RkOjptYWtl
X3VuaXF1ZTxXZWJzaXRlRGF0YT4oKTsKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENh
bGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCB3ZWJzaXRlRGF0YSA9IFdURk1vdmUod2Vi
c2l0ZURhdGEpLCBjYWxsYmFja0lEXSgpIHsKKyAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6RGlkRmV0Y2hXZWJzaXRl
RGF0YShjYWxsYmFja0lELCAqd2Vic2l0ZURhdGEpLCAwKTsKKyAgICB9KTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBt
b2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gY2FsbGJhY2tB
Z2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMsIGNhbGxiYWNrSURd
IHsKKyAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5
bWVudFByb2Nlc3NQcm94eTo6RGlkRGVsZXRlV2Vic2l0ZURhdGEoY2FsbGJhY2tJRCksIDApOwor
ICAgIH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgc2Vj
dXJpdHlPcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gY2FsbGJhY2tB
Z2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMsIGNhbGxiYWNrSURd
KCkgeworICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpEaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoY2FsbGJh
Y2tJRCksIDApOworICAgIH0pOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBQYXlt
ZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzJikKK3sKKyNpZiBPUyhMSU5VWCkKKyAgICBhdXRvJiBtZW1vcnlQcmVz
c3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpOworICAgIG1l
bW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWws
IFN5bmNocm9ub3VzKSB7CisgICAgICAgIC8vIEZJWE1FOiBubyBsb3dNZW1vcnlIYW5kbGVyKCkg
aW1wbGVtZW50ZWQgZm9yIFBheW1lbnRQcm9jZXNzIGN1cnJlbnRseS4KKyAgICAgICAgLy8gQnV0
IGF0IGxlYXN0IGRlZmluZSB0aGlzIHNldExvd01lbW9yeUhhbmRsZXIoKSBlbXB0eSBzbyBwbGF0
Zm9ybVJlbGVhc2VNZW1vcnkgaXMgY2FsbGVkLgorICAgIH0pOworICAgIG1lbW9yeVByZXNzdXJl
SGFuZGxlci5pbnN0YWxsKCk7CisjZW5kaWYKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5p
dGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmKQoreworfQorI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGI3N2JjMjc1NjIzMjI1MmMzZDIyYWVkODVlOTBiNTEzN2FlYjg0ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
aApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCitj
bGFzcyBXZWJTV09yaWdpblN0b3JlOworI2VuZGlmCisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDog
cHVibGljIENoaWxkUHJvY2VzcworeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBheW1lbnRQ
cm9jZXNzKTsKKyAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+OworcHVi
bGljOgorICAgIHN0YXRpYyBQYXltZW50UHJvY2VzcyYgc2luZ2xldG9uKCk7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpQYXltZW50
OworCisgICAgflBheW1lbnRQcm9jZXNzKCk7CisKKyAgICB2b2lkIHBvc3RQYXltZW50VGFzayhD
cm9zc1RocmVhZFRhc2smJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAg
UGF5bWVudFByb2Nlc3MoKTsKKworICAgIC8vIENoaWxkUHJvY2VzcworICAgIHZvaWQgaW5pdGlh
bGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFs
aXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0
aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICBib29sIHNo
b3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAgIHZvaWQgaW5p
dGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoY29uc3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKKyAgICB2b2lkIGNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJv
b2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYp
OworCisgICAgdm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBm
ZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0
ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOworCisgICAgLy8gRm9yIGV4ZWN1dGlvbiBvbiB3b3JrIHF1ZXVlIHRocmVhZCBvbmx5
CisgICAgdm9pZCBwZXJmb3JtTmV4dFBheW1lbnRUYXNrKCk7CisgICAgdm9pZCBlbnN1cmVQYXRo
RXhpc3RzKGNvbnN0IFN0cmluZyYpOworCisgICAgVmVjdG9yPFJlZjxQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbj4+IG1fcGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOworCisgICAg
UmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKworICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9w
YXltZW50VGFza3M7CisgICAgTG9jayBtX3BheW1lbnRUYXNrTXV0ZXg7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmNjg1MDgyNTk1MWNkNTA3YmI3Nzk2ZTAzNTdhZjY5N2Ni
NWJkMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
K21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKKyAgICAjIEluaXRp
YWxpemVzIGEgV2Vic2l0ZURhdGFTdG9yZS9TZXNzaW9uIGluIHRoZSBQYXltZW50UHJvY2VzcyB3
aXRoIHRoZSBjb3JyZWN0IHBhcmFtZXRlcnMKKyAgICBJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9y
ZShzdHJ1Y3QgV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKQorCisgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29t
bXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcworICAgIENyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4pCisKKyAgICBGZXRjaFdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVE
YXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRf
dCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywg
dWludDY0X3QgY2FsbGJhY2tJRCkKKworICAgIERlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKK30KKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTExMjY4OTYyMGFmMjQ3ZTU2ZTdhNzg3
ZWQ0NWY0YTI4NmUwZDk5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsODgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisjaW5jbHVk
ZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7Cit9CisKK1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBt
X2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8gVXNlIHRoaXMgZmxhZyB0byBmb3Jj
ZSBzeW5jaHJvbm91cyBtZXNzYWdlcyB0byBiZSB0cmVhdGVkIGFzIGFzeW5jaHJvbm91cyBtZXNz
YWdlcyBpbiB0aGUgV2ViUHJvY2Vzcy4KKyAgICAvLyBPdGhlcndpc2UsIHRoZSBXZWJQcm9jZXNz
IHdvdWxkIHByb2Nlc3MgaW5jb21pbmcgc3luY2hyb25vdXMgSVBDIHdoaWxlIHdhaXRpbmcgZm9y
IGEgc3luY2hyb25vdXMgSVBDCisgICAgLy8gcmVwbHkgZnJvbSB0aGUgcGF5bWVudCBwcm9jZXNz
LCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCisgICAgbV9jb25uZWN0aW9uLT5zZXRPbmx5U2VuZE1l
c3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNo
QU1lc3NhZ2UodHJ1ZSk7CisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQor
eworICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpLmRpZFJl
Y2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5l
Y3Rpb24pOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7
CisKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJiYzAxZmFm
ODVhNWU1NTFjYWRiZTY3OGU5MzFiOGM0YmRiZjJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6
TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAg
flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToK
KyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKwor
ICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0K
KyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0
dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTg0MzIyNTk2NjI2OTM1OTM5MTZlM2Q5NGNhOTU0ZmQ1MDk3OWE2YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3Nh
Z2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5
bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXlt
ZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDdjZGViOTc1YjA1ZTRhZTllMTg0MzA2ZTIz
NWFkOTMwYTdlYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNp
ZiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpbXBvcnQg
IlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKworI2RlZmluZSBFTkFCTEVfTUFO
VUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcgMAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQ
YXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykK
K3sKKyNpZiBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcKKyAgICAvLyBOZWVkIHRv
IG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1
bmRsZSBJRC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVG
b3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICBzYW5kYm94UGFy
YW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBwYXRo
Rm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQiIG9mVHlwZTpAInNiIl0pOwor
ICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBh
cmFtZXRlcnMpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9j
b20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudC5zYgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MGM3Y2JmZjhjZGI3ODk2NGM3NjRlNGUyZTRkZmZkNjEwMzI4NTliCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUu
V2ViS2l0LlBheW1lbnQuc2IKQEAgLTAsMCArMSw0NyBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KzsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBw
YXJ0aWFsLXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0
YWRhdGEpCisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMt
c2VydmljZS1uYW1lLXByZWZpeCAiIikpCisKKyhkZW55IGxzb3BlbikKKworKGFsbG93IGZpbGUt
cmVhZCogZmlsZS13cml0ZSogKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQt
d3JpdGUiKSkKKworKGRlbnkgc3lzY3RsKikKKyhhbGxvdyBzeXNjdGwtcmVhZAorICAgIChzeXNj
dGwtbmFtZQorICAgICAgICAiaHcuYXZhaWxjcHUiCisgICAgICAgICJody5uY3B1IgorICAgICAg
ICAiaHcubW9kZWwiCisgICAgICAgICJrZXJuLm1lbW9yeXN0YXR1c19sZXZlbCIKKyAgICAgICAg
InZtLmZvb3RwcmludF9zdXNwZW5kIikpCisKKzs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQg
Ynkgc3lzdGVtIGZyYW1ld29ya3MKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUuYW5hbHl0aWNzZCIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgYi9T
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZS5zYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBjN2NiZmY4Y2Ri
Nzg5NjRjNzY0ZTRlMmU0ZGZmZDYxMDMyODU5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmls
ZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYgorKysgL2Rldi9udWxsCkBAIC0xLDQ3
ICswLDAgQEAKLTsgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi07IGFyZSBtZXQ6Ci07IDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotOyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi07IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotOyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi07IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi07IENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci07IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotOyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
OyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi07IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotKHZl
cnNpb24gMSkKLShkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKLShh
bGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQotCi0oaW1wb3J0ICJjb21tb24u
c2IiKQotCi0oZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQot
Ci0oZGVueSBsc29wZW4pCi0KLShhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChleHRlbnNp
b24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikpCi0KLShkZW55IHN5c2N0bCop
Ci0oYWxsb3cgc3lzY3RsLXJlYWQKLSAgICAoc3lzY3RsLW5hbWUKLSAgICAgICAgImh3LmF2YWls
Y3B1IgotICAgICAgICAiaHcubmNwdSIKLSAgICAgICAgImh3Lm1vZGVsIgotICAgICAgICAia2Vy
bi5tZW1vcnlzdGF0dXNfbGV2ZWwiCi0gICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpKQot
Ci07OyBWYXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IHN5c3RlbSBmcmFtZXdvcmtzCi0oYWxs
b3cgbWFjaC1sb29rdXAKLSAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmFuYWx5dGljc2QiKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5kZXggNTQ3OGE5ZGQ5ZmM1OTJiMTg3NjYz
Zjk1NGVmYTU5MWNmMDIwNGZkMS4uOWYzOGRkMTM3ZWQwY2MxNzM1ZDlkYmY3MjlkMzY3ZjI3YzBh
YjM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTQ4LDggKzQ4LDEwIEBA
IHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFByb2Nlc3NUeXBlIDogdWludDhfdCB7CiAgICAgICAg
IFdlYkNvbnRlbnQsCiAgICAgICAgIE5ldHdvcmssCi0gICAgICAgIFN0b3JhZ2UsCi0gICAgICAg
IFBsdWdpbgorICAgICAgICBQbHVnaW4sCisgICAgICAgICNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgICAgICBQYXltZW50CisgICAgICAgICNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICAgICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MGFhZWE0M2U5YTY5MTgxN2Q1YWUyYjhjNWQ3ZjMxMzQxZWRiZTUy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQor
eworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOwor
fQorCitib29sIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTc5NzRhZDIxMTRkMjE1ZGI5NGJlZGRmNGE5ZjA1
YWU3NTUyZjc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTYW5kYm94RXh0
ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBF
bmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cygpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRj
NzJlNTgyYWJlMzBmNDg3OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2
NzAxNzkxZjBjZTlhYWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgKQEAgLTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcg
ZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1
Z2luUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1l
bnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDIxZTNhZDQz
MzNkN2M2YTg5OGQ2Zjg5ODE2MjkzNjI0Njc1NjI1NmYuLmNlMjAxNWQ4OWQ2NGRjZTAxNjhiNWI3
NTRhZTI5ZGI4YTQ3YjZkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9D
aGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJv
Y2Vzc01hYy5tbQpAQCAtMjI0LDcgKzIyNCw2IEBAIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm9j
ZXNzU3RvcmFnZUNsYXNzKENoaWxkUHJvY2Vzczo6UHJvY2Vzc1R5cGUgdHlwZSkKICAgICAgICAg
cmV0dXJuICJXZWJLaXRXZWJDb250ZW50U2FuZGJveCI7CiAgICAgY2FzZSBDaGlsZFByb2Nlc3M6
OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgogICAgICAgICByZXR1cm4gIldlYktpdE5ldHdvcmtpbmdT
YW5kYm94IjsKLSAgICBjYXNlIENoaWxkUHJvY2Vzczo6UHJvY2Vzc1R5cGU6OlN0b3JhZ2U6CiAg
ICAgICAgIHJldHVybiAiV2ViS2l0U3RvcmFnZVNhbmRib3giOwogICAgIGNhc2UgQ2hpbGRQcm9j
ZXNzOjpQcm9jZXNzVHlwZTo6UGx1Z2luOgogICAgICAgICByZXR1cm4gIldlYktpdFBsdWdpblNh
bmRib3giOwpAQCAtMjg1LDggKzI4NCw2IEBAIHN0YXRpYyBTdHJpbmcgc2FuZGJveERpcmVjdG9y
eShDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlLCBjb25zdCBTdHJpCiAgICAg
Y2FzZSBDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgogICAgICAgICBkaXJlY3Rv
cnkuYXBwZW5kKCIvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLlNhbmRib3giKTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlOjpTdG9yYWdlOgot
ICAgICAgICBkaXJlY3RvcnkuYXBwZW5kKCIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLlNhbmRi
b3giKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBl
OjpQbHVnaW46CiAgICAgICAgIGRpcmVjdG9yeS5hcHBlbmQoIi9jb20uYXBwbGUuV2ViS2l0LlBs
dWdpbi5TYW5kYm94Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBiNzFhZDQ5ODM0NWVkOWNhNDI4YjBhMzRj
NGJhZTliODNiOTViMGQzLi44OTM4NzQyYTJiZWIzMDg0ODA4OWQwN2IzNDUxZDY5YWE1NjhhYzVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTIxOSw4ICsyMTksMTMgQEAgU2hhcmVkL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgIEBuby11bmlmeQogU2hhcmVkL1BsdWdp
bnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwIEBuby11bmlmeQogCitTaGFyZWQvUGF5
bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKwogU2hhcmVkL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhLmNwcAogCitQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5j
cHAgQG5vLXVuaWZ5CitQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgQG5vLXVuaWZ5CisKIFVJUHJvY2Vzcy9CYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwCiBVSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCiBVSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTM4MSw2ICszODYsOCBAQCBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5JbmZvU3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFu
YWdlci5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKIAorVUlQ
cm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQcm9jZXNzL1VzZXJD
b250ZW50L1dlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmNwcAogVUlQcm9jZXNzL1VzZXJDb250ZW50
L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAogCkBAIC00ODcsMTIgKzQ5NCwxMyBA
QCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIEBu
by11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBA
bm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVh
bS5jcHAgQG5vLXVuaWZ5CiAKLVdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2guY3BwCi1XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAot
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAotV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCi1XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKLVdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCitXZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdv
cmtlckNsaWVudEZldGNoLmNwcAorV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKK1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKK1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV09yaWdpblRhYmxlLmNwcAorV2ViUHJvY2Vz
cy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCitXZWJQcm9jZXNz
L1BheW1lbnQvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcAorV2ViUHJvY2Vzcy9QYXltZW50
L1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAogCiBXZWJQcm9jZXNzL1VzZXJDb250
ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IDU5NGJmOTBkZDVmMDhiZmRjNDM0YjlmNWRjNTllNDhjM2FhMmQ3MWUuLjBlNDIwZWY2ODg3
MGYxNjg1MmQwZjNhNmQ5ZTUzNTYxNGZkNTMxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAg
LTE5NCw2ICsxOTQsOSBAQCBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVBy
b3BlcnR5QXBwbGllci5tbQogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbQogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmNwcAogCisKK1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJv
Y2Vzc0lPUy5tbSBAbm8tdW5pZnkKKwogVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRl
ci5tbQogVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCiBVSVByb2Nlc3MvSGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCAxOTY1MjhjYmU1MTI3ZjRiNTk3ZWY2NzFj
OGIxMDM4OGMyMGNjOTc0Li5jYjk3MDQ2YzFjZmExNTZhOGE4OWNkYzQzODVjMjRiZWQzNjJjMzVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYy
MSw2ICs2MjEsMTMgQEAgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vz
cyhXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKIH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JU
ZXN0aW5nKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nl
c3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nl
c3NJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
CmluZGV4IGMyZGUzYWZiYzNlODljYTY0OWM0ZmExMzhjNTk1MTE1ZjMzY2I4OWQuLjc4YjUzODdi
ZDZhMTQyNzc2NmJmMTUyYzE4NDFhYzYzZDRjMTM2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBAIC01MCw3ICs1MCw5IEBAIHR5cGVkZWYgV0tEYXRhUmVm
ICgqV0tDb250ZXh0Q29weVdlYkNyeXB0b01hc3RlcktleUNhbGxiYWNrKShXS0NvbnRleHRSZWYg
Y29udGV4CiAKIHR5cGVkZWYgdm9pZCAoKldLQ29udGV4dENoaWxkUHJvY2Vzc0RpZENyYXNoQ2Fs
bGJhY2spKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5
cGVkZWYgV0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjayBXS0NvbnRleHROZXR3
b3JrUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2s7Ci0KKy8vI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCit0eXBlZGVmIFdLQ29udGV4dENoaWxkUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2sgV0tDb250
ZXh0RGF0YWJhc2VQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjazsKKy8vI2VuZGlmCiB0eXBlZGVmIHN0
cnVjdCBXS0NvbnRleHRDbGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAg
Y29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGllbnRJbmZvOwpAQCAtODgsNiArOTAsMTAgQEAgdHlwZWRlZiBzdHJ1Y3Qg
V0tDb250ZXh0Q2xpZW50VjIgewogICAgIC8vIFZlcnNpb24gMS4KICAgICB2b2lkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgq
Y29weVdlYkNyeXB0b01hc3RlcktleV91bmF2YWlsYWJsZSkodm9pZCk7CiAKKy8vI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLQ29udGV4dERhdGFi
YXNlUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YWJhc2VQcm9jZXNzRGlkQ3Jhc2g7CisvLyNlbmRpZgogfSBXS0NvbnRleHRDbGllbnRWMjsKIAog
Ly8gRklYTUU6IFJlbW92ZSB0aGVzZSBvbmNlIHN1cHBvcnQgZm9yIE1hdmVyaWNrcyBoYXMgYmVl
biBkcm9wcGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
UHJpdmF0ZS5oCmluZGV4IGVjNmM4NjNiNmU0OGE2YWJjMjk4NTE3M2MzM2Q3NGVkMTNhNThiNTMu
LjNhNGM4N2ZjYzdiM2YxYjc3NmRkOTI3Yjc4ODNmY2U0ZjRmY2VmZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTkyLDYgKzky
LDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKFdLQ29u
dGV4dFJlZiwgYm9vbCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZU5ldHdv
cmtQcm9jZXNzKFdLQ29udGV4dFJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5h
dGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYpOworLy8jaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKFdLQ29udGV4dFJlZik7CisvLyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JX
ZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdL
Q29udGV4dFJlZiwgYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDI4NzYzMTY1YzY0YTI2MmExMzFhZDQ4NTcxMjYy
MjU4ODZhYjJkNTAuLmEwNzgyNTQ4YjNkZDA1MDIwMDg5ODY4NjA1NzMzZjliNTg5NmI1MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCkBAIC00MjQsNiArNDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwog
ICAgIF9wcm9jZXNzUG9vbC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQp
X3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOwor
I2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29ya1By
b2Nlc3MoKTsKQEAgLTQ0NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRl
bnRpZmllcgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmll
cigpOwogfQogCistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlmIC8v
ICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nl
c3NDb29raWVzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT5zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDdkNGI2MTVhZDgwMjQ4NDM4YWZhMWZhZWIzYTg0MDRl
OGZkYWZjZjkuLmE0MDhhZWVjMTUzMTI3NmMyN2E0ZjUyOWJlNGEwODA3YzFiMDkzYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCkBAIC04NCwxMiArODQsMTggQEAKIC0gKF9XS0Rvd25sb2FkICopX3Jlc3Vt
ZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilw
YXRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29u
dGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCisvLyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3M7CisvLyNlbmRpZiAvLyAhRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAo
dm9pZClfdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclBy
b2Nlc3NUZXJtaW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9z
KDEyLjApKTsKIAogLy8gVGVzdCBvbmx5LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CisvLyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorLSAocGlkX3QpX3BheW1lbnRQcm9jZXNzSWRlbnRpZmll
ciBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4zKSk7CisvLyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogLy8gVGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA1YzRi
YjNiOWUxMTY0MWQ5ODc4MTFkYTY2Nzk0NjViNmUzMTg0MGE1Li4zNGFiNTJjMGY4Y2JiMjg0OTIx
MjNhMTNjYzdhNWJkNmM1MDM1Y2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNTcsNyArNTcsMTAgQEAgcHVibGljOgog
ICAgICAgICBQbHVnaW42NCwKICNlbmRpZgogICAgICAgICBOZXR3b3JrLAotICAgICAgICBTdG9y
YWdlLAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQsCisjZW5k
aWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB9OwogCiAgICAgc3RydWN0IExh
dW5jaE9wdGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggZWUwZWI5MzVhNmU1YzlmNDA3
MjA1ZDA2YzM0NGI5YWJmZTFkYjA4Yy4uYzVlODc0YzRjZjdiMDlhODk3YzI2MmZjMmExODliYTQy
NjM2ZjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFj
L1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC01NiwxOCArNTYsMTcgQEAgc3RhdGlj
IGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYgbGF1bmNoT3B0aW8KICAgICAgICAgcmV0dXJuIGxhdW5jaE9wdGlvbnMubm9uVmFsaWRJ
bmplY3RlZENvZGVBbGxvd2VkID8gImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9w
bWVudCIgOiAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IjsKICAgICBjYXNlIFByb2Nlc3NM
YXVuY2hlcjo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxl
LldlYktpdC5OZXR3b3JraW5nIjsKLSAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5
cGU6OlN0b3JhZ2U6Ci0jaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYg
IVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDExMDMwMAotICAgICAgICByZXR1cm4gImNvbS5h
cHBsZS5XZWJLaXQuRGF0YWJhc2VzIjsKLSNlbHNlCi0gICAgICAgIHJldHVybiAiY29tLmFwcGxl
LldlYktpdC5TdG9yYWdlIjsKLSNlbmRpZgogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1Z2luMzI6CiAgICAg
ICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIiOwogICAgIGNhc2UgUHJvY2Vz
c0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1Z2luNjQ6CiAgICAgICAgIHJldHVybiAiY29tLmFw
cGxlLldlYktpdC5QbHVnaW4uNjQiOwogI2VuZGlmCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50Ogor
ICAgICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQiOworI2VuZGlmIC8v
ICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBkZWZhdWx0OiByZXR1cm4gbmlsOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ5NzMzYWY2ZmQwZGVjNDE5YTZj
YWY5NjFiNTdhYWY3ODYyMGMyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKQEAgLTAsMCArMSwyMzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgorCisjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9j
ZXNzUHJveHkuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGF5bWVudFByb2Nlc3NDYWxsYmFja0lEKCkK
K3sKKyAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJhY2tJRDsKKworICAgIHJldHVybiArK2NhbGxi
YWNrSUQ7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6OlBheW1lbnRQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQorICAgIDogQ2hpbGRQcm9jZXNzUHJveHkocHJvY2Vz
c1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkpCisgICAgLCBtX3Byb2Nlc3NQ
b29sKHByb2Nlc3NQb29sKQorICAgICwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKDAp
Cit7CisgICAgY29ubmVjdCgpOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5Ojp+UGF5bWVudFBy
b2Nlc3NQcm94eSgpCit7CisgICAgQVNTRVJUKG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxs
YmFja3MuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQobV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFD
YWxsYmFja3MuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQobV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURh
dGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmlzRW1wdHkoKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZygpCit7CisgICAgZm9yIChhdXRvJiBjYWxsYmFj
ayA6IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MudmFsdWVzKCkpCisgICAgICAg
IGNhbGxiYWNrKHsgfSk7CisKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9wZW5kaW5nRGVs
ZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MudmFsdWVzKCkpCisgICAgICAgIGNhbGxiYWNrKCk7CisK
KyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zQ2FsbGJhY2tzLnZhbHVlcygpKQorICAgICAgICBjYWxsYmFjaygpOworICAgIAorICAg
IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuY2xlYXIoKTsKKyAgICBtX3BlbmRp
bmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5jbGVhcigpOworICAgIG1fcGVuZGluZ0RlbGV0
ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5jbGVhcigpOworICAgIAorICAgIHRlcm1p
bmF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxh
dW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQ
YXltZW50OworICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9w
dGlvbnMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERv
d24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29u
bmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9
CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNr
SUQgPSBnZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJRCgpOworICAgIG1fcGVuZGluZ0Zl
dGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpGZXRjaFdl
YnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1l
IG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQgKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0lEID0gZ2VuZXJhdGVQYXltZW50UHJvY2Vzc0Nh
bGxiYWNrSUQoKTsKKworICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLmFk
ZChjYWxsYmFja0lELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZChNZXNz
YWdlczo6UGF5bWVudFByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5
cGVzLCBtb2RpZmllZFNpbmNlLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFBy
b2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChjYW5TZW5kTWVz
c2FnZSgpKTsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZVBheW1lbnRQcm9j
ZXNzQ2FsbGJhY2tJRCgpOworICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
c0NhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
CisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhzZXNzaW9uSUQsIGRhdGFUeXBlcywgb3JpZ2lucywgY2FsbGJhY2tJRCksIDApOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
K3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkp
OworCisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5jaGluZykgeworICAgICAgICBtX251
bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMrKzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBzZWN1cml0eU9yaWdpbjsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9j
ZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQ
cm9jZXNzLCBzZWN1cml0eU9yaWdpbiksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNz
YWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQoreworICAgIGF1dG8gcHJvdGVjdGVk
UHJvY2Vzc1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bvb2wpOworCisgICAgLy8gVGhlIHBheW1l
bnQgcHJvY2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0ZWQsIHNvIHNlbmQgYW55IHBlbmRp
bmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAgd2hpbGUgKCFtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXBseSA9IG1fcGVuZGlu
Z0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworCisjaWYgVVNFKFVOSVhfRE9NQUlOX1NP
Q0tFVFMpCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVudCgpKTsKKyNlbGlmIE9TKERBUldJ
TikKKyAgICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KDAsIE1BQ0hfTVNHX1RZUEVfTU9WRV9T
RU5EKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICByZXBseShJUEM6OkF0dGFjaG1lbnQo
KSk7CisjZWxzZQorICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCisgICAgfQorCisg
ICAgd2hpbGUgKCFtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLmlzRW1wdHkoKSkK
KyAgICAgICAgbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy50YWtlKG1fcGVuZGlu
Z0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuYmVnaW4oKS0+a2V5KShXZWJzaXRlRGF0YSB7IH0p
OworCisgICAgd2hpbGUgKCFtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5pc0Vt
cHR5KCkpCisgICAgICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLnRha2Uo
bV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuYmVnaW4oKS0+a2V5KSgpOworCisg
ICAgd2hpbGUgKCFtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3Mu
aXNFbXB0eSgpKQorICAgICAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnND
YWxsYmFja3MudGFrZShtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFj
a3MuYmVnaW4oKS0+a2V5KSgpOworCisgICAgLy8gVGVsbCBQcm9jZXNzUG9vbCB0byBmb3JnZXQg
YWJvdXQgdGhpcyBwYXltZW50IHByb2Nlc3MuIFRoaXMgbWF5IGNhdXNlIHVzIHRvIGJlIGRlbGV0
ZWQuCisgICAgbV9wcm9jZXNzUG9vbC5wYXltZW50UHJvY2Vzc0NyYXNoZWQodGhpcyk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQ
Qzo6QXR0YWNobWVudCYgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpOworCisgICAgYXV0byByZXBseSA9IG1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworCisjaWYgVVNFKFVOSVhfRE9N
QUlOX1NPQ0tFVFMpCisgICAgcmVwbHkoY29ubmVjdGlvbklkZW50aWZpZXIpOworI2VsaWYgT1Mo
REFSV0lOKQorICAgIHJlcGx5KElQQzo6QXR0YWNobWVudChjb25uZWN0aW9uSWRlbnRpZmllci5w
b3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAg
IHJlcGx5KGNvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpKTsKKyNlbHNlCisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZl
dGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgV2Vic2l0ZURhdGEmIHdl
YnNpdGVEYXRhKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdGZXRjaFdlYnNpdGVE
YXRhQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgY2FsbGJhY2sod2Vic2l0ZURhdGEp
OworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0RlbGV0
ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgY2FsbGJhY2soKTsK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWREZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5k
aW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7
CisgICAgY2FsbGJhY2soKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5p
c2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIENoaWxkUHJvY2Vzc1Byb3h5
OjpkaWRGaW5pc2hMYXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKwor
ICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRl
bnRpZmllcikpIHsKKyAgICAgICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVwIGhlcmUuCisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9u
dW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOyArK2kpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihmYWxz
ZSwgeyB9KSwgMCk7CisgICAgCisgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0g
MDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1Bh
eW1lbnRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5
bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZjRkYmQ4NjA3MGE2ZjM1MTA3MWE1MWEy
MDljNDYyZWQxNDQ0NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaApAQCAtMCwwICsxLDk2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNl
c3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47
CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CitlbnVtIGNsYXNz
IFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBXZWJzaXRlRGF0YTsKKworY2xhc3MgUGF5bWVudFBy
b2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBDaGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOworICAgIH5Q
YXltZW50UHJvY2Vzc1Byb3h5KCk7CisKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYnNpdGVEYXRhKT4mJik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2lu
Y2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKworICAgIHZvaWQgdGVybWluYXRl
Rm9yVGVzdGluZygpOworCitwcml2YXRlOgorICAgIC8vIENoaWxkUHJvY2Vzc1Byb3h5CisgICAg
dm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92
ZXJyaWRlOworICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VO
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCisgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRh
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CisgICAgdm9pZCBkaWRE
ZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRpZERlbGV0
ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIC8vIFBy
b2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vz
c0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKKworICAg
IFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisgICAgdW5zaWduZWQgbV9udW1QZW5k
aW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiBtX3BlbmRpbmdD
b25uZWN0aW9uUmVwbGllczsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQgKFdlYnNpdGVEYXRhKT4+IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFj
a3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCAoKT4+IG1f
cGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3Qs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQgKCk+PiBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZv
ck9yaWdpbnNDYWxsYmFja3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAv
LyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jZTgyZTljODRlMWRlNmVmZDI2NmYxMzkwOThhNjg2MTNmMGU5MWQzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNz
YWdlcyAtPiBQYXltZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKKyAgICBEaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bklkZW50aWZpZXIpCisKKyAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQorICAgIERpZERlbGV0
ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGlkRGVsZXRlV2Vic2l0ZURh
dGFGb3JPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit9CisjZW5kaWYgLy8gIUVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGll
bnQuY3BwCmluZGV4IGZhNDU3NjJlY2ViYTAxM2E2YWNhNGY5NjRkYTg1NjYzOTc0MWQ1NzUuLjZl
NTNiMDQwNDljNjBlNjYzODU5MzFlNjlhMmMyNTFlMWNjYjFhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5oIgogCkBAIC00Niw0ICs0NywxMSBAQCB2
b2lkIFdlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bv
b2wqIHByb2Nlc3NQb29sKQogICAgIG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2godG9B
UEkocHJvY2Vzc1Bvb2wpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViQ29udGV4dENsaWVudDo6cGF5bWVudFByb2Nl
c3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCit7CisgICAgCit9CisjZW5k
aWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCmluZGV4IDgwYzMxMTIy
YzA3NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYuLjAxMzU4ODdkODRkY2NmMmExZGEyYjUz
ZDVjNTk4MTBjZmJmMDU4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIFdlYkNvbnRleHRDbGllbnQgOiBwdWJs
aWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFzZT4gewogcHVibGljOgogICAgIHZvaWQg
cGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZChXZWJQcm9jZXNzUG9vbCopOwogICAg
IHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlBy
b2Nlc3NQb29sKik7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb250ZXh0U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3
NTgyNzQ5MzRmYTYuLmU3NmY4NmVkY2M0OTNiMmRjOGNmN2Y0ZjdhYmExMGVlNmIxNWVmNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAt
MjksNiArMjksMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vz
c1Byb3h5OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vz
c1Byb3h5OworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBjbGFzcyBXZWJQ
cm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIApAQCAtNTQsNiArNTgsMTIgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoTmV0d29ya1Byb2Nlc3NQ
cm94eSopCiAgICAgewogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoUGF5bWVudFByb2Nlc3NQcm94eSopCisg
ICAgeworICAgIH0KKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdl
YlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1Bvb2w7
IH0KICAgICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1fcHJvY2Vzc1Bvb2wgPSBudWxscHRy
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYTcy
YjU3MTJlMWY2NjIzNjZmNDQ0YWU0OTZmMmIzNWJjN2M0OTk2Yi4uMzY1YjU4ZWUwMTQwYmVlYjU5
ZjE3ZDU4ZjY2ZmE3MjMyZWQ4ODM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcApAQCAtNTQsNiArNTQsMTAgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUg
IlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRl
ICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUg
IlVJR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC00NDAsNiArNDQ0LDkgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNl
bmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5
UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3Mo
TWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXND
cml0aWNhbCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVu
dFByb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJl
RXZlbnQoaXNDcml0aWNhbCkpOworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFBsdWdpblByb2Nlc3NNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5zZW5kTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKTsKICNlbmRp
ZgpAQCAtNjA0LDYgKzYxMSw0OCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveAogICAgIG1fbmV0
d29ya1Byb2Nlc3MtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHks
IFdURk1vdmUocmVwbHkpKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lk
IFdlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUo
V2Vic2l0ZURhdGFTdG9yZSogcmVsZXZhbnREYXRhU3RvcmUpCit7CisgICAgaWYgKCFtX3BheW1l
bnRQcm9jZXNzKSB7CisgICAgICAgIGF1dG8gcGFyYW1ldGVycyA9IG1fd2Vic2l0ZURhdGFTdG9y
ZSA/IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnBheW1lbnRQcm9jZXNz
UGFyYW1ldGVycygpIDogKHJlbGV2YW50RGF0YVN0b3JlID8gcmVsZXZhbnREYXRhU3RvcmUtPnBh
eW1lbnRQcm9jZXNzUGFyYW1ldGVycygpIDogQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0
RGF0YVN0b3JlKCktPndlYnNpdGVEYXRhU3RvcmUoKS5wYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMo
KSk7CisKKyAgICAgICAgQVNTRVJUKHBhcmFtZXRlcnMuc2Vzc2lvbklELmlzVmFsaWQoKSk7CisK
KyAgICAgICAgbV9wYXltZW50UHJvY2VzcyA9IHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVudFByb2Nl
c3NQcm94eT4oKnRoaXMpOworICAgICAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpQYXltZW50UHJvY2Vzczo6SW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUocGFyYW1ldGVycyks
IDApOworICAgIH0KKworICAgIGlmICghcmVsZXZhbnREYXRhU3RvcmUgfHwgIW1fd2Vic2l0ZURh
dGFTdG9yZSB8fCByZWxldmFudERhdGFTdG9yZSA9PSAmbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJz
aXRlRGF0YVN0b3JlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGF5bWVudFByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9y
ZShyZWxldmFudERhdGFTdG9yZS0+cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCkpLCAwKTsKK30K
KyAgICAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihX
ZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNl
c3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2Vz
c0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZTo6ZXhpc3RpbmdOb25EZWZhdWx0
RGF0YVN0b3JlRm9yU2Vzc2lvbklEKGluaXRpYWxTZXNzaW9uSUQpKTsKKworICAgIG1fcGF5bWVu
dFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdU
Rk1vdmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzUHJveHkpCit7CisgICAg
QVNTRVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1Byb3h5
ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50
IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vzc0Rp
ZENsb3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFByb2Nl
c3NEaWRDcmFzaCh0aGlzKTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAgICAg
ICBtX2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFByb2Nl
c3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNo
V29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJv
eHkmIHByb3h5LCBTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRp
b25hbDxQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbklEKQogewpAQCAtNjgwLDYgKzcyOSw5IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoYm9vbCBwcml2YXRlCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdl
czo6V2ViUHJvY2Vzczo6QWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKCkpKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5yZW1vdmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVz
dHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwor
I2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBzZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC0xMzE4LDYgKzEzNzAs
MTYgQEAgUHJvY2Vzc0lEIFdlYlByb2Nlc3NQb29sOjpuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIo
KQogICAgIHJldHVybiBtX25ldHdvcmtQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOwogfQog
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6
cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3Mp
CisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCk7Cit9CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJv
b2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7CiAgICAgbV9hbHdheXNVc2VzQ29tcGxleFRleHRD
b2RlUGF0aCA9IGFsd2F5c1VzZUNvbXBsZXhUZXh0OwpAQCAtMTU3Myw2ICsxNjM1LDE3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKQogICAgIGlmIChtX25l
dHdvcmtQcm9jZXNzKQogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6Q2xlYXJDYWNoZWRDcmVkZW50aWFscygpLCAwKTsKIH0KKyAgICAKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRl
UGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3Mp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fcGF5bWVudFByb2Nlc3MtPnRlcm1pbmF0ZUZvclRl
c3RpbmcoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyAh
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRl
TmV0d29ya1Byb2Nlc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmgKaW5kZXggZmY4ZWIxNTdmZWUwMzRjNWVhZTZmMTZhNDQxY2E1NThkM2JjYzk3Yy4uMTA4ODJh
MjE0NWE2ZGMzOGVlNzQ1MGEyNjg1YmIyZTMwY2ExYTVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vz
c1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNp
bmNsdWRlICJTdGF0aXN0aWNzUmVxdWVzdC5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgorI2VuZGlmIC8vICFFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQu
aCIKQEAgLTE3Myw2ICsxNzYsMTIgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+IHZvaWQgc2VuZFN5bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdl
LCBVJiYgcmVwbHkpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29y
a2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJv
Y2VzcyBvciBQYXltZW50UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2Vz
cyBtb2RlbC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9j
ZXNzKFQmJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1Bh
eW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CisjZW5kaWYg
Ly8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hM
YXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5Kik7CiAKICAgICAvLyBEaXNjb25uZWN0IHRoZSBwcm9j
ZXNzIGZyb20gdGhlIGNvbnRleHQuCkBAIC0yMTUsNiArMjI0LDkgQEAgcHVibGljOgogICAgIHZv
aWQgY2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiAKICAgICBQcm9jZXNzSUQgbmV0d29ya1Byb2Nl
c3NJZGVudGlmaWVyKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQcm9jZXNz
SUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAKICAgICBXZWJQYWdlR3JvdXAmIGRlZmF1bHRQYWdlR3JvdXAoKSB7IHJldHVy
biBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCk7IH0KIApAQCAtMjc0LDYgKzI4Niw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wp
OwogCiAgICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygp
OworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIHZvaWQgdGVybWluYXRl
TmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
ZXMoKTsKICAgICB2b2lkIGRpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVs
YXkoKTsKQEAgLTMzOCw2ICszNTMsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZW5zdXJlUGF5bWVudFByb2Nlc3NB
bmRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUqIHJlbGV2YW50RGF0YVN0b3JlKTsK
KyAgICBQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2VzcygpIHsgcmV0dXJuIG1fcGF5
bWVudFByb2Nlc3MuZ2V0KCk7IH0KKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihXZWJQcm9jZXNzUHJveHkmLCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vz
c1Byb3h5Kik7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rp
b25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4pOwogICAgIFNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlE
KHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBAIC02MjMsNiArNjQ0LDkgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAg
ICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2ggeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBtX25ldHdvcmtQcm9jZXNzOworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRQcm9jZXNzUHJv
eHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPj4gbV9k
aWN0aW9uYXJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0
aWNzUmVxdWVzdD4+IG1fc3RhdGlzdGljc1JlcXVlc3RzOwpAQCAtNzE3LDYgKzc0MSwyMiBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZO
ZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKICAgICBt
X25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9Cisg
ICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2FnZSkKK3sK
KyAgICBpZiAobV9wYXltZW50UHJvY2VzcyAmJiBtX3BheW1lbnRQcm9jZXNzLT5jYW5TZW5kTWVz
c2FnZSgpKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPiht
ZXNzYWdlKSwgMCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3Nh
Z2UpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKG51bGxw
dHIpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2Up
LCAwKTsKK30KKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25z
dCBUJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKaW5kZXggYzk5NDdkYmRiMTUyYWM3ZWUyZDFjMzI0MzZhMDIxOTViZDM2ZGQ5ZC4uNDY4NDFm
N2FjNTU2M2I1YTYxMjhmNWVmYzIyOWMzYThkOGYwZjVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02MzksNiArNjM5LDEyIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0CiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
K3sKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMs
IGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUocmVwbHkpKTsKK30KKyNlbmRpZiAvLyAhRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIAogI2lmICFQTEFURk9STShDT0NPQSkKIGJvb2wgV2ViUHJvY2Vz
c1Byb3h5OjpwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDMzMjc0ZGY1ZDYxZTBiZDg2MzJjZTMwOTkz
NDlhOTc2M2NmYjM5NDguLjkyZDBiNWYxODU4MWI0ODE2MzlhODYyY2RjZTExNDM4ZTJjMDhlY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yNzcsNyAr
Mjc3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVp
bnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogICAgIHZv
aWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwotCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyNlbmRp
ZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0Rl
YnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2Rl
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCAzMmZkYThiMGFkY2RjYWI5NTEyOGYyNjQzYjM5OTZkZTEz
YjZlYWMxLi41YzkxZTVmODk1OTg3NGJiOTM3ZjNiY2UyNDBlZjUxNGFjODhjNTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0zNyw2ICszNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3Vw
cG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9u
SGFuZGxlKSBEZWxheWVkCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkgLT4g
KElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8gIUVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBE
aWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZjQwNzQ2
Yzk0MWY4OGUxMGNkMDYyZWE3ODNkZGZkYWQ3YmYxMTk2My4uNDAzMWMxMzkwNzIzMzc0ZTBkYWUz
NGY3MmIxODMzOTI0NjJmNmE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTM0LDYgKzM0LDEwIEBA
CiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAv
LyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgpAQCAtMTM1LDYgKzEzOSw5IEBAIFdlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRl
RGF0YVN0b3JlKCkKICAgICAgICAgQVNTRVJUKG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KG1f
c2Vzc2lvbklEKSA9PSB0aGlzKTsKICAgICAgICAgbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5yZW1v
dmUobV9zZXNzaW9uSUQpOwogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViUHJv
Y2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICAgICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdl
czo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisjZW5kaWYg
Ly8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgICAgICAgICBpZiAoYXV0byogbmV0d29y
a1Byb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAgICAg
ICBuZXR3b3JrUHJvY2Vzcy0+cmVtb3ZlU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgICAgIH0K
QEAgLTE2MjQsNiArMTYzMSwxOSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAogICAgIGNhbGxi
YWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0
ZXJzKCkKK3sKKyAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOworCisgICAgUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIHBhcmFtZXRl
cnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7CisKKyAgICByZXR1cm4gcGFyYW1ldGVyczsKK30K
KyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gV2Vic2l0ZURhdGFTdG9yZTo6cGVuZGluZ0Nvb2tpZXMoKSBjb25zdAogewogICAgIHJl
dHVybiBjb3B5VG9WZWN0b3IobV9wZW5kaW5nQ29va2llcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOTE2
M2Q5ODk0NTExNjRjZmJiZDNhNzgwOWUyMjRhOTg2MWZmNzk3OC4uZjJlYmEyNDM3Y2YwYTc5NWVj
YWUyYjI0MTY0YjUwNzM0NDQ2M2E3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjIsNiArNjIsOSBAQCBj
bGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNpdGVE
YXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisjZW5kaWYgLy8g
IUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1
Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKQEAgLTE2OSw2ICsxNzIsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0Fzc29jaWF0ZWRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNv
bnN0OwogCiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycygpOworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMgcGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBwZW5kaW5nQ29va2ll
cygpIGNvbnN0OwogICAgIHZvaWQgYWRkUGVuZGluZ0Nvb2tpZShjb25zdCBXZWJDb3JlOjpDb29r
aWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGY2MmU2MDQzMWJlZmI1MmE4ZTAwMDEyYTc1NDk0NjgwYTVmYzk5NWUuLjI2ZTc1NmE2
MzEwZDVkMzE3YzkxZmFlOGU4ZDExNGE4OTA1NTMwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTAyLDYgKzkwMiwxMiBAQAogCQk1
MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUMwQzk3OTFEREQ3ODU0
MDAzMkNBRDMgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8q
IFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhLmggKi87IH07CiAJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25E
YXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTExOEU5OUMxRjI5NTI2NjAw
M0VGOUY1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTk5QTFGMjk1MjU5MDAzRUY5RjUg
LyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLzsgfTsKKwkJNTExOEU5QTExRjI5
NTMyNjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTk5RjFGMjk1MzFG
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKKwkJ
NTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThF
OUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CisJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4
RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovOyB9Owor
CQk1MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTExRjdENDExRUIxQkNGNTAwRTQ3QjgzIC8qIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0
ZW1TaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICov
OyB9OwogCQk1MTFGOEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjhBNzgx
MzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSAqLzsgfTsKQEAgLTk1Myw2
ICs5NTksNyBAQAogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFMzE2M0E0
ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdD
RjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTUxN0RENUJGMTgwREE3RDMwMDgx
NjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFBy
b2Nlc3NQcm94eS5oICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29u
dGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9OwogCQk1
MThBQ0FFQTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNBRTkxMkFFRTZC
QjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MThBQ0YxMTEyQjAxNUY4MDBCMDRCODMg
LyogV0tDcmVkZW50aWFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxOEFDRjEwMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05
ODAsNiArOTg3LDggQEAKIAkJNTFERDlGMjgxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI2MTYzNjdEQTIwMDE1NzhFOSAvKiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTUxREQ5RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oICovOyB9OwogCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi87IH07CisJCTUxRTM1
MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFByb2Nlc3MuY3BwICovOyB9OworCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkg
LyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJNTFFNkMxNjQxRjI5MzVE
RDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNkMxNjExRjI5
MzVDRDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5o
ICovOyB9OwogCQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dF
eHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2
MEUwMTY1NDMxN0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1
MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMTU0OSw2
ICsxNTU4LDcgQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5NDg0OTExRkY0
QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
U2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBF
ZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKKwkJ
RTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMxOTBGNzkxQzAw
NzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovOyB9OwogCQlFMTFEMzVBRTE2QjYzRDFC
MDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBj
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgy
IC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyog
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJRTE1MTNDNjcxNjZF
QUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hp
bGRQcm9jZXNzUHJveHkuaCAqLzsgfTsKQEAgLTMwMTEsNiArMzAyMSw3IEBACiAJCTQxNTdFNEFG
MjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1NDIxMTM3NzcwMDAxMkFCQ0QgLyogcHJvY2Vz
cy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
c2g7IHBhdGggPSAicHJvY2Vzcy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTYyMTEzNzdFODAwMTJBQkNEIC8qIHBy
b2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0g
InByb2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxODhDMTU3MjExMzc4NTIwMDEyQUJDRCAvKiBQYXltZW50LU9T
WC1zYW5kYm94LmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRsZW1lbnRz
OyBwYXRoID0gIlBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTgyMTEzNzg1MjAwMTJBQkNEIC8qIFdlYkNvbnRlbnQt
T1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVu
dHM7IHBhdGggPSAiV2ViQ29udGVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VDQjFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VD
QzFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzA3Nyw2ICszMDg4LDcgQEAKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZC
REUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8u
ZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMw
MzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEw
NEY1QTExRjE5RDdDRjAwNENGODIxIC8qIENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVV0aWxzQ0YubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcxMUM3M0QyMkIwMDc5OTNDQiAv
KiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTA1MjM3MjFDNzNEMzdCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDk5LDEyICszMTExLDE0IEBACiAJCTUx
MEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbURhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEFFMEExMzNDMTZDQjAwNzI3MTdBIC8qIFdL
SWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdL
SWNvbkRhdGFiYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEFFMEIx
MzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9y
YWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUE0MUYyOTU5NjMwMDNFRjlGNSAv
KiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTYx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5OTkxRjI5
NTI1OTAwM0VGOUY1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5OUExRjI5NTI1OTAwM0VGOUY1IC8qIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOTlFMUYy
OTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOTlGMUYyOTUzMUYwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFG
N0QzRjFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGN0Q0MDFFQjFCQ0VF
MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1T
aGltTGlicmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTZWNJdGVtU2hp
bUxpYnJhcnkuaDsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFy
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzEyMiw2ICszMTM2LDcgQEAKIAkJ
NTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVk
QnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIElu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhFMTJBODgzODgw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RjEyQTg4Mzg4MDA2Mjk1MzAg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMkY1ODkwMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTMxOTIsNiArMzIwNyw4IEBACiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUw
RSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3Q0YwRTEx
NjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdEMzAwODE2
NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBTaGltLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyog
V2ViQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29u
dGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMTEsNiArMzIyOCw3
IEBACiAJCTUxQTU1NjAwMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVJdGVtVHlw
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0UxRDFDNENCOTAwNEJB
OUFGIC8qIFdlYklEQlJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJJREJSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1
ODc3RjFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYklEQlJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBwYXRoID0gUGF5bWVudFNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxQTcyOERDMUIxQkFEMkQwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRp
b25BY3Rpb25Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVu
ZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUE3RjJGNDEyNUJGOEQ0MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMyNzAsNiArMzI4OCwxMSBAQAogCQk1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0MwMEU1M0JF
OSAvKiBJREJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSURCVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzUx
QzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBGNUQwQjAw
RTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJv
dmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYxRjI5
MzU1MTAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0
ZW50U3RvcmFnZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lz
dGVudFN0b3JhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTYx
MUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zODMwLDcgKzM4NTMsNiBAQAog
CQlBNUQzNTA0RDFENzhGMEQyMDA1MTI0QTkgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVFRkQzOEIx
NkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZpc2liaWxpdHlUeXBlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTcyRDVEN0YxMjM2Q0JBODAwQTg4QjE1IC8qIEFQSVNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc4Q0NE
RDcxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcu
c2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCRDk4NjMxOTQ2NTNENDAwRDM1Njk4IC8qIERh
dGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSAiRGF0
YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDM0OSw3ICs0MzcxLDYgQEAKIAkJREY1OEM2MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdl
YldoZWVsRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2Vi
V2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzNTEzNzFB
Q0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0
aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1Jhbmdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUx
NiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5pY25zOyBuYW1lID0gV2Vi
S2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0LmljbnM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDM5NCw2ICs0NDE1LDcgQEAKIAkJRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzSU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyog
TmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0
d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUUx
QUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNo
ZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2Fj
aGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1NjgsNiArNDU5
MCw3IEBACiAJCQkJMUFBRERGNEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNoYXJlZCAqLywKIAkJCQlC
QzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQcm9jZXNzICovLAogCQkJCUJDMDMyRDVDMTBG
NDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovLAorCQkJCTUxRjdEQzBBMTgwQ0M0MTEwMDIx
MkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2MTM4RTAxMDBEMDNFRDMg
LyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJMUEwRUM2QjAxMjRCQkQzNjAwN0VGNEE1IC8qIFBs
dWdpblByb2Nlc3MgKi8sCiAJCQkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2ZWQg
U291cmNlcyAqLywKQEAgLTQ3NjksNiArNDc5Miw4IEBACiAJCQkJN0MwQkI5QTkxOERDREY1QTAw
MDZDMDg2IC8qIE5ldHdvcmstaU9TLmVudGl0bGVtZW50cyAqLywKIAkJCQk0MUQwRkM3RDIwRTQz
QTUxMDAwNzZBRTggLyogTmV0d29yay1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJ
QkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlLnhjY29uZmlnICovLAor
CQkJCTQxODhDMTU3MjExMzc4NTIwMDEyQUJDRCAvKiBQYXltZW50LU9TWC1zYW5kYm94LmVudGl0
bGVtZW50cyAqLywKKwkJCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZp
Y2UueGNjb25maWcgKi8sCiAJCQkJQTFFREQyREIxODg0Qjk2NDAwQkJGRTk4IC8qIFBsdWdpblBy
b2Nlc3NTaGltLnhjY29uZmlnICovLAogCQkJCUJDODI4M0YyMTZCNEZDNTMwMEEyNzhGRSAvKiBQ
bHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnICovLAogCQkJCUJDODI4M0Y0MTZCNEZDNTMwMEEyNzhG
RSAvKiBQbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnICovLApAQCAtNDkyOCw2ICs0OTUzLDcgQEAK
IAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAogCQkJCTFBQUUwNThDMTI3
OURDRDQwMDg1MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVF
RCAvKiBSZW1vdGVMYXllclRyZWUgKi8sCisJCQkJNTExOEU5OUQxRjI5NTMxRjAwM0VGOUY1IC8q
IFN0b3JhZ2UgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRh
ICovLAogCQkJCUE3RDc5MkQ1MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5j
cHAgKi8sCiAJCQkJQTdENzkyRDQxNzY3Q0IwOTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9u
LmggKi8sCkBAIC02Mzk0LDcgKzY0MjAsNyBAQAogCQkJcGF0aCA9IE5ldHdvcms7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyog
U3RvcmFnZSAqLyA9IHsKKwkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFBheW1lbnQgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTQxMzFGM0QwMUY5
NkJDQzgwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovLApAQCAtNjQx
Miw4ICs2NDM4LDIwIEBACiAJCQkJNDY2QkMwM0ExRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAogCQkJCTgzRjFBMDc3MUY5NkU3
NzAwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLywKIAkJCQk4M0YxQTA3ODFGOTZF
NzcxMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovLAorCQkJCTUxMThFOTk5MUYyOTUy
NTkwMDNFRjlGNSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJ
NTExOEU5OUExRjI5NTI1OTAwM0VGOUY1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmggKi8sCiAJCQkpOwotCQkJcGF0aCA9IFN0b3JhZ2U7CisJCQlwYXRoID0gUGF5bWVudDsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTUxMThFOTlEMUYyOTUzMUYwMDNFRjlG
NSAvKiBTdG9yYWdlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQk1MTE4RTk5RTFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwICovLAorCQkJCTUxMThFOTlGMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBTdG9yYWdl
OworCQkJcGF0aCA9IFBheW1lbnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owog
CQk1MTFGOEVEQTE4MDg4MTY2MDA0N0RBOTYgLyogSW5kZXhlZERCICovID0gewpAQCAtNjUxOSw2
ICs2NTU3LDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMwMDgx
NjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERBN0Qz
MDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1
RDIwMDM5QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJKTsK
KwkJCXBhdGggPSBQYXltZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NTE4RThFRjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY1NzUsNiArNjYyMywyMCBAQAogCQkJ
cGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBB
MTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlv
cyAqLywKKwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3Bw
ICovLAorCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICov
LAorCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdl
cy5pbiAqLywKKwkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEw
MDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywK
KwkJCSk7CisJCQlwYXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTc4LDcgKzcwNDAsNiBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FD
OUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAotCQkJCUE3
OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8s
CiAJCQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudC5zYiAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwpAQCAtNzAyNiw4ICs3MDg3LDggQEAK
IAkJCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJNTEw
NUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5NzQxNDZDOEFB
ODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAorCQkJCTUxMThFOTk4MUYyOTUy
NTkwMDNFRjlGNSAvKiBQYXltZW50ICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAv
KiBQbHVnaW5zICovLAotCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICov
LAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywKIAkJCQk1
NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRpb24gKi8sCiAJCQkJQkMw
MzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovLApAQCAtNzE4Miw2ICs3
MjQzLDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBDNjUwQzUgLyogbWFjICovLAogCQkJCTUx
MENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3b3JrICovLAogCQkJCTMxQTJFQzQwMTQ4OTk3
MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovLAorCQkJCTUxN0RENUJCMTgwREE3QzQwMDgx
NjYwQiAvKiBQYXltZW50ICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQwMDgyMTlEMyAvKiBQbHVn
aW5zICovLAogCQkJCTJEMTU1MUE5MUY1QTlCNDIwMDA2RTNGRSAvKiBSZW1vdGVMYXllclRyZWUg
Ki8sCiAJCQkJMUFBRjA4OUUxOTI2ODFBQzAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLApAQCAt
ODI0MCw3ICs4MzAyLDYgQEAKIAkJCQk1MUZBRUMzNzFCMDY1NzMxMDAwOUM0RTcgLyogQ2hpbGRQ
cm9jZXNzTWVzc2FnZXMuaCAqLywKIAkJCQlFMTdBRTJDMjE2QjlDNjNBMDAxQzQyRjEgLyogY29t
LmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiAqLywKIAkJCQk3QTE1MDY3MjFERDU2Mjk4
MDAxRjRCNTggLyogY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiICovLAotCQkJCUUx
MTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8s
CiAJCQkJRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
ICovLAogCQkJCTFBQjdENjE3MTI4OEI5RDkwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUI3RDYxODEyODhCOUQ5MDBDRkQwOEMgLyogRG93bmxv
YWRQcm94eU1lc3NhZ2VzLmggKi8sCkBAIC04MjczLDYgKzgzMzQsMTAgQEAKIAkJCQk1QzBCMTc3
NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCiAJ
CQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTEx
OEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJ
CQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREEy
OUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VzLmgg
Ki8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04MzA3LDEyICs4MzcyLDYgQEAKIAkJ
CQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICov
LAogCQkJCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCMzFBOTUxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXMuaCAqLywKLQkJCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3Rv
cmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAotCQkJCTUxMThFOUE2MUYyOTU5NjMw
MDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8sCi0JCQkJNTExOEU5QTcxRjI5
NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAotCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCAqLywKLQkJCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAotCQkJCTUxMThFOUE0MUYy
OTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
Ki8sCiAJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUNENDkxQjE1MUU3
MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKQEAgLTg1OTEsNiArODY1MCwxNCBAQAogCQkJbmFtZSA9IFBERjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAv
KiBpb3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUx
RkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLywKKwkJCSk7
CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ4
OUQyODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkwNTYsNiArOTEyMywxMCBAQAogCQkJCTFBQzc1MzdDMTgz
QTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThC
NjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBMTFGMjk1MzI2MDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUE5MUYy
OTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzFFMTIzQkEyMEExMTU3MzAw
MjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1
M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMy
OThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGluIEhlYWRlcnMgKi8s
CkBAIC05NDA0LDYgKzk0NzUsNyBAQAogCQkJCTkzNTZGMkREMjE1MkI2RjYwMEU2RDVERiAvKiBX
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MkQ5MUY0M0E5
REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE1MjYyQkMxRkI5NTE1RDAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTk5QzFGMjk1MjY2
MDAzRUY5RjUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQTBFRjdGMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3RlcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFBRjA4QUUxOTI2OTM2NzAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MwNjVGMkMxQzhDRDk1RjAwQzJEOTUwIC8q
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MDI1NSw3ICsxMDMyNyw2IEBACiAJCQlmaWxlcyA9ICgKIAkJCSk7CiAJCQlpbnB1dFBhdGhzID0g
KAotCQkJCSIkKFNSQ1JPT1QpL1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuU3RvcmFnZS5zYiIsCiAJCQkJIiQoU1JDUk9PVCkvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIiwKIAkJCQkiJChTUkNS
T09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IiLAogCQkJKTsKQEAgLTEwNjQ1LDYgKzEwNzE2LDExIEBACiAJCQkJMkQ5MTM0NDcy
MTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZhcmlhbnRE
YXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQ
YXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBF
Q0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlB
ODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDAx
ODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJB
MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8q
IFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmgKaW5kZXggOGZlOWNiOWMwYzA0MDI4MzFjOThlMGY2ZDBjZTY3ZjBlYjE0
NDIwMC4uNDAyM2RjMzU2Y2Y2OWUxMzQ3MGJlOTA4MWRjZTgzNmY1YjcwNTY0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTc5LDcgKzc5LDYgQEAg
cHVibGljOgogICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcj46OnJlZigpOyB9CiAgICAgdm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgUmVm
Q291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+OjpkZXJlZigpOyB9CiAKLSAgICAvLyBN
ZXNzYWdlcyByZWNlaXZlZCBmcm9tIE5ldHdvcmsgUHJvY2VzcwogICAgIHZvaWQgZGlkRGVsZXRl
RGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkT3Bl
bkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEFi
b3J0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmNwcAppbmRleCA5OTc4NmQ1MTNiMTI4OTQ2NzE3ZGJjMjgxY2E0NzQ5MGRkMWFh
ODQzLi4yZGM0NTM3MDQ1NmNiYjZiNjg5YmY0M2RmODE0MmYxN2ExNGY0MmUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24mPigqY29udGV4dE1hbmFnZXJDb25uZWN0aW9uKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgorI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogICAgIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uaAppbmRleCBkY2QzMzI3NDYyOTkxYzkyNGRiYzc3NzgzMjJkMTQ1NjY3MDkyNjkwLi4zYTVj
MGIxNjc3NWM3ZGZjMDE1MmE5ZjAzZmE3YWYwNmQ3NjU1Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjsKLQorICAgIAogdHlwZWRl
ZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24+
LCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGF5bWVudC9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42N2YyMTdiMTdkMjkwYzM1YzFiN2MyZWM1ZTE2M2NkYzY3YzYyMDlmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtl
ckNsaWVudEZldGNoLmNwcApAQCAtMCwwICsxLDMwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgiCisKKyNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5j
bHVkZSAiV2ViU1dDbGllbnRDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWY8U2VydmljZVdvcmtlckNsaWVudEZl
dGNoPiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNyZWF0ZShXZWJTZXJ2aWNlV29ya2VyUHJv
dmlkZXImIHNlcnZpY2VXb3JrZXJQcm92aWRlciwgUmVmPFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
PiYmIGxvYWRlciwgRmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxXZWJTV0NsaWVudENv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gZmV0Y2ggPSBh
ZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCB7IHNlcnZpY2VXb3JrZXJQcm92
aWRlciwgV1RGTW92ZShsb2FkZXIpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBXVEZNb3ZlKGNhbGxiYWNr
KSB9KTsKKyAgICBmZXRjaC0+c3RhcnQoKTsKKyAgICByZXR1cm4gZmV0Y2g7Cit9CisKK1NlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaDo6flNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCgpCit7Cit9CisK
K1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoKFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlciYgc2VydmljZVdvcmtlclByb3ZpZGVyLCBSZWY8V2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyLCBGZXRjaElkZW50aWZpZXIgaWRlbnRpZmllciwgUmVm
PFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIENhbGxiYWNrJiYgY2FsbGJhY2spCisgICAgOiBt
X3NlcnZpY2VXb3JrZXJQcm92aWRlcihzZXJ2aWNlV29ya2VyUHJvdmlkZXIpCisgICAgLCBtX2xv
YWRlcihXVEZNb3ZlKGxvYWRlcikpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAg
ICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICwgbV9jYWxsYmFjayhX
VEZNb3ZlKGNhbGxiYWNrKSkKKyAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdChzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorewor
fQorCit2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6c3RhcnQoKQoreworICAgIGF1dG8g
cmVxdWVzdCA9IG1fbG9hZGVyLT5yZXF1ZXN0KCk7CisgICAgYXV0byYgb3B0aW9ucyA9IG1fbG9h
ZGVyLT5vcHRpb25zKCk7CisKKyAgICBhdXRvIHJlZmVycmVyID0gcmVxdWVzdC5odHRwUmVmZXJy
ZXIoKTsKKworICAgIG1fZGlkRmFpbCA9IGZhbHNlOworICAgIG1fZGlkRmluaXNoID0gZmFsc2U7
CisKKyAgICAvLyBXZSBhcmUgaW50ZXJjZXB0aW5nIGZldGNoIGNhbGxzIGFmdGVyIGdvaW5nIHRo
cm91Z2ggdGhlIEhUVFAgbGF5ZXIsIHdoaWNoIG1heSBhZGQgc29tZSBzcGVjaWZpYyBoZWFkZXJz
LgorICAgIGNsZWFuSFRUUFJlcXVlc3RIZWFkZXJzRm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBv
cHRpb25zLmh0dHBIZWFkZXJzVG9LZWVwKTsKKworICAgIEFTU0VSVChvcHRpb25zLnNlcnZpY2VX
b3JrZXJzTW9kZSAhPSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUpOworICAgIG1fc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBvcHRpb25zLnNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyLnZhbHVlKCk7CisgICAgbV9jb25uZWN0aW9uLT5zdGFydEZldGNoKG1f
aWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgcmVxdWVz
dCwgb3B0aW9ucywgcmVmZXJyZXIpOworCisgICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJlZGly
ZWN0aW9uU3RhdHVzOjpOb25lOworfQorCisvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9y
Zy8jaHR0cC1mZXRjaCBzdGVwIDMuMworc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVycm9yPiBTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2g6OnZhbGlkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCit7CisgICAgLy8gRklYTUU6IG1ha2UgYSBiZXR0ZXIgZXJyb3IgcmVw
b3J0aW5nLgorICAgIGlmIChyZXNwb25zZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VHlw
ZTo6RXJyb3IpCisgICAgICAgIHJldHVybiBSZXNvdXJjZUVycm9yIHsgUmVzb3VyY2VFcnJvcjo6
VHlwZTo6R2VuZXJhbCB9OworCisgICAgYXV0byYgb3B0aW9ucyA9IG1fbG9hZGVyLT5vcHRpb25z
KCk7CisgICAgaWYgKG9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycyAm
JiByZXNwb25zZS50YWludGluZygpID09IFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nOjpPcGFx
dWUpCisgICAgICAgIHJldHVybiBSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRl
cm5hbCwgMCwgcmVzcG9uc2UudXJsKCksICJSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3Jr
ZXIgaXMgb3BhcXVlIl9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH07CisK
KyAgICAvLyBOYXZpZ2F0ZSBtb2RlIGluZHVjZXMgbWFudWFsIHJlZGlyZWN0LgorICAgIGlmIChv
cHRpb25zLnJlZGlyZWN0ICE9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6Ok1hbnVhbCAmJiBvcHRp
b25zLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSAmJiByZXNwb25zZS50YWlu
dGluZygpID09IFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nOjpPcGFxdWVyZWRpcmVjdCkKKyAg
ICAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAw
LCByZXNwb25zZS51cmwoKSwgIlJlc3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBv
cGFxdWUgcmVkaXJlY3QiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfTsK
KworICAgIGlmICgob3B0aW9ucy5yZWRpcmVjdCAhPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpG
b2xsb3cgfHwgb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpICYm
IHJlc3BvbnNlLmlzUmVkaXJlY3RlZCgpKQorICAgICAgICByZXR1cm4gUmVzb3VyY2VFcnJvciB7
IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHJlc3BvbnNlLnVybCgpLCAiUmVzcG9uc2Ug
c2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGhhcyByZWRpcmVjdGlvbnMiX3MsIFJlc291cmNlRXJy
b3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfTsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVz
b3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQoreworICAgIG1faXNDaGVja2luZ1Jlc3BvbnNlID0g
dHJ1ZTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSldKCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmICghbV9sb2FkZXIpIHsKKyAgICAgICAgICAgIG1faXNDaGVja2luZ1Jlc3BvbnNlID0g
ZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0
byBlcnJvciA9IHZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKSB7CisgICAgICAgICAgICBtX2lz
Q2hlY2tpbmdSZXNwb25zZSA9IGZhbHNlOworICAgICAgICAgICAgbV9sb2FkZXItPmRpZEZhaWwo
ZXJyb3IudmFsdWUoKSk7CisgICAgICAgICAgICBBU1NFUlQoIW1fbG9hZGVyKTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2NlZWRlZCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6OlNv
dXJjZTo6U2VydmljZVdvcmtlcik7CisKKyAgICAgICAgaWYgKHJlc3BvbnNlLmlzUmVkaXJlY3Rp
b24oKSAmJiByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRlck5h
bWU6OkxvY2F0aW9uKSkgeworICAgICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlTG9hZGluZ0FmdGVyQ2hlY2tpbmdSZXNwb25zZSgpOwor
ICAgICAgICAgICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNl
aXZpbmc7CisgICAgICAgICAgICBtX2xvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KG1fbG9hZGVyLT5y
ZXF1ZXN0KCkucmVkaXJlY3RlZFJlcXVlc3QocmVzcG9uc2UsIG1fc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCksIHJlc3BvbnNlLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCB0aGlzXShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7CisgICAgICAgICAg
ICAgICAgaWYgKHJlcXVlc3QuaXNOdWxsKCkgfHwgIW1fY2FsbGJhY2spCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0ID09IG1fbG9h
ZGVyLT5yZXF1ZXN0KCkpOworICAgICAgICAgICAgICAgIGlmIChtX3JlZGlyZWN0aW9uU3RhdHVz
ID09IFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZlZCkgeworICAgICAgICAgICAgICAgICAgICBz
dGFydCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6
Rm9sbG93aW5nOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICAvLyBJbiBjYXNlIG9mIG1haW4gcmVzb3VyY2UgYW5kIG1pbWUgdHlwZSBp
cyB0aGUgZGVmYXVsdCBvbmUsIHdlIHNldCBpdCB0byB0ZXh0L2h0bWwgdG8gcGFzcyBtb3JlIHNl
cnZpY2Ugd29ya2VyIFdQVCB0ZXN0cy4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZWZp
bmUgb3VyIE1JTUUgdHlwZSBzbmlmZmluZyBzdHJhdGVneSBmb3Igc3ludGhldGljIHJlc3BvbnNl
cy4KKyAgICAgICAgaWYgKG1fbG9hZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9
PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbikgeworICAgICAgICAgICAgaWYgKHJl
c3BvbnNlLm1pbWVUeXBlKCkgPT0gZGVmYXVsdE1JTUVUeXBlKCkpIHsKKyAgICAgICAgICAgICAg
ICByZXNwb25zZS5zZXRNaW1lVHlwZSgidGV4dC9odG1sIl9zKTsKKyAgICAgICAgICAgICAgICBy
ZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKCJVVEYtOCJfcyk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBBcyBwZXIgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI21haW4tZmV0Y2ggc3RlcCA5LCBjb3B5IHJlcXVlc3QncyB1cmwgbGlzdCBpbiByZXNwb25z
ZSdzIHVybCBsaXN0IGlmIGVtcHR5LgorICAgICAgICBpZiAocmVzcG9uc2UudXJsKCkuaXNOdWxs
KCkpCisgICAgICAgICAgICByZXNwb25zZS5zZXRVUkwobV9sb2FkZXItPnJlcXVlc3QoKS51cmwo
KSk7CisKKyAgICAgICAgbV9sb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7CisgICAgICAgICAg
ICBtX2lzQ2hlY2tpbmdSZXNwb25zZSA9IGZhbHNlOworICAgICAgICAgICAgY29udGludWVMb2Fk
aW5nQWZ0ZXJDaGVja2luZ1Jlc3BvbnNlKCk7CisgICAgICAgICAgICBpZiAoYXV0byBjYWxsYmFj
ayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisgICAgICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0
OjpTdWNjZWVkZWQpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YVJlZmVyZW5jZSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKK3sKKyAgICBhdXRvKiBk
YXRhID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YVJlZmVyZW5jZS5kYXRhKCkp
OworICAgIGlmICghbV9idWZmZXIpIHsKKyAgICAgICAgbV9idWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7CisgICAgICAgIG1fZW5jb2RlZERh
dGFMZW5ndGggPSBlbmNvZGVkRGF0YUxlbmd0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2J1
ZmZlci0+YXBwZW5kKGRhdGEsIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKKyAgICAgICAgbV9lbmNv
ZGVkRGF0YUxlbmd0aCArPSBlbmNvZGVkRGF0YUxlbmd0aDsKKyAgICB9CisKKyAgICBpZiAobV9p
c0NoZWNraW5nUmVzcG9uc2UpCisgICAgICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICBpZiAo
IW1fbG9hZGVyIHx8ICFtX2VuY29kZWREYXRhTGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIG1fbG9hZGVyLT5kaWRSZWNlaXZlQnVmZmVyKG1fYnVmZmVyLnJlbGVhc2VOb25O
dWxsKCksIG1fZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOworICAgICAgICBt
X2VuY29kZWREYXRhTGVuZ3RoID0gMDsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvcm0gZGF0YSByZWFkaW5nLgorfQor
Cit2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkRmluaXNoKCkKK3sKKyAgICBtX2Rp
ZEZpbmlzaCA9IHRydWU7CisKKyAgICBpZiAobV9pc0NoZWNraW5nUmVzcG9uc2UpCisgICAgICAg
IHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0geworICAgICAgICBpZiAoIW1fbG9hZGVyKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHN3aXRjaCAobV9yZWRpcmVjdGlvblN0YXR1cykgeworICAgICAgICBj
YXNlIFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2VpdmluZzoKKyAgICAgICAgICAgIG1fcmVkaXJl
Y3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6UmVjZWl2ZWQ7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6OkZvbGxvd2luZzoKKyAgICAg
ICAgICAgIHN0YXJ0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgUmVkaXJl
Y3Rpb25TdGF0dXM6OlJlY2VpdmVkOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25TdGF0dXM6Ok5v
bmU7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoIW1fY2FsbGJhY2spOworCisgICAgICAg
IG1fbG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKE5ldHdvcmtMb2FkTWV0cmljcyB7IH0pOworICAg
ICAgICBtX3NlcnZpY2VXb3JrZXJQcm92aWRlci5mZXRjaEZpbmlzaGVkKG1faWRlbnRpZmllcik7
CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRGYWlsKFJl
c291cmNlRXJyb3ImJiBlcnJvcikKK3sKKyAgICBtX2RpZEZhaWwgPSB0cnVlOworICAgIG1fZXJy
b3IgPSBXVEZNb3ZlKGVycm9yKTsKKworICAgIGlmIChtX2lzQ2hlY2tpbmdSZXNwb25zZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgIGlmICghbV9sb2FkZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgYXV0byogZG9jdW1lbnQgPSBtX2xvYWRlci0+ZnJhbWUoKSA/
IG1fbG9hZGVyLT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cjsKKyAgICAgICAgaWYgKGRv
Y3VtZW50KSB7CisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1fZXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKSk7CisgICAgICAgICAgICBpZiAobV9sb2FkZXItPm9wdGlvbnMoKS5kZXN0aW5hdGlv
biAhPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZykKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkICIsIG1fZXJyb3IuZmFpbGlu
Z1VSTCgpLnN0cmluZygpLCAiLiIpKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fbG9hZGVyLT5k
aWRGYWlsKG1fZXJyb3IpOworCisgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZSht
X2NhbGxiYWNrKSkKKyAgICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsKKwor
ICAgICAgICBtX3NlcnZpY2VXb3JrZXJQcm92aWRlci5mZXRjaEZpbmlzaGVkKG1faWRlbnRpZmll
cik7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWROb3RI
YW5kbGUoKQoreworICAgIEFTU0VSVCghbV9pc0NoZWNraW5nUmVzcG9uc2UpOworCisgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Cisg
ICAgICAgIGlmICghbV9sb2FkZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYg
KGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICAgICAgY2FsbGJh
Y2soUmVzdWx0OjpVbmhhbmRsZWQpOworCisgICAgICAgIG1fc2VydmljZVdvcmtlclByb3ZpZGVy
LmZldGNoRmluaXNoZWQobV9pZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2g6OmNhbmNlbCgpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBX
VEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OkNhbmNlbGxlZCk7
CisKKyAgICBpZiAoIW1fZGlkRmluaXNoICYmICFtX2RpZEZhaWwpIHsKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5jYW5jZWxGZXRjaChtX2lkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIpOworCisgICAgfQorICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKKyAgICBt
X2J1ZmZlciA9IG51bGxwdHI7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpj
b250aW51ZUxvYWRpbmdBZnRlckNoZWNraW5nUmVzcG9uc2UoKQoreworICAgIEFTU0VSVCghbV9p
c0NoZWNraW5nUmVzcG9uc2UpOworICAgIGlmICghbV9sb2FkZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChtX2VuY29kZWREYXRhTGVuZ3RoKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAgICAg
aWYgKCFtX2xvYWRlciB8fCAhbV9lbmNvZGVkRGF0YUxlbmd0aCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBtX2xvYWRlci0+ZGlkUmVjZWl2ZUJ1ZmZlcihtX2J1ZmZlci5y
ZWxlYXNlTm9uTnVsbCgpLCBtX2VuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsK
KyAgICAgICAgICAgIG1fZW5jb2RlZERhdGFMZW5ndGggPSAwOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBpZiAobV9kaWRGYWlsKSB7CisgICAgICAgIGRpZEZhaWwoV1RGTW92ZShtX2Vycm9y
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9kaWRGaW5pc2gpCisgICAg
ICAgIGRpZEZpbmlzaCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWVjNjQxZTk3YjhhN2NkNzlmZWE2MGM0MjFiNzE3ZWE1NjVlNjdmYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaC5oCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRl
bnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjsKK2NsYXNzIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjsKKworY2xhc3MgU2VydmljZVdvcmtl
ckNsaWVudEZldGNoIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckNsaWVu
dEZldGNoPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBlbnVt
IGNsYXNzIFJlc3VsdCB7IFN1Y2NlZWRlZCwgQ2FuY2VsbGVkLCBVbmhhbmRsZWQgfTsKKyAgICB1
c2luZyBDYWxsYmFjayA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXN1bHQpPjsKKwor
ICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckNsaWVudEZldGNoPiBjcmVhdGUoV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyJiwgUmVmPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiYmLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIsIFJlZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+JiYsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgQ2FsbGJhY2smJik7CisgICAg
flNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCgpOworCisgICAgdm9pZCBzdGFydCgpOworCisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKyAgICB2b2lkIGNhbmNlbCgpOworCisgICAgYm9vbCBpc09uZ29pbmcoKSBjb25zdCB7
IHJldHVybiAhIW1fY2FsbGJhY2s7IH0KKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2goV2ViU2VydmljZVdvcmtlclByb3ZpZGVyJiwgUmVmPFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyPiYmLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFJlZjxXZWJTV0NsaWVudENvbm5l
Y3Rpb24+JiYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
Q2FsbGJhY2smJik7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+
IHZhbGlkYXRlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0
X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlzaCgpOworICAgIHZv
aWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworICAgIHZvaWQgZGlkTm90SGFu
ZGxlKCk7CisKKyAgICB2b2lkIGNvbnRpbnVlTG9hZGluZ0FmdGVyQ2hlY2tpbmdSZXNwb25zZSgp
OworCisgICAgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyJiBtX3NlcnZpY2VXb3JrZXJQcm92aWRl
cjsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fbG9hZGVyOworICAgIFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYlNXQ2xpZW50
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIENhbGxiYWNrIG1fY2FsbGJhY2s7CisgICAg
ZW51bSBjbGFzcyBSZWRpcmVjdGlvblN0YXR1cyB7IE5vbmUsIFJlY2VpdmluZywgRm9sbG93aW5n
LCBSZWNlaXZlZCB9OworICAgIFJlZGlyZWN0aW9uU3RhdHVzIG1fcmVkaXJlY3Rpb25TdGF0dXMg
eyBSZWRpcmVjdGlvblN0YXR1czo6Tm9uZSB9OworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0IHsgdHJ1ZSB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+IG1fYnVmZmVyOworICAgIGludDY0X3QgbV9lbmNvZGVkRGF0YUxlbmd0aCB7
IDAgfTsKKyAgICBib29sIG1faXNDaGVja2luZ1Jlc3BvbnNlIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fZGlkRmluaXNoIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZGlkRmFpbCB7IGZhbHNlIH07Cisg
ICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBtX2Vycm9yOworCisgICAgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIwZjVkZTUxOWEzZTJiNjMxYmVmZjY3YzE4MjM4M2Q0ZmJmNDAyNzUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9TZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQorCittZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2ggeworICAgIERpZFJl
Y2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIERp
ZFJlY2VpdmVEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRh
TGVuZ3RoKQorICAgIERpZFJlY2VpdmVGb3JtRGF0YShJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIGRh
dGEpCisgICAgRGlkRmluaXNoKCkKKyAgICBEaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IpCisgICAgRGlkTm90SGFuZGxlKCkKK30KKworI2VuZGlmIC8vICFFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1l
bnQvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTU3NmUyYmMyMzMzOWRk
ODY4OTEzNmQyZGIzNjljNDY0MzI5ZGExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMCwwICsx
LDIzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNs
dWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU1dPcmln
aW5UYWJsZS5oIgorI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckpvYkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJTV0NsaWVudENvbm5lY3Rpb246OldlYlNXQ2xpZW50
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlc3Npb25JRCBzZXNzaW9u
SUQpCisgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgLCBtX2Nvbm5lY3Rpb24oY29u
bmVjdGlvbikKKyAgICAsIG1fc3dPcmlnaW5UYWJsZShtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2lu
VGFibGU+KCkpCit7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOworICAgIGJvb2wg
cmVzdWx0ID0gc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpFc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oc2Vzc2lvbklEKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb246OlJl
cGx5KG1faWRlbnRpZmllcikpOworCisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7
Cit9CisKK1dlYlNXQ2xpZW50Q29ubmVjdGlvbjo6fldlYlNXQ2xpZW50Q29ubmVjdGlvbigpCit7
Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U2NoZWR1bGVKb2JJblNlcnZlcihqb2JEYXRhKSk7Cit9
CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2Vy
dmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0Y2hpbmdTY3JpcHRJblNl
cnZlcihyZXN1bHQpKTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmFkZFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6QWRkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKGlkZW50aWZpZXIp
KTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlbW92ZVNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6
UmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKGlkZW50aWZpZXIpKTsKK30K
Kwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVu
dGlmaWVyJiBzb3VyY2VJZGVudGlmaWVyKQoreworICAgIC8vIEZJWE1FOiBUZW1wb3JhcmlseSBw
aXBlIHRoZSBTVyBwb3N0TWVzc2FnZSBtZXNzYWdlcyB2aWEgdGhlIFVJUHJvY2VzcyBzaW5jZSB0
aGlzIGlzIHdoZXJlIHRoZSBNZXNzYWdlUG9ydCByZWdpc3RyeSBsaXZlcworICAgIC8vIGFuZCB0
aGlzIGF2b2lkcyByYWNlcy4KKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUG9vbDo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoZGVzdGluYXRp
b25JZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcigpKSwgMCk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRv
cE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50IHsgdG9wT3JpZ2luLmRhdGEoKSwgZGF0YSwgY29udHJvbGxpbmdTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciB9KTsKK30KKwordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRp
ZmllciBjb250ZXh0SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OlVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50IHsgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBjb250ZXh0
SWRlbnRpZmllciB9IH0pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlkUmVz
b2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYga2V5KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RGlk
UmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2Uoa2V5KSk7Cit9CisKK2Jvb2wgV2ViU1dDbGllbnRD
b25uZWN0aW9uOjptYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pIGNvbnN0Cit7CisgICAgaWYgKCFtX3N3T3JpZ2lu
VGFibGUtPmlzSW1wb3J0ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4g
bV9zd09yaWdpblRhYmxlLT5jb250YWlucyhvcmlnaW4pOworfQorCit2b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6c2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1v
cnk6OkhhbmRsZSYgaGFuZGxlKQoreworICAgIG1fc3dPcmlnaW5UYWJsZS0+c2V0U2hhcmVkTWVt
b3J5KGhhbmRsZSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXRTV09yaWdp
blRhYmxlSXNJbXBvcnRlZCgpCit7CisgICAgbV9zd09yaWdpblRhYmxlLT5zZXRJc0ltcG9ydGVk
KCk7CisgICAgd2hpbGUgKCFtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9ydC5pc0VtcHR5KCkpCisg
ICAgICAgIG1fdGFza3NQZW5kaW5nT3JpZ2luSW1wb3J0LnRha2VGaXJzdCgpKCk7Cit9CisKK3Zv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRNYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBt
YXRjaGluZ1JlcXVlc3QsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGE+JiYgcmVzdWx0KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAo
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3Mu
dGFrZShtYXRjaGluZ1JlcXVlc3QpKQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KHJlc3VsdCkpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlkR2V0UmVnaXN0
cmF0aW9ucyh1aW50NjRfdCBtYXRjaGluZ1JlcXVlc3QsIFZlY3RvcjxTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YT4mJiByZWdpc3RyYXRpb25zKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisKKyAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1fb25nb2luZ0dldFJl
Z2lzdHJhdGlvbnNUYXNrcy50YWtlKG1hdGNoaW5nUmVxdWVzdCkpCisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVnaXN0cmF0aW9ucykpOworfQorCit2b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6bWF0Y2hSZWdpc3RyYXRpb24oU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3Jp
Z2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFj
aykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtYXlIYXZlU2Vy
dmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgeworICAgICAgICBjYWxs
YmFjayhzdGQ6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcnVuT3JE
ZWxheVRhc2tGb3JJbXBvcnQoW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRv
cE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMXSgpIG11dGFibGUgeworICAg
ICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVy
OworICAgICAgICBtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzLmFkZChjYWxsYmFja0lE
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6TWF0Y2hSZWdpc3RyYXRpb24oY2FsbGJhY2tJRCwgdG9wT3JpZ2luLCBjbGll
bnRVUkwpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJ1bk9y
RGVsYXlUYXNrRm9ySW1wb3J0KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCit7CisgICAg
aWYgKG1fc3dPcmlnaW5UYWJsZS0+aXNJbXBvcnRlZCgpKQorICAgICAgICB0YXNrKCk7CisgICAg
ZWxzZQorICAgICAgICBtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9ydC5hcHBlbmQoV1RGTW92ZSh0
YXNrKSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9u
UmVhZHkoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRV
UkwsIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91c0NhbGxiYWNrSWRlbnRpZmllcjsKKyAgICBt
X29uZ29pbmdSZWdpc3RyYXRpb25SZWFkeVRhc2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpXaGVu
UmVnaXN0cmF0aW9uUmVhZHkoY2FsbGJhY2tJRCwgdG9wT3JpZ2luLmRhdGEoKSwgY2xpZW50VVJM
KSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25SZWFkeSh1
aW50NjRfdCBjYWxsYmFja0lELCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSYmIHJlZ2lzdHJhdGlvbkRhdGEpCit7CisgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbkRhdGEuYWN0
aXZlV29ya2VyKTsKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fb25nb2luZ1JlZ2lzdHJhdGlv
blJlYWR5VGFza3MudGFrZShjYWxsYmFja0lEKSkKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShy
ZWdpc3RyYXRpb25EYXRhKSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRS
ZWdpc3RyYXRpb25zKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBj
bGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAoIW1heUhhdmVTZXJ2aWNlV29ya2VyUmVn
aXN0ZXJlZEZvck9yaWdpbih0b3BPcmlnaW4pKSB7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBydW5PckRlbGF5VGFza0ZvckltcG9ydChbdGhp
cywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9wT3JpZ2luID0gV1RGTW92ZSh0b3BP
cmlnaW4pLCBjbGllbnRVUkxdKCkgbXV0YWJsZSB7CisgICAgICAgIHVpbnQ2NF90IGNhbGxiYWNr
SUQgPSArK21fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXI7CisgICAgICAgIG1fb25nb2luZ0dl
dFJlZ2lzdHJhdGlvbnNUYXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwor
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkdldFJlZ2lzdHJh
dGlvbnMoY2FsbGJhY2tJRCwgdG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKKyAgICB9KTsKK30KKwor
dm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0RmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zJiBvcHRpb25zLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UgeyByZXF1ZXN0Lmh0dHBCb2R5KCkgfSwgcmVmZXJyZXIgfSk7
Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkNhbmNlbEZldGNo
IHsgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9
KTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlm
aWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRh
JiYgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBTV0NsaWVudENv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGRlc3RpbmF0aW9uQ29u
dGV4dElkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoc291cmNlKSwgc291cmNl
T3JpZ2luKTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub1Nl
cnZlckxvc3QoKQoreworICAgIGF1dG8gcmVnaXN0cmF0aW9uVGFza3MgPSBXVEZNb3ZlKG1fb25n
b2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3MpOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBy
ZWdpc3RyYXRpb25UYXNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0
KTsKKworICAgIGF1dG8gZ2V0UmVnaXN0cmF0aW9uVGFza3MgPSBXVEZNb3ZlKG1fb25nb2luZ0dl
dFJlZ2lzdHJhdGlvbnNUYXNrcyk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGdldFJlZ2lz
dHJhdGlvblRhc2tzLnZhbHVlcygpKQorICAgICAgICBjYWxsYmFjayh7IH0pOworCisgICAgY2xl
YXJQZW5kaW5nSm9icygpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c3luY1Rl
cm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IHNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVX
b3JrZXIoaWRlbnRpZmllciksIE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN5bmNU
ZXJtaW5hdGVXb3JrZXI6OlJlcGx5KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzMyNzliMmE1YjM1MmUzOWE5NTY3M2QyNzc1YzNlODlhMTFhODgyOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9TV0NsaWVudENvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklE
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Citz
dHJ1Y3QgRXhjZXB0aW9uRGF0YTsKK2NsYXNzIFJlc291cmNlTG9hZGVyOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU1dPcmlnaW5UYWJsZTsKK2NsYXNzIFdlYlNlcnZpY2VX
b3JrZXJQcm92aWRlcjsKKworY2xhc3MgV2ViU1dDbGllbnRDb25uZWN0aW9uIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRl
ciwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNX
Q2xpZW50Q29ubmVjdGlvbiB7IGNvbm5lY3Rpb24sIHNlc3Npb25JRCB9KTsgfQorICAgIH5XZWJT
V0NsaWVudENvbm5lY3Rpb24oKTsKKworICAgIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKworICAgIHZvaWQgYWRkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBm
aW5hbDsKKyAgICB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgZmluYWw7CisKKyAg
ICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNzKCk7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIGJv
b2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3RhcnRGZXRjaChX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJD
b3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKTsKKyAgICB2b2lkIGNh
bmNlbEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworCisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2lu
KTsKKworICAgIHZvaWQgY29ubmVjdGlvblRvU2VydmVyTG9zdCgpOworCisgICAgdm9pZCBzeW5j
VGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsK
KworcHJpdmF0ZToKKyAgICBXZWJTV0NsaWVudENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiwg
UEFMOjpTZXNzaW9uSUQpOworCisgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CisgICAgdm9pZCBmaW5pc2hGZXRj
aGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3Vs
dCYpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JD
bGllbnRJZGVudGlmaWVyJiBzb3VyY2UpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mKSBmaW5hbDsK
KyAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50
SWRlbnRpZmllcikgZmluYWw7CisKKyAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGll
bnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZGlkTWF0Y2hS
ZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik7CisgICAgdm9pZCBk
aWRHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIFZlY3Rv
cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik7CisgICAgdm9pZCB3
aGVuUmVnaXN0cmF0aW9uUmVhZHkoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9y
aWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIFdoZW5SZWdpc3RyYXRpb25SZWFk
eUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3Qg
Y2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJik7CisK
KyAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
dG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9u
c0NhbGxiYWNrJiYpIGZpbmFsOworCisgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJv
bWlzZShjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JikgZmluYWw7
CisKKyAgICB2b2lkIHNjaGVkdWxlUGF5bWVudEpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySm9iRGF0YSYpOworCisgICAgdm9pZCBydW5PckRlbGF5VGFza0ZvckltcG9ydChXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiB0YXNrKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAg
ICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZpbmFsIHsgcmV0dXJuIG1f
aWRlbnRpZmllci50b1VJbnQ2NCgpOyB9CisKKyAgICB2b2lkIHNldFNXT3JpZ2luVGFibGVTaGFy
ZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmKTsKKyAgICB2b2lkIHNldFNXT3Jp
Z2luVGFibGVJc0ltcG9ydGVkKCk7CisKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
KyAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsK
KworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBVbmlxdWVSZWY8
V2ViU1dPcmlnaW5UYWJsZT4gbV9zd09yaWdpblRhYmxlOworCisgICAgdWludDY0X3QgbV9wcmV2
aW91c0NhbGxiYWNrSWRlbnRpZmllciB7IDAgfTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWdp
c3RyYXRpb25DYWxsYmFjaz4gbV9vbmdvaW5nTWF0Y2hSZWdpc3RyYXRpb25UYXNrczsKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2s+IG1fb25nb2luZ0dldFJl
Z2lzdHJhdGlvbnNUYXNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXaGVuUmVnaXN0cmF0aW9u
UmVhZHlDYWxsYmFjaz4gbV9vbmdvaW5nUmVnaXN0cmF0aW9uUmVhZHlUYXNrczsKKyAgICBEZXF1
ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+IG1fdGFza3NQZW5kaW5nT3JpZ2luSW1wb3J0OworCit9
OyAvLyBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb24KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU0YjBhODIyYzdmNjQ3ZDkzOGZhYjUzNmI4ODc2
MmMzYzIzZmZiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQ3IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCisKK21lc3NhZ2VzIC0+IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CisgICAg
IyBXaGVuIHBvc3NpYmxlLCB0aGVzZSBtZXNzYWdlcyBjYW4gYmUgaW1wbGVtZW50ZWQgZGlyZWN0
bHkgYnkgV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb24KKyAgICBKb2JSZWplY3RlZEluU2Vy
dmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCisgICAgUmVnaXN0cmF0
aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmll
ciBqb2JEYXRhSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhIHJlZ2lzdHJhdGlvbiwgZW51bSBXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWQgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKQorICAgIFVucmVnaXN0cmF0aW9uSm9iUmVz
b2x2ZWRJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JEYXRh
SWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKKyAgICBTdGFydFNjcmlwdEZl
dGNoRm9yU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJh
dGlvbktleSwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkKKyAgICBV
cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25TdGF0ZSBzdGF0ZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0
YT4gc2VydmljZVdvcmtlcklkZW50aWZpZXIpCisgICAgVXBkYXRlV29ya2VyU3RhdGUoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGVudW0g
V2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlIHN0YXRlKQorICAgIEZpcmVVcGRhdGVGb3VuZEV2
ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisgICAgU2V0UmVnaXN0cmF0aW9uTGFzdFVwZGF0ZVRpbWUoV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2FsbFRpbWUgbGFzdFVwZGF0
ZVRpbWUpCisgICAgU2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2FjaGUoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bSBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUpOworICAgIE5vdGlmeUNs
aWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoSGFzaFNldDxXZWJDb3JlOjpEb2N1bWVudElkZW50aWZp
ZXI+IGNvbnRleHRJZGVudGlmaWVycywgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRh
IG5ld0NvbnRyb2xsZXIpCisKKyAgICBTZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpCisgICAg
U2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1lbW9yeShXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxl
IGhhbmRsZSkKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpE
b2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyRGF0YSBzb3VyY2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCisKKyAgICBEaWRN
YXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBkYXRhKQorICAg
IERpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgVmVj
dG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb25z
KQorICAgIFJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVz
dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSBkYXRhKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MWZiNDVmYTVjMzQ2ZDVhZDE2
ZTExMmMzNjhhNmNlYWFiMjFhN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGF5bWVudC9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTAs
MCArMSwzNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRm9ybURhdGFSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRGF0YWJhc2VQcm92aWRl
ci5oIgorI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVy
ZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViU29ja2V0
UHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRW1wdHlDbGllbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
QWdlbnQuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL1Byb2Nl
c3NJRC5oPgorCisjaWYgVVNFKFFVSUNLX0xPT0spCisjaW5jbHVkZSA8V2ViQ29yZS9QcmV2aWV3
TG9hZGVyQ2xpZW50Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1l
c3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyBjb25zdCBTZWNv
bmRzIGFzeW5jV29ya2VyVGVybWluYXRpb25UaW1lb3V0IHsgMTBfcyB9Oworc3RhdGljIGNvbnN0
IFNlY29uZHMgc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCB7IDEwMF9tcyB9OyAvLyBPbmx5
IHVzZWQgYnkgbGF5b3V0IHRlc3RzLgorCitjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJD
bGllbnQgZmluYWwgOiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7CitwdWJsaWM6Cisg
ICAgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCisgICAgICAg
IDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisgICAgICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lv
bklEKQorICAgICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAgICAgLCBtX2ZyYW1lSUQoZnJh
bWVJRCkKKyAgICAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQpCisgICAgeworICAgIH0KKwor
ICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCkgeyBtX3VzZXJBZ2VudCA9
IFdURk1vdmUodXNlckFnZW50KTsgfQorCitwcml2YXRlOgorICAgIFJlZjxEb2N1bWVudExvYWRl
cj4gY3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpIGZpbmFsCisgICAgeworICAgICAg
ICByZXR1cm4gV2ViRG9jdW1lbnRMb2FkZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0
YSk7CisgICAgfQorCisgICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIGZpbmFsIHsgbV9j
b25uZWN0aW9uLnJlbW92ZUZyYW1lTG9hZGVyQ2xpZW50KCp0aGlzKTsgfQorCisgICAgYm9vbCBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcp
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gcGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0KKyAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CisgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVy
biBtX3VzZXJBZ2VudDsgfQorCisgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1f
Y29ubmVjdGlvbjsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICB1aW50NjRf
dCBtX3BhZ2VJRCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07CisgICAgU3Ry
aW5nIG1fdXNlckFnZW50OworfTsKKworV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgdWludDY0X3QgcGFnZUdyb3VwSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUHJl
ZmVyZW5jZXNTdG9yZSYgc3RvcmUpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNz
KFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX3BhZ2VHcm91cElEKHBhZ2VHcm91cElEKQor
ICAgICwgbV9wYWdlSUQocGFnZUlEKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV91c2Vy
QWdlbnQoc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKHsgfSkpCisjZWxzZQor
ICAgICwgbV91c2VyQWdlbnQoc3RhbmRhcmRVc2VyQWdlbnQoKSkKKyNlbmRpZgoreworICAgIHVw
ZGF0ZVByZWZlcmVuY2VzU3RvcmUoc3RvcmUpOworfQorCitXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6fldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCit2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhdGVQcmVmZXJlbmNlc1N0b3Jl
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQoreworICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0U2VydmljZVdvcmtlckVuYWJsZWQodHJ1ZSk7
CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDYWNoZUFQ
SUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpjYWNo
ZUFQSUVuYWJsZWRLZXkoKSkpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0RmV0Y2hBUElFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6ZmV0Y2hBUElFbmFibGVkS2V5KCkpKTsKKyAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFVzZXJUaW1pbmdFbmFibGVkKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6dXNlclRpbWluZ0VuYWJsZWRLZXko
KSkpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0UmVz
b3VyY2VUaW1pbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6cmVzb3VyY2VUaW1pbmdFbmFibGVkS2V5KCkpKTsKKyAgICBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZldGNoQVBJS2VlcEFsaXZl
RW5hYmxlZEtleSgpKSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRSZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6cmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2Vzc0tleSgp
KSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRTZXJ2
ZXJUaW1pbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6c2VydmVyVGltaW5nRW5hYmxlZEtleSgpKSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJc1NlY3VyZUNvbnRleHRBdHRyaWJ1dGVFbmFibGVkKHN0
b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6aXNTZWN1cmVDb250ZXh0
QXR0cmlidXRlRW5hYmxlZEtleSgpKSk7CisKKy8vICAgIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
ID0gc3RhdGljX2Nhc3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3Rv
cmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1fc3RvcmFnZUJsb2Nr
aW5nUG9saWN5KCkpKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyIGZvciB3b3JrZXIg
JXMiLCBkYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKworLy8gICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24gewor
Ly8gICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCisvLyAgICAgICAgV2ViU29ja2V0
UHJvdmlkZXI6OmNyZWF0ZSgpLAorLy8gICAgICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVy
OjpjcmVhdGUoKSwKKy8vICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3Jh
Z2VQcm92aWRlcigpCisvLyAgICB9OworCisvLyAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdl
Q29uZmlndXJhdGlvbik7CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKy8vICAgIHBh
Z2VDb25maWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpn
ZXRPckNyZWF0ZShtX3BhZ2VHcm91cElEKTsKKyNlbmRpZgorCisgICAgLy8gRklYTUU6IFRoaXMg
bWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5h
Z2VyOjpDb25uZWN0aW9uCisgICAgLy8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZy
YW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBj
b3VsZCBhbHJlYWR5IGhhcHBlbi4KKyAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9u
SUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQsIG1fdXNlckFnZW50KTsK
Ky8vICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IGZyYW1l
TG9hZGVyQ2xpZW50LmdldCgpOworICAgIG1fbG9hZGVycy5hZGQoV1RGTW92ZShmcmFtZUxvYWRl
ckNsaWVudCkpOworCisvLyAgICBhdXRvIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBk
YXRhLCBzZXNzaW9uSUQsIFN0cmluZyB7IG1fdXNlckFnZW50IH0sIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmNhY2hlUGF5bWVudFByb3ZpZGVyKCksIG1fcGF5bWVudEJsb2NraW5nUG9saWN5KTsK
Ky8vICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnJlZ2lzdGVyU2VydmljZVdvcmtl
clRocmVhZEZvckluc3RhbGwoV1RGTW92ZShzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpKTsKKwor
ICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ29udGV4dCBwcm9jZXNzIFBJRDogJWkgY3JlYXRlZCB3
b3JrZXIgdGhyZWFkXG4iLCBnZXRDdXJyZW50UHJvY2Vzc0lEKCkpOworfQorCit2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50
KQoreworICAgIG1fdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpOworfQorCit2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpyZW1vdmVGcmFtZUxvYWRlckNsaWVudChTZXJ2
aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9
IG1fbG9hZGVycy5yZW1vdmUoJmNsaWVudCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJl
c3VsdCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNlcnZpY2VX
b3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0
YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQor
eworICAgIGlmIChleGNlcHRpb25NZXNzYWdlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpTY3JpcHRDb250ZXh0U3RhcnRlZChqb2JEYXRhSWRlbnRpZmllciwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpLCAwKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvblRv
TmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjo6U2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoam9iRGF0YUlkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBleGNlcHRpb25NZXNzYWdlKSwgMCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1ZhbGlkRmV0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBGZXRjaE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFVSTCYgc2VydmljZVdvcmtlclVSTCwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcikKK3sKKyAgICAvLyBGb3IgZXhvdGljIHNlcnZpY2Ugd29y
a2VycywgZG8gbm90IGVuZm9yY2UgY2hlY2tzLgorICAgIGlmICghc2VydmljZVdvcmtlclVSTC5w
cm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYg
KG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKSB7CisgICAgICAg
IGlmICghcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHJlcXVlc3QudXJsKCksIHNlcnZpY2VX
b3JrZXJVUkwpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2Vy
LCAiU2hvdWxkIG5vdCBpbnRlcmNlcHQgYSBuYXZpZ2F0aW9uIGxvYWQgdGhhdCBpcyBub3Qgc2Ft
ZS1vcmlnaW4gYXMgdGhlIHNlcnZpY2Ugd29ya2VyIFVSTCIpOworICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfV0lUSF9NRVNTQUdFKHJlcXVlc3QudXJsKCkuaG9zdCgpID09IHNlcnZpY2VXb3Jr
ZXJVUkwuaG9zdCgpLCAiSG9zdHMgZG8gbm90IG1hdGNoIik7CisgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX01FU1NBR0UocmVxdWVzdC51cmwoKS5wcm90b2NvbCgpID09IHNlcnZpY2VX
b3JrZXJVUkwucHJvdG9jb2woKSwgIlByb3RvY29scyBkbyBub3QgbWF0Y2giKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShyZXF1ZXN0LnVybCgpLnBvcnQoKSA9PSBz
ZXJ2aWNlV29ya2VyVVJMLnBvcnQoKSwgIlBvcnRzIGRvIG5vdCBtYXRjaCIpOworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIFN0cmluZyBvcmlnaW4gPSByZXF1ZXN0Lmh0dHBPcmlnaW4oKTsKKyAgICBVUkwgdXJs
IHsgVVJMKCksIG9yaWdpbi5pc0VtcHR5KCkgPyByZWZlcnJlciA6IG9yaWdpbiB9OworICAgIGlm
ICh1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFwcm90b2NvbEhvc3RBbmRQb3J0QXJl
RXF1YWwodXJsLCBzZXJ2aWNlV29ya2VyVVJMKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihTZXJ2aWNlV29ya2VyLCAiU2hvdWxkIG5vdCBpbnRlcmNlcHQgYSBub24gbmF2aWdhdGlvbiBs
b2FkIHRoYXQgaXMgbm90IG9yaWdpbmF0aW5nIGZyb20gYSBzYW1lLW9yaWdpbiBjb250ZXh0IGFz
IHRoZSBzZXJ2aWNlIHdvcmtlciBVUkwiKTsKKyAgICAgICAgQVNTRVJUKHVybC5ob3N0KCkgPT0g
c2VydmljZVdvcmtlclVSTC5ob3N0KCkpOworICAgICAgICBBU1NFUlQodXJsLnByb3RvY29sKCkg
PT0gc2VydmljZVdvcmtlclVSTC5wcm90b2NvbCgpKTsKKyAgICAgICAgQVNTRVJUKHVybC5wb3J0
KCkgPT0gc2VydmljZVdvcmtlclVSTC5wb3J0KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBpZiAo
YXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xl
dG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkK
KyAgICAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5jYW5jZWxGZXRjaChzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwg
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlcikKK3sKKyAgICBh
dXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0
b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwor
ICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFByb3h5KSB7CisgICAgICAgIG1fY29ubmVjdGlv
blRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWROb3RI
YW5kbGVGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIg
fSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWlzVmFsaWRGZXRjaChy
ZXF1ZXN0LCBvcHRpb25zLCBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnNjcmlwdFVSTCgpLCBy
ZWZlcnJlcikpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dDo6Y3JlYXRlKG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MuY29weVJlZigpLCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRp
Zmllcik7CisgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4g
Y2xpZW50SWQ7CisgICAgaWYgKG9wdGlvbnMuY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgY2xp
ZW50SWQgPSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBvcHRpb25zLmNsaWVudElkZW50aWZpZXIudmFsdWUoKSB9OworCisgICAgcmVx
dWVzdC5zZXRIVFRQQm9keShmb3JtRGF0YS50YWtlRGF0YSgpKTsKKyAgICBzZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHktPnN0YXJ0RmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNo
SWRlbnRpZmllciwgV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucykpOworfQorCit2b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNv
dXJjZURhdGEpCit7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25JZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2Up
LCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmZpcmVJbnN0YWxsRXZl
bnQoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuZmlyZUFjdGl2YXRlRXZlbnQoaWRl
bnRpZmllcik7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnRlcm1p
bmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFNX
Q29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVdvcmtlcihpZGVudGlmaWVyLCBh
c3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgbnVsbHB0cik7Cit9CisKK3ZvaWQgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAg
ICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVXb3JrZXIoaWRlbnRpZmll
ciwgc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgV1RGTW92ZShyZXBseSkpOworfQorCit2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3Jp
Z2luKQoreworICAgIC8vIEZJWE1FOiBUZW1wb3JhcmlseSBwaXBlIHRoZSBTVyBwb3N0TWVzc2Fn
ZSBtZXNzYWdlcyB2aWEgdGhlIFVJUHJvY2VzcyBzaW5jZSB0aGlzIGlzIHdoZXJlIHRoZSBNZXNz
YWdlUG9ydCByZWdpc3RyeSBsaXZlcworICAgIC8vIGFuZCB0aGlzIGF2b2lkcyByYWNlcy4KKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLCBX
VEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pLCAwKTsKK30K
Kwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmluaXNoSW5zdGFsbChz
dGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBi
b29sIHdhc1N1Y2Nlc3NmdWwpCit7CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpEaWRGaW5pc2hJ
bnN0YWxsKGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3Vj
Y2Vzc2Z1bCksIDApOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpk
aWRGaW5pc2hBY3RpdmF0aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKQoreworICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6RGlkRmluaXNoQWN0aXZhdGlv
bihzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIDApOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5n
RXZlbnRzKQoreworICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2V0U2VydmljZVdvcmtlckhhc1Bl
bmRpbmdFdmVudHMoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGhhc1BlbmRpbmdFdmVudHMpLCAw
KTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2tpcFdhaXRpbmco
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9ICsrbV9w
cmV2aW91c1JlcXVlc3RJZGVudGlmaWVyOworICAgIG1fc2tpcFdhaXRpbmdSZXF1ZXN0cy5hZGQo
Y2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6
U2tpcFdhaXRpbmcoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNhbGxiYWNrSUQpLCAwKTsKK30K
Kwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0U2NyaXB0UmVzb3VyY2Uo
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0JiBz
Y3JpcHQpCit7CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTZXRTY3JpcHRSZXNvdXJjZSB7IHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCB1cmwsIHNjcmlwdC5zY3JpcHQsIHNjcmlwdC5yZXNwb25z
ZVVSTCwgc2NyaXB0Lm1pbWVUeXBlIH0sIDApOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V29ya2Vy
VGVybWluYXRlZChzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIDApOworfQorCit2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVu
dGlmaWVyQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVy
ID0gKyttX3ByZXZpb3VzUmVxdWVzdElkZW50aWZpZXI7CisgICAgbV9maW5kQ2xpZW50QnlJZGVu
dGlmaWVyUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpGaW5kQ2xpZW50QnlJZGVudGlmaWVyIHsgcmVxdWVz
dElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyIH0s
IDApOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaW5kQ2xpZW50
QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmIGNsaWVudERhdGEsIGJvb2wgaGFzU2Vj
dXJpdHlFcnJvcikKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fZmluZENsaWVudEJ5SWRl
bnRpZmllclJlcXVlc3RzLnRha2UocmVxdWVzdElkZW50aWZpZXIpKSB7CisgICAgICAgIGlmICho
YXNTZWN1cml0eUVycm9yKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBTZWN1
cml0eUVycm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNh
bGxiYWNrKFdURk1vdmUoY2xpZW50RGF0YSkpOworICAgIH0KK30KKwordm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0Y2hBbGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRR
dWVyeU9wdGlvbnMmIG9wdGlvbnMsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFj
ayYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlv
dXNSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBtX21hdGNoQWxsUmVxdWVzdHMuYWRkKHJlcXVlc3RJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3Jr
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpN
YXRjaEFsbCB7IHJlcXVlc3RJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0
aW9ucyB9LCAwKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0
Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YT4mJiBjbGllbnRzRGF0YSkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFj
ayA9IG1fbWF0Y2hBbGxSZXF1ZXN0cy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKSkKKyAgICAgICAg
Y2FsbGJhY2soV1RGTW92ZShjbGllbnRzRGF0YSkpOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpjbGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxi
YWNrKQoreworICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNSZXF1ZXN0
SWRlbnRpZmllcjsKKyAgICBtX2NsYWltUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpDbGFpbSB7IHJlcXVl
c3RJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xh
aW1SZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2xhaW1S
ZXF1ZXN0cy50YWtlKGNsYWltUmVxdWVzdElkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjaygp
OworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hTa2lw
V2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0g
bV9za2lwV2FpdGluZ1JlcXVlc3RzLnRha2UoY2FsbGJhY2tJRCkpCisgICAgICAgIGNhbGxiYWNr
KCk7Cit9CisKK05PX1JFVFVSTiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp0
ZXJtaW5hdGVQcm9jZXNzKCkKK3sKKyAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2Vy
dmljZSB3b3JrZXIgcHJvY2VzcyBpcyBleGl0aW5nIGJlY2F1c2UgaXQgaXMgbm8gbG9uZ2VyIG5l
ZWRlZCIpOworICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMzljZTg0NDdlNTYyOTBhODBlMzFmMzFlOTg5
OWYyMTZmNDZkYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGF5bWVudC9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsMTExIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEZldGNoT3B0aW9uczsKK2NsYXNzIFJlc291cmNl
UmVxdWVzdDsKK3N0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ7CitzdHJ1
Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKKworY2xhc3MgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlv
biwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCB1aW50NjRfdCBwYWdl
R3JvdXBJRCwgdWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7Cisg
ICAgfldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYs
IHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKKyAgICB2b2lkIHJlbW92
ZUZyYW1lTG9hZGVyQ2xpZW50KFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCYpOworCitw
cml2YXRlOgorICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJik7CisKKyAgICAvLyBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0
aW9uLgorICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmln
aW4pIGZpbmFsOworICAgIHZvaWQgZGlkRmluaXNoSW5zdGFsbChzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpIGZpbmFsOworICAgIHZvaWQgZGlkRmlu
aXNoQWN0aXZhdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Cisg
ICAgdm9pZCBzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCkgZmluYWw7CisgICAgdm9pZCB3b3JrZXJUZXJtaW5hdGVk
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGZpbmRD
bGllbnRCeUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVy
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBtYXRjaEFsbChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0
aW9ucyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKSBm
aW5hbDsKKyAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgc2tpcFdhaXRpbmco
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJikgZmlu
YWw7CisgICAgdm9pZCBzZXRTY3JpcHRSZXNvdXJjZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCYpIGZpbmFsOworCisgICAgLy8gSVBDIG1lc3Nh
Z2VzLgorICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZp
bmFsOworICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgc3RhcnRGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIpOworICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CisgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5h
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKKyAgICB2b2lkIGZp
cmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHZv
aWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwor
ICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rl
cm1pbmF0ZVdvcmtlcjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZmluZENsaWVudEJ5SWRl
bnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiwgYm9vbCBoYXNTZWN1cml0eUVy
cm9yKTsKKyAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVz
dElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik7
CisgICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwor
ICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCk7CisgICAgdm9pZCB0ZXJt
aW5hdGVQcm9jZXNzKCk7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25U
b05ldHdvcmtQcm9jZXNzOworICAgIHVpbnQ2NF90IG1fcGFnZUdyb3VwSUQ7CisgICAgdWludDY0
X3QgbV9wYWdlSUQgeyAwIH07CisgICAgdWludDY0X3QgbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJ
RCB7IDAgfTsKKworLy8gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlBheW1lbnRCbG9ja2lu
Z1BvbGljeSBtX3BheW1lbnRCbG9ja2luZ1BvbGljeSB7IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpQYXltZW50QmxvY2tpbmdQb2xpY3k6OkFsbG93QWxsUGF5bWVudCB9OworCisgICAgSGFzaFNl
dDxzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Pj4gbV9sb2Fk
ZXJzOworICAgIEhhc2hNYXA8dWludDY0X3QsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFj
az4gbV9maW5kQ2xpZW50QnlJZGVudGlmaWVyUmVxdWVzdHM7CisgICAgSGFzaE1hcDx1aW50NjRf
dCwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrPiBtX21hdGNo
QWxsUmVxdWVzdHM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+PiBtX2NsYWltUmVxdWVzdHM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+PiBtX3NraXBXYWl0aW5nUmVxdWVzdHM7CisgICAgdWludDY0X3QgbV9w
cmV2aW91c1JlcXVlc3RJZGVudGlmaWVyIHsgMCB9OworICAgIFN0cmluZyBtX3VzZXJBZ2VudDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGF5bWVudC9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YTZiN2E5OTRiMjdiNDYxNzc2ODhiMjczNmUwOTUzOWU1NWUyNmNiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0MyBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQorCittZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7Cisg
ICAgSW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSBjb250ZXh0RGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIFN0YXJ0
RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFN0cmlu
ZyByZWZlcnJlcikKKyAgICBDYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllcikKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhIHNvdXJjZURhdGEpCisgICAgRmlyZUluc3RhbGxFdmVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIEZpcmVB
Y3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CisgICAgVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCisgICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBEZWxheWVkCisgICAgRmluZENsaWVudEJ5SWRl
bnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRhLCBib29sIGhh
c1NlY3VyaXR5RXJyb3IpCisgICAgTWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxS
ZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRh
PiBjbGllbnRzRGF0YSkKKyAgICBDbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJ
ZGVudGlmaWVyKQorICAgIERpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQp
CisgICAgU2V0VXNlckFnZW50KFN0cmluZyB1c2VyQWdlbnQpCisgICAgVXBkYXRlUHJlZmVyZW5j
ZXNTdG9yZShzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlKQorICAgIFRl
cm1pbmF0ZVByb2Nlc3MoKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dPcmlnaW5U
YWJsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV09yaWdpblRh
YmxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZmRlNGFhZmQ5NGMyMmE5YWFiOGViZGM2ZTU1ODAwZDEyZGQ4
MjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQv
V2ViU1dPcmlnaW5UYWJsZS5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisjaW5jbHVkZSAiV2Vi
U1dPcmlnaW5UYWJsZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitib29sIFdl
YlNXT3JpZ2luVGFibGU6OmNvbnRhaW5zKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2lu
KSBjb25zdAoreworICAgIHJldHVybiBtX3NlcnZpY2VXb3JrZXJPcmlnaW5UYWJsZS5jb250YWlu
cyhjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4udG9TdHJpbmcoKSkpOworfQorCit2b2lk
IFdlYlNXT3JpZ2luVGFibGU6OnNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6Okhh
bmRsZSYgaGFuZGxlKQoreworICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5Ojpt
YXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBpZiAo
IXNoYXJlZE1lbW9yeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zZXJ2aWNlV29ya2VyT3Jp
Z2luVGFibGUuc2V0U2hhcmVkTWVtb3J5KHNoYXJlZE1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dl
YlNXT3JpZ2luVGFibGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNX
T3JpZ2luVGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjBjOTAzMDBiMmU1NDQ5M2ZhZGUyMTE5NjY2ODk1
MGQ1YmI3MGFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bh
eW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJTaGFy
ZWRNZW1vcnkuaCIKKyNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU1dPcmlnaW5UYWJsZSB7CitwdWJsaWM6Cisg
ICAgV2ViU1dPcmlnaW5UYWJsZSgpID0gZGVmYXVsdDsKKworICAgIGJvb2wgaXNJbXBvcnRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNJbXBvcnRlZDsgfQorICAgIHZvaWQgc2V0SXNJbXBvcnRlZCgp
IHsgbV9pc0ltcG9ydGVkID0gdHJ1ZTsgfQorICAgIGJvb2wgY29udGFpbnMoY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3Q7CisgICAgdm9pZCBzZXRTaGFyZWRNZW1vcnko
Y29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmKTsKKworcHJpdmF0ZToKKyAgICBTaGFyZWRTdHJp
bmdIYXNoVGFibGVSZWFkT25seSBtX3NlcnZpY2VXb3JrZXJPcmlnaW5UYWJsZTsKKyAgICBib29s
IG1faXNJbXBvcnRlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY2ODg4Y2NlODU3OGM2NDFkOWJjMzJjZDI0NWY3
NmQyNzE1NDNhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC0wLDAgKzEsMTcw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisK
KyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6On5XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KCkK
K3sKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW2Nvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fY29ubmVjdGlvbildIHsgfSk7Cit9CisKK1dlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5l
Y3Rpb24pKQorICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikKKyAgICAsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIoc2VydmljZVdv
cmtlcklkZW50aWZpZXIpCisgICAgLCBtX2ZldGNoSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIp
Cit7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmICgh
bV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyBtX3NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UgfSwgMCk7
Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZURh
dGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybjsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHsgYnVmZmVyIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+
KGJ1ZmZlci0+c2l6ZSgpKSB9LCAwKTsKK30KKwordm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmIGZv
cm1EYXRhKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHNlbmQgdGhpcyBmb3JtIGRhdGEgdG8gdGhlIG90aGVyIHBy
b2Nlc3MgYW5kIGNvbnN1bWUgaXQgdGhlcmUuCisgICAgLy8gRm9yIG5vdyBhbmQgZm9yIHRoZSBj
YXNlIG9mIGJsb2JzLCB3ZSByZWFkIGl0IHRoZXJlIGFuZCBzZW5kIHRoZSBkYXRhIHRocm91Z2gg
SVBDLgorICAgIFVSTCBibG9iVVJMID0gZm9ybURhdGEtPmFzQmxvYlVSTCgpOworICAgIGlmIChi
bG9iVVJMLmlzTnVsbCgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhIHsgbV9zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
eyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBibG9iVVJMID0gYmxvYlVSTC5pc29sYXRlZENvcHkoKV0gKCkgeworICAgICAgICBhdXRvKiBz
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5z
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkobV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAg
ICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFByb3h5KSB7CisgICAgICAgICAgICBkaWRGYWls
KGludGVybmFsRXJyb3IoYmxvYlVSTCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgbV9ibG9iTG9hZGVyLmVtcGxhY2UoKnRoaXMpOworICAgICAgICBhdXRvIGxv
YWRlciA9IHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+Y3JlYXRlQmxvYkxvYWRlcigqbV9ibG9i
TG9hZGVyLCBibG9iVVJMKTsKKyAgICAgICAgaWYgKCFsb2FkZXIpIHsKKyAgICAgICAgICAgIG1f
YmxvYkxvYWRlciA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIGRpZEZhaWwoaW50ZXJuYWxF
cnJvcihibG9iVVJMKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBtX2Jsb2JMb2FkZXItPmxvYWRlciA9IFdURk1vdmUobG9hZGVyKTsKKyAgICB9KTsKK30KKwor
dm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlQmxvYkNodW5r
KGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQoreworICAgIGlmICghbV9jb25uZWN0aW9u
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4oZGF0YSksIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgMCk7Cit9
CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmluaXNoQmxvYkxv
YWRpbmcoKQoreworICAgIGRpZEZpbmlzaCgpOworCisgICAgc3RkOjpleGNoYW5nZShtX2Jsb2JM
b2FkZXIsIHN0ZDo6bnVsbG9wdCk7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAo
IW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkRmFpbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIGVycm9yIH0sIDApOworCisgICAgY2xl
YW51cCgpOworfQorCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZp
bmlzaCgpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZEZpbmlzaEZl
dGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSwg
MCk7CisKKyAgICBjbGVhbnVwKCk7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkTm90SGFuZGxlKCkKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6RGlkTm90SGFuZGxlRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBt
X2ZldGNoSWRlbnRpZmllciB9LCAwKTsKKworICAgIGNsZWFudXAoKTsKK30KKwordm9pZCBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjYW5jZWwoKQoreworICAgIG1fY29ubmVjdGlv
biA9IG51bGxwdHI7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6
Y2xlYW51cCgpCit7CisgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKworICAgIGlmICghaXNN
YWluVGhyZWFkKCkpIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSAoKSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jbGVhbnVw
KCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChhdXRvKiBz
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5z
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkobV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcikpCisgICAg
ICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+cmVtb3ZlRmV0Y2gobV9zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGEzODI1NDI0YmFlMWZiNWIxZDRmNjk2
YmYyNGZjMDAyYjM4NjJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCkBAIC0wLDAgKzEs
ODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElk
ZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoTG9hZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GZXRjaExvYWRlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdv
cmtlckZldGNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudD4g
Y3JlYXRlKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsICBXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hUYXNrSWRlbnRpZmllcikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoV1RG
TW92ZShjb25uZWN0aW9uKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaFRhc2tJZGVudGlmaWVyKSk7CisgICAgfQorCisgICAgfldlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOworICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgZmluYWw7CisgICAg
dm9pZCBkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPFdlYkNvcmU6OkZvcm1EYXRhPiYm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZEZhaWwoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYp
IGZpbmFsOworICAgIHZvaWQgZGlkRmluaXNoKCkgZmluYWw7CisgICAgdm9pZCBkaWROb3RIYW5k
bGUoKSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbCgpIGZpbmFsOworCisgICAgdm9pZCBjbGVhbnVw
KCk7CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlQmxvYkNodW5rKGNvbnN0IGNoYXIqIGRhdGEs
IHNpemVfdCBzaXplKTsKKyAgICB2b2lkIGRpZEZpbmlzaEJsb2JMb2FkaW5nKCk7CisKKyAgICBz
dHJ1Y3QgQmxvYkxvYWRlciBmaW5hbCA6IFdlYkNvcmU6OkZldGNoTG9hZGVyQ2xpZW50IHsKKyAg
ICAgICAgZXhwbGljaXQgQmxvYkxvYWRlcihXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
JiBjbGllbnQpIDogY2xpZW50KGNsaWVudCkgeyB9CisKKyAgICAgICAgLy8gRmV0Y2hMb2FkZXJD
bGllbnQgQVBJCisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlRGF0
YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkgZmluYWwgeyBjbGllbnQtPmRpZFJlY2Vp
dmVCbG9iQ2h1bmsoZGF0YSwgc2l6ZSk7IH0KKyAgICAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKSBmaW5hbCB7IGNsaWVudC0+ZGlkRmFpbChlcnJv
cik7IH0KKyAgICAgICAgdm9pZCBkaWRTdWNjZWVkKCkgZmluYWwgeyBjbGllbnQtPmRpZEZpbmlz
aEJsb2JMb2FkaW5nKCk7IH0KKworICAgICAgICBSZWY8V2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudD4gY2xpZW50OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RmV0Y2hM
b2FkZXI+IGxvYWRlcjsKKyAgICB9OworCisgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOworICAgIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgbV9z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciBtX2ZldGNoSWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlvbmFsPEJsb2JMb2FkZXI+
IG1fYmxvYkxvYWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjg2MDU1YzcyNGIyMzg5YmI2ODUxYzA0MTlmZDUxNTJjZWNhMTVkZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJQ
cm92aWRlci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCisKKyNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiV2ViU1dDbGllbnRDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9DYWNoZWRSZXNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Db2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hl
bWVSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckpvYi5oPgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYgV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXI+IHByb3ZpZGVyOworICAgIHJldHVybiBwcm92aWRlcjsKK30K
KworV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIoKQor
eworfQorCitXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24mIFdlYlNlcnZpY2VXb3JrZXJQcm92
aWRlcjo6c2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9u
SUQpCit7CisgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOworICAgIHJldHVybiBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lvbklEKTsKK30KKworV2ViQ29yZTo6
U1dDbGllbnRDb25uZWN0aW9uKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OmV4aXN0aW5nU2Vy
dmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCit7Cisg
ICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOworICAgIGF1dG8qIG5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCk7CisgICAgaWYgKCFuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24t
PmV4aXN0aW5nU2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKHNlc3Npb25JRCk7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRIYW5kbGVGZXRjaChjb25zdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgaWYgKG9wdGlvbnMuc2VydmljZVdvcmtlcnNN
b2RlID09IFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKGlzUG90ZW50aWFsTmF2aWdhdGlvbk9yU3VicmVzb3VyY2VSZXF1ZXN0KG9wdGlv
bnMuZGVzdGluYXRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gISFv
cHRpb25zLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyOworfQorCit2b2lkIFdl
YlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6aGFuZGxlRmV0Y2goUmVzb3VyY2VMb2FkZXImIGxvYWRl
ciwgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgU2VydmljZVdvcmtl
ckNsaWVudEZldGNoOjpDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghU2NoZW1lUmVn
aXN0cnk6OmNhblNlcnZpY2VXb3JrZXJzSGFuZGxlVVJMU2NoZW1lKGxvYWRlci5yZXF1ZXN0KCku
dXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpIHx8ICFzaG91bGRIYW5k
bGVGZXRjaChsb2FkZXIub3B0aW9ucygpKSkgeworICAgICAgICBjYWxsYmFjayhTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2g6OlJlc3VsdDo6VW5oYW5kbGVkKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNl
c3Npb24oc2Vzc2lvbklEKTsKKyAgICBhdXRvIGZldGNoSWRlbnRpZmllciA9IG1ha2VPYmplY3RJ
ZGVudGlmaWVyPEZldGNoSWRlbnRpZmllclR5cGU+KGxvYWRlci5pZGVudGlmaWVyKCkpOworICAg
IG1fb25nb2luZ0ZldGNoVGFza3MuYWRkKGZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNs
aWVudEZldGNoOjpjcmVhdGUoKnRoaXMsIGxvYWRlciwgZmV0Y2hJZGVudGlmaWVyLCBjb25uZWN0
aW9uLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBXVEZNb3ZlKGNh
bGxiYWNrKSkpOworfQorCitib29sIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6Y2FuY2VsRmV0
Y2goRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGZldGNoID0g
bV9vbmdvaW5nRmV0Y2hUYXNrcy50YWtlKGZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKGZldGNo
KQorICAgICAgICAoKmZldGNoKS0+Y2FuY2VsKCk7CisgICAgcmV0dXJuICEhZmV0Y2g7Cit9CisK
K3ZvaWQgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpmZXRjaEZpbmlzaGVkKEZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIpCit7CisgICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy50YWtlKGZl
dGNoSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpkaWRS
ZWNlaXZlU2VydmljZVdvcmtlckNsaWVudEZldGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoYXV0byBmZXRjaCA9
IG1fb25nb2luZ0ZldGNoVGFza3MuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPEZldGNoSWRlbnRp
ZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkpCisgICAgICAgIGZldGNoLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJQcm92
aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIyZmIxYmY4NTA1NWE1MDUxZTZjYTQwYTU5NWM2MzYzNzJmNDc4
MGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
UHJvdmlkZXIuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgQ2FjaGVkUmVzb3VyY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6U2VydmljZVdvcmtlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyJiBzaW5nbGV0b24oKTsKKworICAgIHZvaWQgaGFuZGxlRmV0Y2goV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXImLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSosIFBBTDo6U2Vz
c2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6Q2FsbGJhY2smJik7CisgICAgYm9vbCBjYW5jZWxGZXRj
aChXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgZmV0Y2hGaW5pc2hlZChXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIpOworCisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmljZVdvcmtl
ckNsaWVudEZldGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTZXJ2aWNlV29ya2VyQ2xpZW50UmVnaXN0cmF0aW9uTWF0Y2goSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIE5l
dmVyRGVzdHJveWVkPFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcj47CisgICAgV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyKCk7CisKKyAgICBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24qIGV4aXN0
aW5nU2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKSBmaW5h
bDsKKyAgICBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uRm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCkgZmluYWw7CisKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaD4+IG1fb25n
b2luZ0ZldGNoVGFza3M7Cit9OyAvLyBjbGFzcyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVu
dC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYyZTUzNTk5
Yzg4N2JjYjI0ODQxYjIxMzExYmQyZjMzNjgxMmRjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisK
KyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1h
bmFnZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
OjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7
CisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIG1fY29ubmVj
dGlvbi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9p
ZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQoreworCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBhdXRvIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOworfQorCit2b2lkIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJjMmUyNTFjZjgwNGRhMmMzYzQ4ZDIxYzIzMTAw
NTU5YmI2NjQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50L1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NX
U2VydmVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gOiBw
dWJsaWMgUmVmQ291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHByaXZhdGUg
SVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBjcmVh
dGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKwor
ICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2Uo
SVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisg
ICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQor
ICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1
cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2guY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWRhMTEwMjMyYjFhMDlmZGU4NTZiNGQwOTU5ZDIxNmU3ZTkzOTA5YS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MzA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
U2VydmljZVdvcmtlckNsaWVudEZldGNoLmgiCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
Ci0KLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmgiCi0jaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L0RvY3VtZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1SZWY8U2VydmljZVdvcmtlckNsaWVudEZldGNoPiBTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2g6OmNyZWF0ZShXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXImIHNlcnZpY2VXb3JrZXJQ
cm92aWRlciwgUmVmPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiYmIGxvYWRlciwgRmV0Y2hJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFJlZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+JiYgY29ubmVjdGlv
biwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBDYWxsYmFj
ayYmIGNhbGxiYWNrKQotewotICAgIGF1dG8gZmV0Y2ggPSBhZG9wdFJlZigqbmV3IFNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaCB7IHNlcnZpY2VXb3JrZXJQcm92aWRlciwgV1RGTW92ZShsb2FkZXIp
LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBXVEZNb3ZlKGNhbGxiYWNrKSB9KTsKLSAgICBmZXRjaC0+c3Rh
cnQoKTsKLSAgICByZXR1cm4gZmV0Y2g7Ci19Ci0KLVNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6
flNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCgpCi17Ci19Ci0KLVNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYg
c2VydmljZVdvcmtlclByb3ZpZGVyLCBSZWY8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+JiYgbG9h
ZGVyLCBGZXRjaElkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYlNXQ2xpZW50Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIENhbGxiYWNrJiYgY2FsbGJhY2spCi0gICAgOiBtX3NlcnZpY2VXb3JrZXJQcm92aWRl
cihzZXJ2aWNlV29ya2VyUHJvdmlkZXIpCi0gICAgLCBtX2xvYWRlcihXVEZNb3ZlKGxvYWRlcikp
Ci0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fY29ubmVjdGlvbihXVEZN
b3ZlKGNvbm5lY3Rpb24pKQotICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKLSAg
ICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQotewotfQotCi12b2lkIFNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaDo6c3RhcnQoKQotewotICAgIGF1dG8gcmVxdWVzdCA9IG1fbG9hZGVyLT5y
ZXF1ZXN0KCk7Ci0gICAgYXV0byYgb3B0aW9ucyA9IG1fbG9hZGVyLT5vcHRpb25zKCk7Ci0KLSAg
ICBhdXRvIHJlZmVycmVyID0gcmVxdWVzdC5odHRwUmVmZXJyZXIoKTsKLQotICAgIG1fZGlkRmFp
bCA9IGZhbHNlOwotICAgIG1fZGlkRmluaXNoID0gZmFsc2U7Ci0KLSAgICAvLyBXZSBhcmUgaW50
ZXJjZXB0aW5nIGZldGNoIGNhbGxzIGFmdGVyIGdvaW5nIHRocm91Z2ggdGhlIEhUVFAgbGF5ZXIs
IHdoaWNoIG1heSBhZGQgc29tZSBzcGVjaWZpYyBoZWFkZXJzLgotICAgIGNsZWFuSFRUUFJlcXVl
c3RIZWFkZXJzRm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBvcHRpb25zLmh0dHBIZWFkZXJzVG9L
ZWVwKTsKLQotICAgIEFTU0VSVChvcHRpb25zLnNlcnZpY2VXb3JrZXJzTW9kZSAhPSBTZXJ2aWNl
V29ya2Vyc01vZGU6Ok5vbmUpOwotICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgPSBvcHRpb25zLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLnZhbHVl
KCk7Ci0gICAgbV9jb25uZWN0aW9uLT5zdGFydEZldGNoKG1faWRlbnRpZmllciwgbV9zZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgcmVmZXJyZXIp
OwotCi0gICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lOwot
fQotCi0vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaHR0cC1mZXRjaCBzdGVwIDMu
Mwotc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVycm9yPiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6
OnZhbGlkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgLy8gRklYTUU6IG1ha2UgYSBiZXR0ZXIgZXJyb3IgcmVwb3J0aW5nLgotICAgIGlmIChyZXNw
b25zZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6RXJyb3IpCi0gICAgICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yIHsgUmVzb3VyY2VFcnJvcjo6VHlwZTo6R2VuZXJhbCB9OwotCi0g
ICAgYXV0byYgb3B0aW9ucyA9IG1fbG9hZGVyLT5vcHRpb25zKCk7Ci0gICAgaWYgKG9wdGlvbnMu
bW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycyAmJiByZXNwb25zZS50YWludGluZygp
ID09IFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nOjpPcGFxdWUpCi0gICAgICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVzcG9uc2UudXJs
KCksICJSZXNwb25zZSBzZXJ2ZWQgYnkgc2VydmljZSB3b3JrZXIgaXMgb3BhcXVlIl9zLCBSZXNv
dXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH07Ci0KLSAgICAvLyBOYXZpZ2F0ZSBtb2Rl
IGluZHVjZXMgbWFudWFsIHJlZGlyZWN0LgotICAgIGlmIChvcHRpb25zLnJlZGlyZWN0ICE9IEZl
dGNoT3B0aW9uczo6UmVkaXJlY3Q6Ok1hbnVhbCAmJiBvcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRp
b25zOjpNb2RlOjpOYXZpZ2F0ZSAmJiByZXNwb25zZS50YWludGluZygpID09IFJlc291cmNlUmVz
cG9uc2U6OlRhaW50aW5nOjpPcGFxdWVyZWRpcmVjdCkKLSAgICAgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZXNwb25zZS51cmwoKSwgIlJl
c3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBpcyBvcGFxdWUgcmVkaXJlY3QiX3MsIFJl
c291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfTsKLQotICAgIGlmICgob3B0aW9ucy5y
ZWRpcmVjdCAhPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3cgfHwgb3B0aW9ucy5tb2Rl
ID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpICYmIHJlc3BvbnNlLmlzUmVkaXJlY3Rl
ZCgpKQotICAgICAgICByZXR1cm4gUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50
ZXJuYWwsIDAsIHJlc3BvbnNlLnVybCgpLCAiUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29y
a2VyIGhhcyByZWRpcmVjdGlvbnMiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRy
b2wgfTsKLQotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtl
ckNsaWVudEZldGNoOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3Bv
bnNlKQotewotICAgIG1faXNDaGVja2luZ1Jlc3BvbnNlID0gdHJ1ZTsKLSAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlc3BvbnNlID0g
V1RGTW92ZShyZXNwb25zZSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghbV9sb2FkZXIpIHsK
LSAgICAgICAgICAgIG1faXNDaGVja2luZ1Jlc3BvbnNlID0gZmFsc2U7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlUmVz
cG9uc2UocmVzcG9uc2UpKSB7Ci0gICAgICAgICAgICBtX2lzQ2hlY2tpbmdSZXNwb25zZSA9IGZh
bHNlOwotICAgICAgICAgICAgbV9sb2FkZXItPmRpZEZhaWwoZXJyb3IudmFsdWUoKSk7Ci0gICAg
ICAgICAgICBBU1NFUlQoIW1fbG9hZGVyKTsKLSAgICAgICAgICAgIGlmIChhdXRvIGNhbGxiYWNr
ID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhSZXN1bHQ6
OlN1Y2NlZWRlZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcmVz
cG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcik7
Ci0KLSAgICAgICAgaWYgKHJlc3BvbnNlLmlzUmVkaXJlY3Rpb24oKSAmJiByZXNwb25zZS5odHRw
SGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRlck5hbWU6OkxvY2F0aW9uKSkgewotICAg
ICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGNvbnRp
bnVlTG9hZGluZ0FmdGVyQ2hlY2tpbmdSZXNwb25zZSgpOwotICAgICAgICAgICAgbV9yZWRpcmVj
dGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZpbmc7Ci0gICAgICAgICAgICBt
X2xvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KG1fbG9hZGVyLT5yZXF1ZXN0KCkucmVkaXJlY3RlZFJl
cXVlc3QocmVzcG9uc2UsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCksIHJlc3BvbnNlLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzXShSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QuaXNO
dWxsKCkgfHwgIW1fY2FsbGJhY2spCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0ID09IG1fbG9hZGVyLT5yZXF1ZXN0KCkpOwotICAg
ICAgICAgICAgICAgIGlmIChtX3JlZGlyZWN0aW9uU3RhdHVzID09IFJlZGlyZWN0aW9uU3RhdHVz
OjpSZWNlaXZlZCkgewotICAgICAgICAgICAgICAgICAgICBzdGFydCgpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG1fcmVk
aXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6Rm9sbG93aW5nOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBJbiBj
YXNlIG9mIG1haW4gcmVzb3VyY2UgYW5kIG1pbWUgdHlwZSBpcyB0aGUgZGVmYXVsdCBvbmUsIHdl
IHNldCBpdCB0byB0ZXh0L2h0bWwgdG8gcGFzcyBtb3JlIHNlcnZpY2Ugd29ya2VyIFdQVCB0ZXN0
cy4KLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZWZpbmUgb3VyIE1JTUUgdHlwZSBzbmlm
ZmluZyBzdHJhdGVneSBmb3Igc3ludGhldGljIHJlc3BvbnNlcy4KLSAgICAgICAgaWYgKG1fbG9h
ZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJl
cXVlc3Rlcjo6TWFpbikgewotICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm1pbWVUeXBlKCkgPT0g
ZGVmYXVsdE1JTUVUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRNaW1lVHlw
ZSgidGV4dC9odG1sIl9zKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2Rp
bmdOYW1lKCJVVEYtOCJfcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAv
LyBBcyBwZXIgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI21haW4tZmV0Y2ggc3RlcCA5
LCBjb3B5IHJlcXVlc3QncyB1cmwgbGlzdCBpbiByZXNwb25zZSdzIHVybCBsaXN0IGlmIGVtcHR5
LgotICAgICAgICBpZiAocmVzcG9uc2UudXJsKCkuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXNw
b25zZS5zZXRVUkwobV9sb2FkZXItPnJlcXVlc3QoKS51cmwoKSk7Ci0KLSAgICAgICAgbV9sb2Fk
ZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7Ci0gICAgICAgICAgICBtX2lzQ2hlY2tpbmdSZXNwb25z
ZSA9IGZhbHNlOwotICAgICAgICAgICAgY29udGludWVMb2FkaW5nQWZ0ZXJDaGVja2luZ1Jlc3Bv
bnNlKCk7Ci0gICAgICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFj
aykpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0OjpTdWNjZWVkZWQpOwotICAgICAg
ICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJl
Y2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCkKLXsKLSAgICBhdXRvKiBkYXRhID0gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YVJlZmVyZW5jZS5kYXRhKCkpOwotICAgIGlmICghbV9idWZmZXIp
IHsKLSAgICAgICAgbV9idWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBkYXRhUmVm
ZXJlbmNlLnNpemUoKSk7Ci0gICAgICAgIG1fZW5jb2RlZERhdGFMZW5ndGggPSBlbmNvZGVkRGF0
YUxlbmd0aDsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2J1ZmZlci0+YXBwZW5kKGRhdGEsIGRh
dGFSZWZlcmVuY2Uuc2l6ZSgpKTsKLSAgICAgICAgbV9lbmNvZGVkRGF0YUxlbmd0aCArPSBlbmNv
ZGVkRGF0YUxlbmd0aDsKLSAgICB9Ci0KLSAgICBpZiAobV9pc0NoZWNraW5nUmVzcG9uc2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBpZiAoIW1fbG9hZGVyIHx8ICFtX2VuY29k
ZWREYXRhTGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fbG9hZGVyLT5k
aWRSZWNlaXZlQnVmZmVyKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIG1fZW5jb2RlZERhdGFM
ZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwotICAgICAgICBtX2VuY29kZWREYXRhTGVuZ3RoID0g
MDsKLSAgICB9KTsKLX0KLQotdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2Vp
dmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJikKLXsKLSAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGZvcm0gZGF0YSByZWFkaW5nLgotfQotCi12b2lkIFNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6ZGlkRmluaXNoKCkKLXsKLSAgICBtX2RpZEZpbmlzaCA9IHRydWU7Ci0KLSAg
ICBpZiAobV9pc0NoZWNraW5nUmVzcG9uc2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAg
ICAgICBpZiAoIW1fbG9hZGVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHN3aXRj
aCAobV9yZWRpcmVjdGlvblN0YXR1cykgewotICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVz
OjpOb25lOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0
dXM6OlJlY2VpdmluZzoKLSAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVj
dGlvblN0YXR1czo6UmVjZWl2ZWQ7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2Ug
UmVkaXJlY3Rpb25TdGF0dXM6OkZvbGxvd2luZzoKLSAgICAgICAgICAgIHN0YXJ0KCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2VpdmVk
OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBtX3JlZGly
ZWN0aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25TdGF0dXM6Ok5vbmU7Ci0gICAgICAgIH0KLQotICAg
ICAgICBBU1NFUlQoIW1fY2FsbGJhY2spOwotCi0gICAgICAgIG1fbG9hZGVyLT5kaWRGaW5pc2hM
b2FkaW5nKE5ldHdvcmtMb2FkTWV0cmljcyB7IH0pOwotICAgICAgICBtX3NlcnZpY2VXb3JrZXJQ
cm92aWRlci5mZXRjaEZpbmlzaGVkKG1faWRlbnRpZmllcik7Ci0gICAgfSk7Ci19Ci0KLXZvaWQg
U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRGYWlsKFJlc291cmNlRXJyb3ImJiBlcnJvcikK
LXsKLSAgICBtX2RpZEZhaWwgPSB0cnVlOwotICAgIG1fZXJyb3IgPSBXVEZNb3ZlKGVycm9yKTsK
LQotICAgIGlmIChtX2lzQ2hlY2tpbmdSZXNwb25zZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
Ci0gICAgICAgIGlmICghbV9sb2FkZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
YXV0byogZG9jdW1lbnQgPSBtX2xvYWRlci0+ZnJhbWUoKSA/IG1fbG9hZGVyLT5mcmFtZSgpLT5k
b2N1bWVudCgpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKGRvY3VtZW50KSB7Ci0gICAgICAgICAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIG1fZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7Ci0gICAgICAgICAg
ICBpZiAobV9sb2FkZXItPm9wdGlvbnMoKS5kZXN0aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpFbXB0eVN0cmluZykKLSAgICAgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VT
dHJpbmcoIkNhbm5vdCBsb2FkICIsIG1fZXJyb3IuZmFpbGluZ1VSTCgpLnN0cmluZygpLCAiLiIp
KTsKLSAgICAgICAgfQotCi0gICAgICAgIG1fbG9hZGVyLT5kaWRGYWlsKG1fZXJyb3IpOwotCi0g
ICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKLSAgICAgICAg
ICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsKLQotICAgICAgICBtX3NlcnZpY2VXb3Jr
ZXJQcm92aWRlci5mZXRjaEZpbmlzaGVkKG1faWRlbnRpZmllcik7Ci0gICAgfSk7Ci19Ci0KLXZv
aWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWROb3RIYW5kbGUoKQotewotICAgIEFTU0VS
VCghbV9pc0NoZWNraW5nUmVzcG9uc2UpOwotCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGlmICghbV9sb2FkZXIp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZN
b3ZlKG1fY2FsbGJhY2spKQotICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0OjpVbmhhbmRsZWQp
OwotCi0gICAgICAgIG1fc2VydmljZVdvcmtlclByb3ZpZGVyLmZldGNoRmluaXNoZWQobV9pZGVu
dGlmaWVyKTsKLSAgICB9KTsKLX0KLQotdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNh
bmNlbCgpCi17Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQot
ICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OkNhbmNlbGxlZCk7Ci0KLSAgICBpZiAoIW1fZGlkRmlu
aXNoICYmICFtX2RpZEZhaWwpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5jYW5jZWxGZXRjaCht
X2lkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwotCi0g
ICAgfQotICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKLSAgICBtX2J1ZmZlciA9IG51bGxwdHI7Ci19
Ci0KLXZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpjb250aW51ZUxvYWRpbmdBZnRlckNo
ZWNraW5nUmVzcG9uc2UoKQotewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nUmVzcG9uc2UpOwot
ICAgIGlmICghbV9sb2FkZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2VuY29kZWRE
YXRhTGVuZ3RoKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICAgICAgaWYgKCFtX2xvYWRlciB8fCAhbV9l
bmNvZGVkRGF0YUxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBt
X2xvYWRlci0+ZGlkUmVjZWl2ZUJ1ZmZlcihtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBtX2Vu
Y29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKLSAgICAgICAgICAgIG1fZW5jb2Rl
ZERhdGFMZW5ndGggPSAwOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpZiAobV9kaWRGYWls
KSB7Ci0gICAgICAgIGRpZEZhaWwoV1RGTW92ZShtX2Vycm9yKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAobV9kaWRGaW5pc2gpCi0gICAgICAgIGRpZEZpbmlzaCgpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFl
YzY0MWU5N2I4YTdjZDc5ZmVhNjBjNDIxYjcxN2VhNTY1ZTY3ZmMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCi0KLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiRm9ybURhdGFS
ZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
TG9hZGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTV0NsaWVudENvbm5lY3Rpb247Ci1jbGFzcyBXZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXI7Ci0KLWNsYXNzIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaD4sIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7Ci1wdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBSZXN1bHQgeyBT
dWNjZWVkZWQsIENhbmNlbGxlZCwgVW5oYW5kbGVkIH07Ci0gICAgdXNpbmcgQ2FsbGJhY2sgPSBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzdWx0KT47Ci0KLSAgICBzdGF0aWMgUmVmPFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaD4gY3JlYXRlKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYs
IFJlZjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4mJiwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
LCBSZWY8V2ViU1dDbGllbnRDb25uZWN0aW9uPiYmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIENhbGxiYWNrJiYpOwotICAgIH5TZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2goKTsKLQotICAgIHZvaWQgc3RhcnQoKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAgdm9pZCBj
YW5jZWwoKTsKLQotICAgIGJvb2wgaXNPbmdvaW5nKCkgY29uc3QgeyByZXR1cm4gISFtX2NhbGxi
YWNrOyB9Ci0KLXByaXZhdGU6Ci0gICAgU2VydmljZVdvcmtlckNsaWVudEZldGNoKFdlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlciYsIFJlZjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4mJiwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBSZWY8V2ViU1dDbGllbnRDb25uZWN0aW9uPiYmLCBib29sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIENhbGxiYWNrJiYpOwotCi0g
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiB2YWxpZGF0ZVJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJik7Ci0gICAgdm9pZCBkaWRGaW5pc2goKTsKLSAgICB2b2lkIGRpZEZhaWwoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYmKTsKLSAgICB2b2lkIGRpZE5vdEhhbmRsZSgpOwotCi0gICAgdm9p
ZCBjb250aW51ZUxvYWRpbmdBZnRlckNoZWNraW5nUmVzcG9uc2UoKTsKLQotICAgIFdlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlciYgbV9zZXJ2aWNlV29ya2VyUHJvdmlkZXI7Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyPiBtX2xvYWRlcjsKLSAgICBXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFJlZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKLSAgICBDYWxsYmFjayBtX2NhbGxiYWNrOwotICAgIGVudW0gY2xhc3MgUmVkaXJl
Y3Rpb25TdGF0dXMgeyBOb25lLCBSZWNlaXZpbmcsIEZvbGxvd2luZywgUmVjZWl2ZWQgfTsKLSAg
ICBSZWRpcmVjdGlvblN0YXR1cyBtX3JlZGlyZWN0aW9uU3RhdHVzIHsgUmVkaXJlY3Rpb25TdGF0
dXM6Ok5vbmUgfTsKLSAgICBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCB7IHRydWUgfTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBtX2J1
ZmZlcjsKLSAgICBpbnQ2NF90IG1fZW5jb2RlZERhdGFMZW5ndGggeyAwIH07Ci0gICAgYm9vbCBt
X2lzQ2hlY2tpbmdSZXNwb25zZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX2RpZEZhaWwgeyBmYWxzZSB9OwotICAgIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgbV9lcnJvcjsKLQotICAgIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTAxNTNkMzZmYzc5ZjMzMWMyNDVjZDE4OTJiNTIyMjRiNjdkYTFm
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2Fn
ZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLW1lc3Nh
Z2VzIC0+IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCB7Ci0gICAgRGlkUmVjZWl2ZVJlc3BvbnNl
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCi0gICAgRGlkUmVjZWl2ZURhdGEo
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0gICAg
RGlkUmVjZWl2ZUZvcm1EYXRhKElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKLSAgICBEaWRG
aW5pc2goKQotICAgIERpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKLSAgICBE
aWROb3RIYW5kbGUoKQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4NjE1OTFjMDY1
ODlmYjYxMWVkMjIzNmE3ZmU0MDAzN2U3OWM1ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oIgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCIKLSNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUu
aCIKLSNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvRG9jdW1lbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyRmV0Y2hSZXN1bHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJK
b2JEYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oPgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotV2ViU1dDbGllbnRDb25uZWN0aW9uOjpXZWJTV0NsaWVudENvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAg
IDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24p
Ci0gICAgLCBtX3N3T3JpZ2luVGFibGUobWFrZVVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPigp
KQotewotICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAgICBib29sIHJlc3VsdCA9
IHNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RXN0YWJs
aXNoU1dTZXJ2ZXJDb25uZWN0aW9uKHNlc3Npb25JRCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6RXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uOjpSZXBseShtX2lk
ZW50aWZpZXIpKTsKLQotICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQpOwotfQotCi1X
ZWJTV0NsaWVudENvbm5lY3Rpb246On5XZWJTV0NsaWVudENvbm5lY3Rpb24oKQotewotfQotCi12
b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2
aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OlNjaGVkdWxlSm9iSW5TZXJ2ZXIoam9iRGF0YSkpOwotfQotCi12b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25z
dCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmIHJlc3VsdCkKLXsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVz
dWx0KSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjphZGRTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
aWRlbnRpZmllcikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246
OkFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihpZGVudGlmaWVyKSk7Ci19Ci0K
LXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmll
cikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlbW92ZVNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihpZGVudGlmaWVyKSk7Ci19Ci0KLXZvaWQg
V2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzJiYgbWVzc2FnZSwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYg
c291cmNlSWRlbnRpZmllcikKLXsKLSAgICAvLyBGSVhNRTogVGVtcG9yYXJpbHkgcGlwZSB0aGUg
U1cgcG9zdE1lc3NhZ2UgbWVzc2FnZXMgdmlhIHRoZSBVSVByb2Nlc3Mgc2luY2UgdGhpcyBpcyB3
aGVyZSB0aGUgTWVzc2FnZVBvcnQgcmVnaXN0cnkgbGl2ZXMKLSAgICAvLyBhbmQgdGhpcyBhdm9p
ZHMgcmFjZXMuCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Bvb2w6OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgV1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIoKSksIDApOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4s
IGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYg
Y29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikKLXsKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudCB7IHRvcE9yaWdpbi5kYXRhKCksIGRhdGEsIGNvbnRyb2xsaW5nU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgfSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgY29u
dGV4dElkZW50aWZpZXIpCi17Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyIHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgY29udGV4dElkZW50aWZp
ZXIgfSB9KTsKLX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpZFJlc29sdmVSZWdp
c3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIGtleSkK
LXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkRpZFJlc29sdmVS
ZWdpc3RyYXRpb25Qcm9taXNlKGtleSkpOwotfQotCi1ib29sIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6bWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAotewotICAgIGlmICghbV9zd09yaWdpblRhYmxlLT5p
c0ltcG9ydGVkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIG1fc3dPcmln
aW5UYWJsZS0+Y29udGFpbnMob3JpZ2luKTsKLX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246OnNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmIGhhbmRsZSkKLXsKLSAgICBtX3N3T3JpZ2luVGFibGUtPnNldFNoYXJlZE1lbW9yeShoYW5k
bGUpOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0U1dPcmlnaW5UYWJsZUlz
SW1wb3J0ZWQoKQotewotICAgIG1fc3dPcmlnaW5UYWJsZS0+c2V0SXNJbXBvcnRlZCgpOwotICAg
IHdoaWxlICghbV90YXNrc1BlbmRpbmdPcmlnaW5JbXBvcnQuaXNFbXB0eSgpKQotICAgICAgICBt
X3Rhc2tzUGVuZGluZ09yaWdpbkltcG9ydC50YWtlRmlyc3QoKSgpOwotfQotCi12b2lkIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6ZGlkTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hpbmdS
ZXF1ZXN0LCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmIHJl
c3VsdCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKGF1dG8gY29t
cGxldGlvbkhhbmRsZXIgPSBtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzLnRha2UobWF0
Y2hpbmdSZXF1ZXN0KSkKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQp
KTsKLX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnMo
dWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBWZWN0b3I8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGE+JiYgcmVnaXN0cmF0aW9ucykKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
Ci0gICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBtX29uZ29pbmdHZXRSZWdpc3RyYXRp
b25zVGFza3MudGFrZShtYXRjaGluZ1JlcXVlc3QpKQotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHJlZ2lzdHJhdGlvbnMpKTsKLX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29u
c3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCi17Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmICghbWF5SGF2ZVNlcnZpY2VXb3Jr
ZXJSZWdpc3RlcmVkRm9yT3JpZ2luKHRvcE9yaWdpbikpIHsKLSAgICAgICAgY2FsbGJhY2soc3Rk
OjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHJ1bk9yRGVsYXlUYXNr
Rm9ySW1wb3J0KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b3BPcmlnaW4g
PSBXVEZNb3ZlKHRvcE9yaWdpbiksIGNsaWVudFVSTF0oKSBtdXRhYmxlIHsKLSAgICAgICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91c0NhbGxiYWNrSWRlbnRpZmllcjsKLSAgICAg
ICAgbV9vbmdvaW5nTWF0Y2hSZWdpc3RyYXRpb25UYXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92
ZShjYWxsYmFjaykpOwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rp
b246Ok1hdGNoUmVnaXN0cmF0aW9uKGNhbGxiYWNrSUQsIHRvcE9yaWdpbiwgY2xpZW50VVJMKSk7
Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpydW5PckRlbGF5VGFz
a0ZvckltcG9ydChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQotewotICAgIGlmIChtX3N3
T3JpZ2luVGFibGUtPmlzSW1wb3J0ZWQoKSkKLSAgICAgICAgdGFzaygpOwotICAgIGVsc2UKLSAg
ICAgICAgbV90YXNrc1BlbmRpbmdPcmlnaW5JbXBvcnQuYXBwZW5kKFdURk1vdmUodGFzaykpOwot
fQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5KGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBXaGVu
UmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmIGNhbGxiYWNrKQotewotICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSArK21fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXI7Ci0gICAgbV9vbmdvaW5n
UmVnaXN0cmF0aW9uUmVhZHlUYXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykp
OwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6V2hlblJlZ2lzdHJh
dGlvblJlYWR5KGNhbGxiYWNrSUQsIHRvcE9yaWdpbi5kYXRhKCksIGNsaWVudFVSTCkpOwotfQot
Ci12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3Qg
Y2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdp
c3RyYXRpb25EYXRhKQotewotICAgIEFTU0VSVChyZWdpc3RyYXRpb25EYXRhLmFjdGl2ZVdvcmtl
cik7Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX29uZ29pbmdSZWdpc3RyYXRpb25SZWFkeVRh
c2tzLnRha2UoY2FsbGJhY2tJRCkpCi0gICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVnaXN0cmF0
aW9uRGF0YSkpOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0
aW9ucyhTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJM
LCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2smJiBjYWxsYmFjaykKLXsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwotCi0gICAgaWYgKCFtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRG
b3JPcmlnaW4odG9wT3JpZ2luKSkgewotICAgICAgICBjYWxsYmFjayh7IH0pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoW3RoaXMsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRvcE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwg
Y2xpZW50VVJMXSgpIG11dGFibGUgewotICAgICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKytt
X3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOwotICAgICAgICBtX29uZ29pbmdHZXRSZWdpc3Ry
YXRpb25zVGFza3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zKGNh
bGxiYWNrSUQsIHRvcE9yaWdpbiwgY2xpZW50VVJMKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpzdGFydEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBm
ZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYgb3B0
aW9ucywgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
V1NlcnZlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHsgcmVxdWVzdC5odHRwQm9keSgpIH0sIHJlZmVycmVyIH0pOwotfQotCi12
b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCi17Ci0gICAg
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSk7Ci19Ci0K
LXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNs
aWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJj
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCi17Ci0gICAgU1dDbGllbnRDb25uZWN0aW9u
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHNvdXJjZSksIHNvdXJjZU9yaWdpbik7
Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0
KCkKLXsKLSAgICBhdXRvIHJlZ2lzdHJhdGlvblRhc2tzID0gV1RGTW92ZShtX29uZ29pbmdNYXRj
aFJlZ2lzdHJhdGlvblRhc2tzKTsKLSAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogcmVnaXN0cmF0
aW9uVGFza3MudmFsdWVzKCkpCi0gICAgICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7Ci0KLSAg
ICBhdXRvIGdldFJlZ2lzdHJhdGlvblRhc2tzID0gV1RGTW92ZShtX29uZ29pbmdHZXRSZWdpc3Ry
YXRpb25zVGFza3MpOwotICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBnZXRSZWdpc3RyYXRpb25U
YXNrcy52YWx1ZXMoKSkKLSAgICAgICAgY2FsbGJhY2soeyB9KTsKLQotICAgIGNsZWFyUGVuZGlu
Z0pvYnMoKTsKLX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBzZW5kU3lu
YyhNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyKGlk
ZW50aWZpZXIpLCBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRl
V29ya2VyOjpSZXBseSgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyYmZhZWU0NzZlMWY0YmNjY2RiMjY2MGZlNWQ4ZTY2YmQ2NzRhM2Q3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTE4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVk
ZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgiCi0jaW5jbHVkZSAiU2hhcmVkTWVtb3J5Lmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvU1dDbGllbnRDb25uZWN0aW9uLmg+Ci0jaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgotI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3Ry
dWN0IEV4Y2VwdGlvbkRhdGE7Ci1jbGFzcyBSZXNvdXJjZUxvYWRlcjsKLX0KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYlNXT3JpZ2luVGFibGU7Ci1jbGFzcyBXZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXI7Ci0KLWNsYXNzIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIs
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJTV0NsaWVudENvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTV0Ns
aWVudENvbm5lY3Rpb24geyBjb25uZWN0aW9uLCBzZXNzaW9uSUQgfSk7IH0KLSAgICB+V2ViU1dD
bGllbnRDb25uZWN0aW9uKCk7Ci0KLSAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9Ci0KLSAgICB2b2lkIGFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
blNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgZmlu
YWw7Ci0gICAgdm9pZCByZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpIGZpbmFsOwotCi0gICAg
dm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0KLSAgICBib29s
IG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHN0YXJ0RmV0Y2goV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlcik7Ci0gICAgdm9pZCBjYW5j
ZWxGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKLQotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4
dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7
Ci0KLSAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKLQotICAgIHZvaWQgc3luY1Rl
cm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0K
LXByaXZhdGU6Ci0gICAgV2ViU1dDbGllbnRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYsIFBB
TDo6U2Vzc2lvbklEKTsKLQotICAgIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQm
KSBmaW5hbDsKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xp
ZW50SWRlbnRpZmllciYgc291cmNlKSBmaW5hbDsKLSAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JikgZmluYWw7Ci0g
ICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIpIGZpbmFsOwotCi0gICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbihXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50
VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGRpZE1hdGNoUmVn
aXN0cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpOwotICAgIHZvaWQgZGlk
R2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpOwotICAgIHZvaWQgd2hl
blJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlD
YWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIHJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IGNh
bGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpOwotCi0g
ICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRv
cE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnND
YWxsYmFjayYmKSBmaW5hbDsKLQotICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21p
c2UoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwot
Ci0gICAgdm9pZCBzY2hlZHVsZVN0b3JhZ2VKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
ckpvYkRhdGEmKTsKLQotICAgIHZvaWQgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgdGFzayk7Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9Ci0gICAg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBtX2lk
ZW50aWZpZXIudG9VSW50NjQoKTsgfQotCi0gICAgdm9pZCBzZXRTV09yaWdpblRhYmxlU2hhcmVk
TWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7Ci0gICAgdm9pZCBzZXRTV09yaWdp
blRhYmxlSXNJbXBvcnRlZCgpOwotCi0gICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Ci0g
ICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0K
LSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgVW5pcXVlUmVmPFdl
YlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5UYWJsZTsKLQotICAgIHVpbnQ2NF90IG1fcHJldmlv
dXNDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0
cmF0aW9uQ2FsbGJhY2s+IG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3M7Ci0gICAgSGFz
aE1hcDx1aW50NjRfdCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrPiBtX29uZ29pbmdHZXRSZWdp
c3RyYXRpb25zVGFza3M7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgV2hlblJlZ2lzdHJhdGlvblJl
YWR5Q2FsbGJhY2s+IG1fb25nb2luZ1JlZ2lzdHJhdGlvblJlYWR5VGFza3M7Ci0gICAgRGVxdWU8
V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9ydDsKLQotfTsg
Ly8gY2xhc3MgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAot
Ci0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTRiMGE4MjJjN2Y2
NDdkOTM4ZmFiNTM2Yjg4NzYyYzNjMjNmZmJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAg
QEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLQotbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKLSAg
ICAjIFdoZW4gcG9zc2libGUsIHRoZXNlIG1lc3NhZ2VzIGNhbiBiZSBpbXBsZW1lbnRlZCBkaXJl
Y3RseSBieSBXZWJDb3JlOjpTV1NlcnZlcjo6Q29ubmVjdGlvbgotICAgIEpvYlJlamVjdGVkSW5T
ZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKLSAgICBSZWdpc3Ry
YXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyIGpvYkRhdGFJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEgcmVnaXN0cmF0aW9uLCBlbnVtIFdlYkNvcmU6OlNob3VsZE5vdGlmeVdoZW5S
ZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpCi0gICAgVW5yZWdpc3RyYXRpb25Kb2JS
ZXNvbHZlZEluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRh
dGFJZGVudGlmaWVyLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQotICAgIFN0YXJ0U2NyaXB0
RmV0Y2hGb3JTZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0
YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0
cmF0aW9uS2V5LCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQotICAg
IFVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGVudW0gV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvblN0YXRlIHN0YXRlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJE
YXRhPiBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKLSAgICBVcGRhdGVXb3JrZXJTdGF0ZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZW51
bSBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyU3RhdGUgc3RhdGUpCi0gICAgRmlyZVVwZGF0ZUZvdW5k
RXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRp
ZmllcikKLSAgICBTZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBXYWxsVGltZSBsYXN0VXBk
YXRlVGltZSkKLSAgICBTZXRSZWdpc3RyYXRpb25VcGRhdGVWaWFDYWNoZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNoZSk7Ci0gICAgTm90aWZ5
Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShIYXNoU2V0PFdlYkNvcmU6OkRvY3VtZW50SWRlbnRp
Zmllcj4gY29udGV4dElkZW50aWZpZXJzLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRh
dGEgbmV3Q29udHJvbGxlcikKLQotICAgIFNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKLSAg
ICBTZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlKQotICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6
OkRvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJEYXRhIHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKLQotICAgIERp
ZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IGRhdGEpCi0g
ICAgRGlkR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBW
ZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlv
bnMpCi0gICAgUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1
ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhIGRhdGEpCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGFmZGI0MzY1MGIzNDNiMjVkMTQzMzJkMDBjYWI3NWExMzY4NDQwZTUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMzY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCIKLQotI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLQotI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJGb3Jt
RGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIK
LSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJEYXRhYmFz
ZVByb3ZpZGVyLmgiCi0jaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJX
ZWJQcmVmZXJlbmNlc0tleXMuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCi0j
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKLSNpbmNsdWRlICJX
ZWJTb2NrZXRQcm92aWRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9FbXB0eUNsaWVudHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5
RnJhbWVMb2FkZXJDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1VzZXJBZ2VudC5oPgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KLSNpbmNsdWRlIDx3
dGYvUHJvY2Vzc0lELmg+Ci0KLSNpZiBVU0UoUVVJQ0tfTE9PSykKLSNpbmNsdWRlIDxXZWJDb3Jl
L1ByZXZpZXdMb2FkZXJDbGllbnQuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotc3RhdGljIGNv
bnN0IFNlY29uZHMgYXN5bmNXb3JrZXJUZXJtaW5hdGlvblRpbWVvdXQgeyAxMF9zIH07Ci1zdGF0
aWMgY29uc3QgU2Vjb25kcyBzeW5jV29ya2VyVGVybWluYXRpb25UaW1lb3V0IHsgMTAwX21zIH07
IC8vIE9ubHkgdXNlZCBieSBsYXlvdXQgdGVzdHMuCi0KLWNsYXNzIFNlcnZpY2VXb3JrZXJGcmFt
ZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IHsKLXB1
YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkK
LSAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAgICAgLCBtX3Nlc3Npb25J
RChzZXNzaW9uSUQpCi0gICAgICAgICwgbV9wYWdlSUQocGFnZUlEKQotICAgICAgICAsIG1fZnJh
bWVJRChmcmFtZUlEKQotICAgICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKLSAgICB7Ci0g
ICAgfQotCi0gICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KSB7IG1fdXNl
ckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmPERvY3Vt
ZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkgZmluYWwKLSAgICB7
Ci0gICAgICAgIHJldHVybiBXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlcXVlc3QsIHN1YnN0
aXR1dGVEYXRhKTsKLSAgICB9Ci0KLSAgICB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgZmlu
YWwgeyBtX2Nvbm5lY3Rpb24ucmVtb3ZlRnJhbWVMb2FkZXJDbGllbnQoKnRoaXMpOyB9Ci0KLSAg
ICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZykgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotCi0gICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KLSAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BhZ2VJRDsg
fQotICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2ZyYW1lSUQ7IH0KLSAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGZpbmFs
IHsgcmV0dXJuIG1fdXNlckFnZW50OyB9Ci0KLSAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbiYgbV9jb25uZWN0aW9uOwotICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwotICAg
IHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsK
LSAgICBTdHJpbmcgbV91c2VyQWdlbnQ7Ci19OwotCi1XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uLCB1aW50NjRfdCBwYWdlR3JvdXBJRCwgdWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKLSAgICA6IG1fY29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAsIG1fcGFnZUdyb3VwSUQocGFnZUdy
b3VwSUQpCi0gICAgLCBtX3BhZ2VJRChwYWdlSUQpCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
LCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoeyB9KSkK
LSNlbHNlCi0gICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQotI2VuZGlmCi17
Ci0gICAgdXBkYXRlUHJlZmVyZW5jZXNTdG9yZShzdG9yZSk7Ci19Ci0KLVdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjp+V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oKSA9IGRlZmF1
bHQ7Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVu
Y2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCi17Ci0gICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRTZXJ2aWNlV29ya2VyRW5hYmxl
ZCh0cnVlKTsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dENhY2hlQVBJRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6OmNhY2hlQVBJRW5hYmxlZEtleSgpKSk7Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmZXRjaEFQSUVuYWJsZWRLZXkoKSkpOwotICAgIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0VXNlclRpbWluZ0VuYWJsZWQo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp1c2VyVGltaW5nRW5h
YmxlZEtleSgpKSk7Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpyZXNvdXJjZVRpbWluZ0VuYWJsZWRLZXkoKSkpOwotICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFi
bGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZmV0Y2hBUElL
ZWVwQWxpdmVFbmFibGVkS2V5KCkpKTsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnNldFJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3Moc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNj
ZXNzS2V5KCkpKTsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNldFNlcnZlclRpbWluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpzZXJ2ZXJUaW1pbmdFbmFibGVkS2V5KCkpKTsKLSAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldElzU2VjdXJlQ29udGV4dEF0dHJpYnV0ZUVu
YWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojppc1NlY3Vy
ZUNvbnRleHRBdHRyaWJ1dGVFbmFibGVkS2V5KCkpKTsKLQotICAgIG1fc3RvcmFnZUJsb2NraW5n
UG9saWN5ID0gc3RhdGljX2Nhc3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGlj
eT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VC
bG9ja2luZ1BvbGljeUtleSgpKSk7Ci19Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYgZGF0YSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICBMT0coU2VydmljZVdvcmtlciwg
IldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlciBmb3Ig
d29ya2VyICVzIiwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlv
biB7Ci0gICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCi0gICAgICAgIFdlYlNvY2tl
dFByb3ZpZGVyOjpjcmVhdGUoKSwKLSAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6
OmNyZWF0ZSgpLAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQ
cm92aWRlcigpCi0gICAgfTsKLQotICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VDb25maWd1
cmF0aW9uKTsKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIHBhZ2VDb25maWd1
cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0
ZShtX3BhZ2VHcm91cElEKTsKLSNlbmRpZgotCi0gICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNo
b3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25u
ZWN0aW9uCi0gICAgLy8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVy
Q2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJl
YWR5IGhhcHBlbi4KLSAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFn
ZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQsIG1fdXNlckFnZW50KTsKLSAgICBwYWdl
Q29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVu
dC5nZXQoKTsKLSAgICBtX2xvYWRlcnMuYWRkKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsK
LQotICAgIGF1dG8gc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVh
ZFByb3h5OjpjcmVhdGUoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHNlc3Npb25J
RCwgU3RyaW5nIHsgbV91c2VyQWdlbnQgfSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVT
dG9yYWdlUHJvdmlkZXIoKSwgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwotICAgIFNXQ29udGV4
dE1hbmFnZXI6OnNpbmdsZXRvbigpLnJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3Rh
bGwoV1RGTW92ZShzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpKTsKLQotICAgIExPRyhTZXJ2aWNl
V29ya2VyLCAiQ29udGV4dCBwcm9jZXNzIFBJRDogJWkgY3JlYXRlZCB3b3JrZXIgdGhyZWFkXG4i
LCBnZXRDdXJyZW50UHJvY2Vzc0lEKCkpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KQotewotICAgIG1fdXNl
ckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpyZW1vdmVGcmFtZUxvYWRlckNsaWVudChTZXJ2aWNlV29ya2VyRnJhbWVM
b2FkZXJDbGllbnQmIGNsaWVudCkKLXsKLSAgICBhdXRvIHJlc3VsdCA9IG1fbG9hZGVycy5yZW1v
dmUoJmNsaWVudCk7Ci0gICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7Ci19Ci0KLXZv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJTdGFydGVkV2l0
aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpv
YkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQotewotICAgIGlmIChleGNl
cHRpb25NZXNzYWdlLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTY3Jp
cHRDb250ZXh0U3RhcnRlZChqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpLCAwKTsKLSAgICBlbHNlCi0gICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2NyaXB0Q29u
dGV4dEZhaWxlZFRvU3RhcnQoam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBleGNlcHRpb25NZXNzYWdlKSwgMCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1Zh
bGlkRmV0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBGZXRjaE9wdGlv
bnMmIG9wdGlvbnMsIGNvbnN0IFVSTCYgc2VydmljZVdvcmtlclVSTCwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlcikKLXsKLSAgICAvLyBGb3IgZXhvdGljIHNlcnZpY2Ugd29ya2VycywgZG8gbm90IGVu
Zm9yY2UgY2hlY2tzLgotICAgIGlmICghc2VydmljZVdvcmtlclVSTC5wcm90b2NvbElzSW5IVFRQ
RmFtaWx5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKG9wdGlvbnMubW9kZSA9
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKSB7Ci0gICAgICAgIGlmICghcHJvdG9jb2xI
b3N0QW5kUG9ydEFyZUVxdWFsKHJlcXVlc3QudXJsKCksIHNlcnZpY2VXb3JrZXJVUkwpKSB7Ci0g
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiU2hvdWxkIG5vdCBp
bnRlcmNlcHQgYSBuYXZpZ2F0aW9uIGxvYWQgdGhhdCBpcyBub3Qgc2FtZS1vcmlnaW4gYXMgdGhl
IHNlcnZpY2Ugd29ya2VyIFVSTCIpOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9N
RVNTQUdFKHJlcXVlc3QudXJsKCkuaG9zdCgpID09IHNlcnZpY2VXb3JrZXJVUkwuaG9zdCgpLCAi
SG9zdHMgZG8gbm90IG1hdGNoIik7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01F
U1NBR0UocmVxdWVzdC51cmwoKS5wcm90b2NvbCgpID09IHNlcnZpY2VXb3JrZXJVUkwucHJvdG9j
b2woKSwgIlByb3RvY29scyBkbyBub3QgbWF0Y2giKTsKLSAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX1dJVEhfTUVTU0FHRShyZXF1ZXN0LnVybCgpLnBvcnQoKSA9PSBzZXJ2aWNlV29ya2VyVVJM
LnBvcnQoKSwgIlBvcnRzIGRvIG5vdCBtYXRjaCIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIFN0cmluZyBv
cmlnaW4gPSByZXF1ZXN0Lmh0dHBPcmlnaW4oKTsKLSAgICBVUkwgdXJsIHsgVVJMKCksIG9yaWdp
bi5pc0VtcHR5KCkgPyByZWZlcnJlciA6IG9yaWdpbiB9OwotICAgIGlmICh1cmwucHJvdG9jb2xJ
c0luSFRUUEZhbWlseSgpICYmICFwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwodXJsLCBzZXJ2
aWNlV29ya2VyVVJMKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2Vy
LCAiU2hvdWxkIG5vdCBpbnRlcmNlcHQgYSBub24gbmF2aWdhdGlvbiBsb2FkIHRoYXQgaXMgbm90
IG9yaWdpbmF0aW5nIGZyb20gYSBzYW1lLW9yaWdpbiBjb250ZXh0IGFzIHRoZSBzZXJ2aWNlIHdv
cmtlciBVUkwiKTsKLSAgICAgICAgQVNTRVJUKHVybC5ob3N0KCkgPT0gc2VydmljZVdvcmtlclVS
TC5ob3N0KCkpOwotICAgICAgICBBU1NFUlQodXJsLnByb3RvY29sKCkgPT0gc2VydmljZVdvcmtl
clVSTC5wcm90b2NvbCgpKTsKLSAgICAgICAgQVNTRVJUKHVybC5wb3J0KCkgPT0gc2VydmljZVdv
cmtlclVSTC5wb3J0KCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVy
biB0cnVlOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjYW5jZWxG
ZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLXsKLSAgICBpZiAoYXV0byogc2VydmljZVdv
cmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdv
cmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkKLSAgICAgICAgc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LT5jYW5jZWxGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlcikKLXsKLSAgICBhdXRvKiBzZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIGlmICghc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KSB7Ci0gICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaCB7IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSwgMCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIWlzVmFsaWRGZXRjaChyZXF1ZXN0LCBvcHRpb25z
LCBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnNjcmlwdFVSTCgpLCByZWZlcnJlcikpIHsKLSAg
ICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IGZldGNoSWRlbnRpZmllciB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1
dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y3JlYXRlKG1fY29u
bmVjdGlvblRvTmV0d29ya1Byb2Nlc3MuY29weVJlZigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcik7Ci0gICAgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWQ7Ci0gICAg
aWYgKG9wdGlvbnMuY2xpZW50SWRlbnRpZmllcikKLSAgICAgICAgY2xpZW50SWQgPSBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBvcHRp
b25zLmNsaWVudElkZW50aWZpZXIudmFsdWUoKSB9OwotCi0gICAgcmVxdWVzdC5zZXRIVFRQQm9k
eShmb3JtRGF0YS50YWtlRGF0YSgpKTsKLSAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnN0
YXJ0RmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgV1RG
TW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucykpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCi17Ci0g
ICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoZGVzdGluYXRpb25JZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHNvdXJj
ZURhdGEpKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmlyZUlu
c3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIFNX
Q29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmZpcmVJbnN0YWxsRXZlbnQoaWRlbnRpZmllcik7
Ci19Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2
ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi17Ci0gICAgU1dDb250ZXh0
TWFuYWdlcjo6c2luZ2xldG9uKCkuZmlyZUFjdGl2YXRlRXZlbnQoaWRlbnRpZmllcik7Ci19Ci0K
LXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlcihTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIFNXQ29udGV4dE1hbmFnZXI6
OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVdvcmtlcihpZGVudGlmaWVyLCBhc3luY1dvcmtlclRlcm1p
bmF0aW9uVGltZW91dCwgbnVsbHB0cik7Ci19Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVy
bWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJiByZXBseSkKLXsKLSAgICBTV0NvbnRleHRNYW5h
Z2VyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVXb3JrZXIoaWRlbnRpZmllciwgc3luY1dvcmtlclRl
cm1pbmF0aW9uVGltZW91dCwgV1RGTW92ZShyZXBseSkpOwotfQotCi12b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25z
dCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQotewotICAgIC8v
IEZJWE1FOiBUZW1wb3JhcmlseSBwaXBlIHRoZSBTVyBwb3N0TWVzc2FnZSBtZXNzYWdlcyB2aWEg
dGhlIFVJUHJvY2VzcyBzaW5jZSB0aGlzIGlzIHdoZXJlIHRoZSBNZXNzYWdlUG9ydCByZWdpc3Ry
eSBsaXZlcwotICAgIC8vIGFuZCB0aGlzIGF2b2lkcyByYWNlcy4KLSAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6UG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2Up
LCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pLCAwKTsKLX0KLQotdm9pZCBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmluaXNoSW5zdGFsbChzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3Nm
dWwpCi17Ci0gICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpEaWRGaW5pc2hJbnN0YWxsKGpvYkRhdGFJ
ZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCksIDApOwot
fQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hBY3RpdmF0
aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQotewot
ICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6RGlkRmluaXNoQWN0aXZhdGlvbihzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciksIDApOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKQotewotICAg
IG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjo6U2V0U2VydmljZVdvcmtlckhhc1BlbmRpbmdFdmVudHMoc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGhhc1BlbmRpbmdFdmVudHMpLCAwKTsKLX0KLQotdm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2tpcFdhaXRpbmcoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNhbGxiYWNrKQotewotICAgIGF1dG8gY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91c1JlcXVlc3RJ
ZGVudGlmaWVyOwotICAgIG1fc2tpcFdhaXRpbmdSZXF1ZXN0cy5hZGQoY2FsbGJhY2tJRCwgV1RG
TW92ZShjYWxsYmFjaykpOwotICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2tpcFdhaXRpbmcoc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNhbGxiYWNrSUQpLCAwKTsKLX0KLQotdm9pZCBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0U2NyaXB0UmVzb3VyY2UoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0JiBzY3JpcHQpCi17Ci0gICAg
bV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpTZXRTY3JpcHRSZXNvdXJjZSB7IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCB1cmwsIHNjcmlwdC5zY3JpcHQsIHNjcmlwdC5yZXNwb25zZVVSTCwgc2NyaXB0Lm1p
bWVUeXBlIH0sIDApOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp3
b3JrZXJUZXJtaW5hdGVkKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKQotewotICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V29ya2VyVGVybWluYXRlZChzZXJ2
aWNlV29ya2VySWRlbnRpZmllciksIDApOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2sm
JiBjYWxsYmFjaykKLXsKLSAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gKyttX3ByZXZpb3Vz
UmVxdWVzdElkZW50aWZpZXI7Ci0gICAgbV9maW5kQ2xpZW50QnlJZGVudGlmaWVyUmVxdWVzdHMu
YWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgbV9jb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpGaW5kQ2xpZW50QnlJZGVudGlmaWVyIHsgcmVxdWVzdElkZW50aWZpZXIsIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29t
cGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhPiYmIGNsaWVudERhdGEsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikKLXsK
LSAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3Rz
LnRha2UocmVxdWVzdElkZW50aWZpZXIpKSB7Ci0gICAgICAgIGlmIChoYXNTZWN1cml0eUVycm9y
KSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBTZWN1cml0eUVycm9yIH0pOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
Y2xpZW50RGF0YSkpOwotICAgIH0KLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6bWF0Y2hBbGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmIG9w
dGlvbnMsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmIGNhbGxiYWNrKQot
ewotICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNSZXF1ZXN0SWRlbnRp
ZmllcjsKLSAgICBtX21hdGNoQWxsUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7Ci0gICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpNYXRjaEFsbCB7IHJlcXVl
c3RJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0aW9ucyB9LCAwKTsKLX0K
LQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQo
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4mJiBjbGllbnRzRGF0YSkKLXsKLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fbWF0Y2hBbGxS
ZXF1ZXN0cy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2soV1RGTW92
ZShjbGllbnRzRGF0YSkpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpjbGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQotewotICAgIGF1
dG8gcmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllcjsKLSAg
ICBtX2NsYWltUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7Ci0gICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpDbGFpbSB7IHJlcXVlc3RJZGVudGlmaWVyLCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciB9LCAwKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6Y2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRp
ZmllcikKLXsKLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2xhaW1SZXF1ZXN0cy50YWtlKGNs
YWltUmVxdWVzdElkZW50aWZpZXIpKQotICAgICAgICBjYWxsYmFjaygpOwotfQotCi12b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRf
dCBjYWxsYmFja0lEKQotewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9za2lwV2FpdGluZ1Jl
cXVlc3RzLnRha2UoY2FsbGJhY2tJRCkpCi0gICAgICAgIGNhbGxiYWNrKCk7Ci19Ci0KLU5PX1JF
VFVSTiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp0ZXJtaW5hdGVQcm9jZXNz
KCkKLXsKLSAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZSB3b3JrZXIgcHJv
Y2VzcyBpcyBleGl0aW5nIGJlY2F1c2UgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZCIpOwotICAgIF9l
eGl0KEVYSVRfU1VDQ0VTUyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODczZmZmZDJhOGM3MDFhZTg2OTA1Y2U5
ZTU3MDRmMWE3YjljOWI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUg
IldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJD
bGllbnREYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KLQot
bmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKLX0KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotc3RydWN0IEZldGNoT3B0aW9uczsKLWNsYXNzIFJlc291cmNlUmVxdWVzdDsK
LXN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ7Ci1zdHJ1Y3QgV2ViUHJl
ZmVyZW5jZXNTdG9yZTsKLQotY2xhc3MgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbiwgcHVibGlj
IElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKLXB1YmxpYzoKLSAgICBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCB1aW50NjRfdCBwYWdlR3JvdXBJRCwg
dWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7Ci0gICAgfldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uKCk7Ci0KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7Ci0KLSAgICB2b2lkIHJlbW92ZUZyYW1lTG9h
ZGVyQ2xpZW50KFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCYpOwotCi1wcml2YXRlOgot
ICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
Jik7Ci0KLSAgICAvLyBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uLgotICAg
IHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pIGZpbmFs
OwotICAgIHZvaWQgZGlkRmluaXNoSW5zdGFsbChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpIGZpbmFsOwotICAgIHZvaWQgZGlkRmluaXNoQWN0aXZh
dGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBz
ZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCB3b3JrZXJUZXJtaW5hdGVkKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIGZpbmRDbGllbnRCeUlk
ZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2sm
JikgZmluYWw7Ci0gICAgdm9pZCBtYXRjaEFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKSBmaW5hbDsKLSAg
ICB2b2lkIGNsYWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2tpcFdhaXRpbmcoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7Ci0gICAg
dm9pZCBzZXRTY3JpcHRSZXNvdXJjZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHRE
YXRhOjpJbXBvcnRlZFNjcmlwdCYpIGZpbmFsOwotCi0gICAgLy8gSVBDIG1lc3NhZ2VzLgotICAg
IHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwotICAg
IHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNv
bnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwg
U3RyaW5nJiYgcmVmZXJyZXIpOwotICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKLSAgICB2b2lkIGZpcmVJbnN0YWxs
RXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgZmlyZUFj
dGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQg
dGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKLSAgICB2
b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdv
cmtlcjo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKTsKLSAg
ICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZp
ZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik7Ci0gICAgdm9p
ZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICB2
b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQg
c2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCk7Ci0gICAgdm9pZCB0ZXJtaW5hdGVQcm9j
ZXNzKCk7Ci0KLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzOwotICAgIHVpbnQ2NF90IG1fcGFnZUdyb3VwSUQ7Ci0gICAgdWludDY0X3QgbV9wYWdl
SUQgeyAwIH07Ci0gICAgdWludDY0X3QgbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCB7IDAgfTsK
LQotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3kgeyBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJs
b2NraW5nUG9saWN5OjpBbGxvd0FsbFN0b3JhZ2UgfTsKLQotICAgIEhhc2hTZXQ8c3RkOjp1bmlx
dWVfcHRyPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4+IG1fbG9hZGVyczsKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2s+IG1fZmluZENs
aWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjaz4gbV9tYXRjaEFsbFJlcXVlc3Rz
OwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4g
bV9jbGFpbVJlcXVlc3RzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9p
ZCgpPj4gbV9za2lwV2FpdGluZ1JlcXVlc3RzOwotICAgIHVpbnQ2NF90IG1fcHJldmlvdXNSZXF1
ZXN0SWRlbnRpZmllciB7IDAgfTsKLSAgICBTdHJpbmcgbV91c2VyQWdlbnQ7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlMGQ1OTNhNjhhNzkxZjE0NTg2ZjZmOTUwYzJkNjc5ZWJl
NWUwMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0jIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
IyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
Ci0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
Ci0KLW1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIHsKLSAgICBJbnN0
YWxsU2VydmljZVdvcmtlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRh
IGNvbnRleHREYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgU3RhcnRGZXRjaChX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMg
b3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgU3RyaW5nIHJlZmVy
cmVyKQotICAgIENhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIg
ZmV0Y2hJZGVudGlmaWVyKQotICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJPckNsaWVudERhdGEgc291cmNlRGF0YSkKLSAgICBGaXJlSW5zdGFsbEV2ZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAgRmlyZUFjdGl2YXRl
RXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBU
ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKLSAgICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+ICgpIERlbGF5ZWQKLSAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVy
Q29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IGRhdGEsIGJvb2wgaGFzU2VjdXJp
dHlFcnJvcikKLSAgICBNYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJ
ZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IGNsaWVu
dHNEYXRhKQotICAgIENsYWltQ29tcGxldGVkKHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZp
ZXIpCi0gICAgRGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBT
ZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJBZ2VudCkKLSAgICBVcGRhdGVQcmVmZXJlbmNlc1N0b3Jl
KHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmUpCi0gICAgVGVybWluYXRl
UHJvY2VzcygpCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDY4MTE4OWE0YTVjNDE2MDY3MjA3ZGMyOTBiYjkzOWNkMWNlNjdlMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUy
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCi0jaW5jbHVkZSAiV2ViU1dPcmlnaW5UYWJsZS5oIgotCi0jaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1ib29sIFdlYlNXT3JpZ2luVGFibGU6OmNvbnRhaW5zKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAotewotICAgIHJldHVybiBtX3Nl
cnZpY2VXb3JrZXJPcmlnaW5UYWJsZS5jb250YWlucyhjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChv
cmlnaW4udG9TdHJpbmcoKSkpOwotfQotCi12b2lkIFdlYlNXT3JpZ2luVGFibGU6OnNldFNoYXJl
ZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlKQotewotICAgIGF1dG8g
c2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBpZiAoIXNoYXJlZE1lbW9yeSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgbV9zZXJ2aWNlV29ya2VyT3JpZ2luVGFibGUuc2V0U2hhcmVkTWVtb3J5KHNo
YXJlZE1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDkyMGRlZDA0MGNlNTYxODMzOTlmNmM5M2I4MmViMzZkZjczMDQ5NmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oCisrKyAvZGV2L251bGwK
QEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCi0jaW5jbHVkZSAi
U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNs
YXNzIFdlYlNXT3JpZ2luVGFibGUgewotcHVibGljOgotICAgIFdlYlNXT3JpZ2luVGFibGUoKSA9
IGRlZmF1bHQ7Ci0KLSAgICBib29sIGlzSW1wb3J0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW1w
b3J0ZWQ7IH0KLSAgICB2b2lkIHNldElzSW1wb3J0ZWQoKSB7IG1faXNJbXBvcnRlZCA9IHRydWU7
IH0KLSAgICBib29sIGNvbnRhaW5zKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYp
IGNvbnN0OwotICAgIHZvaWQgc2V0U2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFu
ZGxlJik7Ci0KLXByaXZhdGU6Ci0gICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgbV9z
ZXJ2aWNlV29ya2VyT3JpZ2luVGFibGU7Ci0gICAgYm9vbCBtX2lzSW1wb3J0ZWQgeyBmYWxzZSB9
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDM3MDU0OTM5MTRmYTE3OWE0ZWY1NGU1MGZmNjkzNTRk
NjgwOWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudC5oIgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgotI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJF
cnJvcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1h
bmFnZXIuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50Ojp+V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCgpCi17Ci0gICAgaWYgKG1fY29u
bmVjdGlvbikKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb25uZWN0aW9uID0g
V1RGTW92ZShtX2Nvbm5lY3Rpb24pXSB7IH0pOwotfQotCi1XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAsIG1f
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCi0g
ICAgLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQot
ICAgICwgbV9mZXRjaElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVyKQotewotfQotCi12b2lkIFdl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAg
ICAgICAgcmV0dXJuOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlIH0sIDApOwotfQotCi12b2lkIFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZm
ZXI+JiYgYnVmZmVyKQotewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm47
Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVj
ZWl2ZUZldGNoRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVu
dGlmaWVyLCB7IGJ1ZmZlciB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkg
fSwgMCk7Ci19Ci0KLXZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVj
ZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKLXsKLSAgICBp
ZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBzZW5kIHRoaXMgZm9ybSBkYXRhIHRvIHRoZSBvdGhlciBwcm9jZXNzIGFuZCBjb25zdW1l
IGl0IHRoZXJlLgotICAgIC8vIEZvciBub3cgYW5kIGZvciB0aGUgY2FzZSBvZiBibG9icywgd2Ug
cmVhZCBpdCB0aGVyZSBhbmQgc2VuZCB0aGUgZGF0YSB0aHJvdWdoIElQQy4KLSAgICBVUkwgYmxv
YlVSTCA9IGZvcm1EYXRhLT5hc0Jsb2JVUkwoKTsKLSAgICBpZiAoYmxvYlVSTC5pc051bGwoKSkg
ewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpE
aWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
ZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0
YSkgfSB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYmxvYlVSTCA9IGJsb2JV
UkwuaXNvbGF0ZWRDb3B5KCldICgpIHsKLSAgICAgICAgYXV0byogc2VydmljZVdvcmtlclRocmVh
ZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVh
ZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgICAgICBpZiAoIXNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eSkgewotICAgICAgICAgICAgZGlkRmFpbChpbnRlcm5hbEVycm9yKGJs
b2JVUkwpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIG1fYmxv
YkxvYWRlci5lbXBsYWNlKCp0aGlzKTsKLSAgICAgICAgYXV0byBsb2FkZXIgPSBzZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHktPmNyZWF0ZUJsb2JMb2FkZXIoKm1fYmxvYkxvYWRlciwgYmxvYlVSTCk7
Ci0gICAgICAgIGlmICghbG9hZGVyKSB7Ci0gICAgICAgICAgICBtX2Jsb2JMb2FkZXIgPSBzdGQ6
Om51bGxvcHQ7Ci0gICAgICAgICAgICBkaWRGYWlsKGludGVybmFsRXJyb3IoYmxvYlVSTCkpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9ibG9iTG9hZGVyLT5s
b2FkZXIgPSBXVEZNb3ZlKGxvYWRlcik7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUJsb2JDaHVuayhjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlk
UmVjZWl2ZUZldGNoRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJ
ZGVudGlmaWVyLCB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBzaXpl
IH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIDApOwotfQotCi12b2lkIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaEJsb2JMb2FkaW5nKCkKLXsKLSAgICBk
aWRGaW5pc2goKTsKLQotICAgIHN0ZDo6ZXhjaGFuZ2UobV9ibG9iTG9hZGVyLCBzdGQ6Om51bGxv
cHQpOwotfQotCi12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkRpZEZhaWxGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
ZmV0Y2hJZGVudGlmaWVyLCBlcnJvciB9LCAwKTsKLQotICAgIGNsZWFudXAoKTsKLX0KLQotdm9p
ZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2goKQotewotICAgIGlm
ICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRGaW5pc2hGZXRjaCB7IG1fc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0sIDApOwotCi0gICAgY2xlYW51
cCgpOwotfQotCi12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZE5vdEhh
bmRsZSgpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRs
ZUZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIg
fSwgMCk7Ci0KLSAgICBjbGVhbnVwKCk7Ci19Ci0KLXZvaWQgV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6Y2FuY2VsKCkKLXsKLSAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwotfQot
Ci12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNsZWFudXAoKQotewotICAg
IG1fY29ubmVjdGlvbiA9IG51bGxwdHI7Ci0KLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0g
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0g
KCkgewotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y2xlYW51cCgpOwotICAgICAgICB9KTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclRocmVh
ZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVh
ZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIpKQotICAgICAgICBzZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHktPnJlbW92ZUZldGNoKG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
ZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2ZTA1YWM5N2IxMDI0MTc1N2FjZDdj
NGVhMjU1NWExM2Q4ZjU5NTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9GZXRjaExvYWRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmV0
Y2hMb2FkZXJDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IGZpbmFsIDog
cHVibGljIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50IHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ+IGNyZWF0ZShSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJ
ZGVudGlmaWVyIGZldGNoVGFza0lkZW50aWZpZXIpCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29ubmVj
dGlvbiksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOwotICAgIH0KLQotICAgIH5XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50KCk7Ci0KLXByaXZhdGU6Ci0gICAgV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVE
YXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxXZWJDb3JlOjpGb3JtRGF0YT4mJikgZmluYWw7Ci0g
ICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKLSAg
ICB2b2lkIGRpZEZpbmlzaCgpIGZpbmFsOwotICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7
Ci0gICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKLQotICAgIHZvaWQgY2xlYW51cCgpOwotICAgIAot
ICAgIHZvaWQgZGlkUmVjZWl2ZUJsb2JDaHVuayhjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6
ZSk7Ci0gICAgdm9pZCBkaWRGaW5pc2hCbG9iTG9hZGluZygpOwotCi0gICAgc3RydWN0IEJsb2JM
b2FkZXIgZmluYWwgOiBXZWJDb3JlOjpGZXRjaExvYWRlckNsaWVudCB7Ci0gICAgICAgIGV4cGxp
Y2l0IEJsb2JMb2FkZXIoV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCYgY2xpZW50KSA6
IGNsaWVudChjbGllbnQpIHsgfQotCi0gICAgICAgIC8vIEZldGNoTG9hZGVyQ2xpZW50IEFQSQot
ICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJikgZmluYWwgeyB9Ci0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hh
ciogZGF0YSwgc2l6ZV90IHNpemUpIGZpbmFsIHsgY2xpZW50LT5kaWRSZWNlaXZlQmxvYkNodW5r
KGRhdGEsIHNpemUpOyB9Ci0gICAgICAgIHZvaWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBlcnJvcikgZmluYWwgeyBjbGllbnQtPmRpZEZhaWwoZXJyb3IpOyB9Ci0gICAg
ICAgIHZvaWQgZGlkU3VjY2VlZCgpIGZpbmFsIHsgY2xpZW50LT5kaWRGaW5pc2hCbG9iTG9hZGlu
ZygpOyB9Ci0KLSAgICAgICAgUmVmPFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ+IGNs
aWVudDsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkZldGNoTG9hZGVyPiBsb2Fk
ZXI7Ci0gICAgfTsKLQotICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
LSAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1fc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXI7Ci0gICAgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgbV9z
ZXJ2aWNlV29ya2VySWRlbnRpZmllcjsKLSAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9m
ZXRjaElkZW50aWZpZXI7Ci0gICAgc3RkOjpvcHRpb25hbDxCbG9iTG9hZGVyPiBtX2Jsb2JMb2Fk
ZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwZTllNmNhODNjNjU2YzEwYjBkYmU4ZGZkY2M1ZDljZGVhZjRiYzY5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKLQotI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLQotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJTV0NsaWVudENvbm5lY3Rpb24uaCIK
LSNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Nh
Y2hlZFJlc291cmNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb24uaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0V4Y2VwdGlvbkNvZGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lz
dHJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iLmg+Ci0jaW5jbHVkZSA8
cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotV2ViU2VydmljZVdvcmtlclByb3ZpZGVyJiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXI6OnNpbmdsZXRvbigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYlNlcnZpY2VX
b3JrZXJQcm92aWRlcj4gcHJvdmlkZXI7Ci0gICAgcmV0dXJuIHByb3ZpZGVyOwotfQotCi1XZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXI6OldlYlNlcnZpY2VXb3JrZXJQcm92aWRlcigpCi17Ci19Ci0K
LVdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiYgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpz
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKLXsK
LSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlcnZpY2VXb3Jr
ZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzZXNzaW9uSUQpOwotfQotCi1XZWJDb3JlOjpTV0NsaWVu
dENvbm5lY3Rpb24qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbkZvclNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICBBU1NF
UlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAgYXV0byogbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKLSAgICBpZiAoIW5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi0+ZXhpc3Rp
bmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Vzc2lvbklEKTsKLX0KLQotc3Rh
dGljIGlubGluZSBib29sIHNob3VsZEhhbmRsZUZldGNoKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0
aW9ucyYgb3B0aW9ucykKLXsKLSAgICBpZiAob3B0aW9ucy5zZXJ2aWNlV29ya2Vyc01vZGUgPT0g
U2VydmljZVdvcmtlcnNNb2RlOjpOb25lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAoaXNQb3RlbnRpYWxOYXZpZ2F0aW9uT3JTdWJyZXNvdXJjZVJlcXVlc3Qob3B0aW9ucy5kZXN0
aW5hdGlvbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiAhIW9wdGlvbnMu
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI7Ci19Ci0KLXZvaWQgV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyOjpoYW5kbGVGZXRjaChSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2g6OkNhbGxiYWNrJiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6
Y2FuU2VydmljZVdvcmtlcnNIYW5kbGVVUkxTY2hlbWUobG9hZGVyLnJlcXVlc3QoKS51cmwoKS5w
cm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkgfHwgIXNob3VsZEhhbmRsZUZldGNo
KGxvYWRlci5vcHRpb25zKCkpKSB7Ci0gICAgICAgIGNhbGxiYWNrKFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6UmVzdWx0OjpVbmhhbmRsZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihz
ZXNzaW9uSUQpOwotICAgIGF1dG8gZmV0Y2hJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZp
ZXI8RmV0Y2hJZGVudGlmaWVyVHlwZT4obG9hZGVyLmlkZW50aWZpZXIoKSk7Ci0gICAgbV9vbmdv
aW5nRmV0Y2hUYXNrcy5hZGQoZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2g6OmNyZWF0ZSgqdGhpcywgbG9hZGVyLCBmZXRjaElkZW50aWZpZXIsIGNvbm5lY3Rpb24sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFdURk1vdmUoY2FsbGJhY2sp
KSk7Ci19Ci0KLWJvb2wgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpjYW5jZWxGZXRjaChGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQotewotICAgIGF1dG8gZmV0Y2ggPSBtX29uZ29p
bmdGZXRjaFRhc2tzLnRha2UoZmV0Y2hJZGVudGlmaWVyKTsKLSAgICBpZiAoZmV0Y2gpCi0gICAg
ICAgICgqZmV0Y2gpLT5jYW5jZWwoKTsKLSAgICByZXR1cm4gISFmZXRjaDsKLX0KLQotdm9pZCBX
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OmZldGNoRmluaXNoZWQoRmV0Y2hJZGVudGlmaWVyIGZl
dGNoSWRlbnRpZmllcikKLXsKLSAgICBtX29uZ29pbmdGZXRjaFRhc2tzLnRha2UoZmV0Y2hJZGVu
dGlmaWVyKTsKLX0KLQotdm9pZCBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OmRpZFJlY2VpdmVT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIGlmIChhdXRvIGZldGNoID0gbV9vbmdv
aW5nRmV0Y2hUYXNrcy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8RmV0Y2hJZGVudGlmaWVyVHlw
ZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKSkKLSAgICAgICAgZmV0Y2gtPmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3MWMzMzJkOWI3YWQzYWE3MzEwZDFhNDBj
NGYzMzBhYTA0NGJhNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclBy
b3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLSNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2guaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJQ
cm92aWRlci5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci1jbGFzcyBDYWNoZWRSZXNvdXJjZTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWNsYXNzIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUHJvdmlkZXIgewotcHVibGljOgotICAgIHN0YXRpYyBXZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXImIHNpbmdsZXRvbigpOwotCi0gICAgdm9pZCBoYW5kbGVGZXRjaChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlciYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiwgUEFMOjpTZXNz
aW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpDYWxsYmFjayYmKTsKLSAgICBib29sIGNhbmNlbEZldGNo
KFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0gICAgdm9pZCBmZXRjaEZpbmlzaGVkKFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllcik7Ci0KLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwotICAg
IHZvaWQgZGlkUmVjZWl2ZVNlcnZpY2VXb3JrZXJDbGllbnRSZWdpc3RyYXRpb25NYXRjaChJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgTmV2
ZXJEZXN0cm95ZWQ8V2ViU2VydmljZVdvcmtlclByb3ZpZGVyPjsKLSAgICBXZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXIoKTsKLQotICAgIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiogZXhpc3Rp
bmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQpIGZpbmFs
OwotICAgIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rp
b25Gb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKSBmaW5hbDsKLQotICAgIEhhc2hNYXA8V2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckNsaWVudEZldGNoPj4gbV9vbmdv
aW5nRmV0Y2hUYXNrczsKLX07IC8vIGNsYXNzIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcgotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2OWMyMzM1Zjc5MWQy
ODhmOTVlYzAwYWI4ZjMxNzdlYTI1YjUwNDBhLi5lYzQ5MWUxMGJlMDY4MzZiMDhiZmUyNGFjMDVl
ZmQxOTE0YWU2NzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC00Myw2ICs0Myw5IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0
YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nl
c3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1
ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgog
I2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAj
aW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVh
bS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBAIC02NzQsNyArNjgwLDcg
QEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUKICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uJj4oKmNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbikuZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICAgICBMT0df
RVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcyciLCBkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpLnRvU3RyaW5nKCkuZGF0YSgpKTsKIH0KQEAgLTEyMTcsNiArMTIyMyw1MCBAQCBXZWJMb2Fk
ZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAgIHJldHVy
biBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2
b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVChtX3dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFM
OjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25u
ZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklkZW50
aWZpZXIpLCAwKSkgeworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAgICAg
ICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5jIG1lc3Nh
Z2UgZmFpbHVyZS4KKyAgICAgICAgICAgIC8vIEluIHRoaXMgcGFydGljdWxhciBjYXNlLCB0aGUg
cGF5bWVudCBwcm9jZXNzIGNhbiBiZSB0ZXJtaW5hdGVkIGJ5IHRoZSBVSSBwcm9jZXNzIHdoaWxl
IHRoZQorICAgICAgICAgICAgLy8gY29ubmVjdGlvbiBpcyBiZWluZyBkb25lLCBzbyB3ZSBhbHdh
eXMgd2FudCB0byBleGl0IGluc3RlYWQgb2YgY3Jhc2hpbmcuCisgICAgICAgICAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM0OC4KKyAgICAgICAg
ICAgIGV4aXQoMCk7CisjZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyNlbmRpZgorICAgICAg
ICB9CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICAgICAgSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5lY3Rpb25J
ZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworI2VsaWYgT1MoREFSV0lOKQorICAg
ICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5j
b2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAg
ICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5j
b2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpKTsKKyNlbHNlCisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjpp
ZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgICAgICBDUkFT
SCgpOworCisgICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKwor
ICAgIH0KKyAgICByZXR1cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247Cit9Cisj
ZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0
RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIHsKQEAgLTE2NzgsOSArMTcyOCw5IEBA
IExpYldlYlJUQ05ldHdvcmsmIFdlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmsoKQogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKIHZvaWQgV2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKHVpbnQ2NF90IHBhZ2VHcm91cElELCB1aW50
NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlLCBQQUw6OlNlc3Np
b25JRCBpbml0aWFsU2Vzc2lvbklEKQogewotICAgIC8vIFdlIGFyZSBpbiB0aGUgU2VydmljZSBX
b3JrZXIgY29udGV4dCBwcm9jZXNzIGFuZCB0aGUgY2FsbCBiZWxvdyBlc3RhYmxpc2hlcyBvdXIg
Y29ubmVjdGlvbiB0byB0aGUgTmV0d29yayBQcm9jZXNzCi0gICAgLy8gYnkgY2FsbGluZyBlbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uIFNXQ29udGV4dE1hbmFnZXIgbmVlZHMgdG8gdXNl
IHRoZSBzYW1lIHVuZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uIGFzIHRoZQotICAgIC8vIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiBmb3Igc3luY2hyb25pemF0aW9uIHB1cnBvc2VzLgorICAgIC8v
IFdlIGFyZSBpbiB0aGUgU2VydmljZSBXb3JrZXIgY29udGV4dCBwcm9jZXNzIGFuZCB0aGUgY2Fs
bCBiZWxvdyBlc3RhYmxpc2hlcyBvdXIgY29ubmVjdGlvbiB0byB0aGUgUGF5bWVudCBQcm9jZXNz
CisgICAgLy8gYnkgY2FsbGluZyB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi4gU1dDb250
ZXh0TWFuYWdlciBuZWVkcyB0byB1c2UgdGhlIHNhbWUgdW5kZXJseWluZyBJUEM6OkNvbm5lY3Rp
b24gYXMgdGhlCisgICAgLy8gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gZm9yIHN5bmNo
cm9uaXphdGlvbiBwdXJwb3Nlcy4KICAgICBhdXRvJiBpcGNDb25uZWN0aW9uID0gZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwogICAgIFNXQ29udGV4dE1hbmFn
ZXI6OnNpbmdsZXRvbigpLnNldENvbm5lY3Rpb24oc3RkOjptYWtlX3VuaXF1ZTxXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbj4oaXBjQ29ubmVjdGlvbiwgcGFnZUdyb3VwSUQsIHBhZ2VJRCwg
c3RvcmUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDNkMjFj
Yzg4M2E1MjY0MWE0MGFjMTM5OWMxYTJmOTljZDQ3YmQ1N2QuLjI3MGRiZDU2NDUwMzhlNGQ4ZDJl
NjY0YmM0YWMzYzk1NzUzMmM4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aApAQCAtOTgsNiArOTgsOSBAQCBjbGFzcyBXZWJMb2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBh
Z2U7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NTdXBwbGVtZW50
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjsKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xh
c3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBz
dHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAg
ICAgTGliV2ViUlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xv
c2VkKFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24mIGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6
U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpOworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAgIHZvaWQg
ZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKQEAg
LTQzMCw2ICs0MzgsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbj4gbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyAhRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAg
IFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYzM5MzU0NmI4MDVmNWExZTJkMjNhOWRkZDE1MzIzNDEzZjMz
M2ZjOC4uY2E4ODU1MTU3MDIxNmFjYmIzZGQwMGI2NGJkYWI1NjZmMTE5ZTQ5NSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDE4LTExLTA2ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAg
IFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2lj
Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vz
c0tpbGxJREJDbGVhbnVwLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlUGFn
ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGF0YWJhc2VQ
cm9jZXNzTmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkYXRhYmFzZVByb2Nl
c3NEaWRDcmFzaCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXlt
ZW50UHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6CisKIDIwMTgtMTAtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29ya2VyIGNhY2hlIG5vdCBzaGFy
ZWQgd2hlbiBhZGRlZCB0byBob21lc2NyZWVuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0K
aW5kZXggM2YxYTYyODg2ODIxMDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4uYzM0NmFiZmQ2
MjBmOTM1NTVmZDgwMDVjOGExYjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5tbQpAQCAtMTQ0LDYgKzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywg
Q2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlZCBwcm9j
ZXNzIHBvb2wgZXhpc3RzIHNvIHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2UncmUgYWJvdXQg
dG8gZG8gd29yayB3aXRoIGl0LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFByb2Nlc3NQb29s
ID0gW1dLUHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVYUEVDVF9FUSgo
cGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsK
ICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nl
c3NDb3VudF0pOwogCiAgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBk
ZWZhdWx0RGF0YVN0b3JlXTsKQEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291cmNlTG9hZFN0
YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBFQ1RfVFJVRShb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGFyZ2V0VVJM
LnBhdGhdKTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9w
YXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hh
cmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJh
c2ljLm1tCmluZGV4IDRjYjhmYTk3YTY2YzhhN2ZkODQ1OWVlZDBhNDU4NDJiMmI4MWZhODMuLjgz
MDM0NDNlZmUzYzljZWU2OGIxM2YwNGVhZTc3NGY0YjBkMGZjMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJh
c2ljLm1tCkBAIC05MTUsNyArOTE1LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU1dQcm9jZXNz
Q29ubmVjdGlvbkNyZWF0aW9uKQogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFJldGFp
blB0cjxXS1dlYlZpZXc+IG5ld1JlZ3VsYXJQYWdlV2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAKLSAgICAvLyBUZXN0IHRoYXQgYSByZWd1
bGFyIHBhZ2UgZG9lcyBub3QgdHJpZ2dlciBhIHNlcnZpY2Ugd29ya2VyIGNvbm5lY3Rpb24gdG8g
bmV0d29yayBwcm9jZXNzIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgc2VydmljZSB3b3JrZXIu
CisgICAgLy8gVGVzdCB0aGF0IGEgcmVndWxhciBwYWdlIGRvZXMgbm90IHRyaWdnZXIgYSBzZXJ2
aWNlIHdvcmtlciBjb25uZWN0aW9uIHRvIHBheW1lbnQgcHJvY2VzcyBpZiB0aGVyZSBpcyBubyBy
ZWdpc3RlcmVkIHNlcnZpY2Ugd29ya2VyLgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hv
c3QvcmVndWxhclBhZ2VXaXRob3V0Q29ubmVjdGlvbi5odG1sIl1dOwogCiAgICAgW3JlZ3VsYXJQ
YWdlV2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKQEAgLTk1OSw2ICs5NTksNDcgQEAgVEVT
VChTZXJ2aWNlV29ya2VycywgU1dQcm9jZXNzQ29ubmVjdGlvbkNyZWF0aW9uKQogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoU2VydmljZVdvcmtlcnMsIFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNyZWF0aW9uKQoreworICAgIEFTU0VSVChtYWluQnl0ZXMp
OworICAgIEFTU0VSVChzY3JpcHRCeXRlcyk7CisKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9h
bGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgUmV0YWluUHRyPFdL
V2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFtb
Y29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7
CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25l
ID0gZmFsc2U7CisKKyAgICBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBzZXRDb25maWd1cmF0aW9uSW5qZWN0ZWRCdW5k
bGVQYXRoKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworCisgICAgUmV0YWluUHRyPFJlZ3VsYXJQYWdl
TWVzc2FnZUhhbmRsZXI+IHJlZ3VsYXJQYWdlTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbUmVn
dWxhclBhZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlv
biB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOnJlZ3VsYXJQ
YWdlTWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInJlZ3VsYXJQYWdlIl07CisKKyAgICBSZXRh
aW5QdHI8U1dTY2hlbWVzPiBoYW5kbGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5p
dF0pOworICAgIGhhbmRsZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdp
dGhvdXRDb25uZWN0aW9uLmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIHJlZ3Vs
YXJQYWdlV2l0aG91dENvbm5lY3Rpb25CeXRlcyB9KTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRV
UkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKKworICAg
IFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCku
Y29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwor
ICAgIC8vIFRlc3QgdGhhdCBhIHJlZ3VsYXIgcGFnZSBkb2VzIG5vdCB0cmlnZ2VyIGEgcGF5bWVu
dCBwcm9jZXNzIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgc2VydmljZSB3b3JrZXIuCisgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdpdGhvdXRDb25uZWN0aW9u
Lmh0bWwiXV07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIC8v
IE1ha2Ugc3VyZSB0aGFuIGxvYWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRpZCBub3Qgc3RhcnQgYSBw
YXltZW50IHByb2Nlc3MuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJh
dGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKK30KKwogc3RhdGlj
IGNvbnN0IGNoYXIqIG1haW5CeXRlc1dpdGhTY29wZSA9IFIiU1dSRVNPVVJDRSgKIDxzY3JpcHQ+
CiAKQEAgLTEwNDYsNiArMTA4Nyw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3Jr
ZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5bWVudCBwcm9jZXNzIGlz
IG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0
aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTWFr
ZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUgc2Vy
dmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCkuY29u
ZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50KTsKIApAQCAtMTEzMCw2ICsx
MTc0LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAorICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyBwYXltZW50IHByb2Nlc3MgY3JlYXRl
ZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQ
b29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTGV0J3MgdXNlIHRoZSB3
ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNlcnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEgcGFn
ZS4KICAgICBuZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51
cC5tbQppbmRleCBhMzAyZTNmZTI1MDllYzRkNWM3ZWVjMTA3YzRhYjM1NDYyMjU5OWNmLi5hOGMy
MWEyYmY2ODc5YzA5YjFhNDU4ODg0ZjYwZDA1OGMxYmE1NjdlIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NL
aWxsSURCQ2xlYW51cC5tbQpAQCAtNzIsNiArNzIsNyBAQCBURVNUKEluZGV4ZWREQiwgV2ViUHJv
Y2Vzc0tpbGxJREJDbGVhbnVwKQogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9u
PiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOwog
CisKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIldlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRh
U3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCmluZGV4IDQ2YTAyY2JhZDM3ZGVmMTQ3
MGRmMDMyMzlhNzAyMjU0YTRhOTYyM2EuLmUwYWE4YzA2YmRhNDQxYWVkN2RkNjM0YTk5NDZiYTIy
ZmRjYmE1OTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC0z
MDYsNyArMzA2LDYgQEAgVEVTVChXZWJLaXQsIEN1c3RvbURhdGFTdG9yZVBhdGhzVmVyc3VzQ29t
cGxldGlvbkhhbmRsZXJzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0Nv
bnRpbnVlKTsKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKIAotICAgIC8vIFRoZSByZWNv
cmRzIHNob3VsZCBoYXZlIGJlZW4gZGVsZXRlZCwgYW5kIHRoZSBjYWxsYmFjayBzaG91bGQgaGF2
ZSBiZWVuIG1hZGUuCiAgICAgLy8gTm93IHJlZmV0Y2ggdGhlIHJlY29yZHMgdG8gdmVyaWZ5IHRo
ZXkgYXJlIGdvbmUuCiAgICAgZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9y
ZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5nZXQoKV0pOwogICAgIFtkYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6d2Vi
c2l0ZURhdGFUeXBlcy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRl
RGF0YVJlY29yZCAqPiAqZGF0YVJlY29yZHMpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmlu
ZGV4IDFlZDRlZDRmNmU5NDdiOWJiZDQ1MzgwNTQ0NmZlNTYxY2RjZTVmNDEuLjcwMDlhMDNhN2Rk
MjRhNGJlZWZhNDBlZmU2ZjE3MWM3MjIzNzRiNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bApAQCAtMzMwLDYgKzMzMCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIHZvaWQg
dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3Jr
ZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCmluZGV4IDQ1YWQ2NmIzNmJkYjk2MTE5OGI1YjBkMDc5MjcxMmNjNWNmNTRiYTguLjNhMmY4
OGFkOWViMWNlNmNmOWNjMTkwNzE1NmY0OGU0N2YxYTY5NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTI0OCw2
ICsxMjQ4LDEyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nl
c3MoKQogICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0
KCksIG51bGxwdHIsIG51bGxwdHIpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5h
bWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzIikpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JU
ZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBzdGF0aWMgdW5zaWduZWQgbmV4
dFVJU2NyaXB0Q2FsbGJhY2tJRCgpCiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGNhbGxiYWNrSUQg
PSBGaXJzdFVJU2NyaXB0Q2FsbGJhY2tJRDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYmEwZDZhNjU3ZDU0NWQ5ZTYzZTA0
YzA2N2JiMzQwOWNkM2JhZDVhOS4uOTdlMTk1N2Q5OTdiNTU2NWExZTlmNWVlODhhZjllMGVkMjcw
MjgxMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKQEAgLTQ0Myw2ICs0NDMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1p
bmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQg
cmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKEpTVmFsdWVSZWYpOwogICAgIHZvaWQgY2FsbERp
ZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQ0MTAwZjhmMzc5ZDM5Y2FjZWZiOGEyOTRj
ZTE5ZTQ3NDkxMGRkNGIuLjIxMzZmN2Y5MTMyMTQzMzVlNDM4MGNlZTZlZjM0YTE1YjkxMTZkYmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC00OTIsNiAr
NDkyLDcgQEAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRyb2xs
ZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oV0sKICAgICAgICAgbmV0d29ya1Byb2Nlc3NE
aWRDcmFzaCwKICAgICAgICAgMCwgLy8gcGx1Z0luSW5mb3JtYXRpb25CZWNhbWVBdmFpbGFibGUK
ICAgICAgICAgMCwgLy8gY29weVdlYkNyeXB0b01hc3RlcktleQorICAgICAgICBkYXRhYmFzZVBy
b2Nlc3NEaWRDcmFzaCwKICAgICB9OwogICAgIFdLQ29udGV4dFNldENsaWVudChtX2NvbnRleHQu
Z2V0KCksICZjb250ZXh0Q2xpZW50LmJhc2UpOwogCkBAIC0xMDYyLDYgKzEwNjMsMjYgQEAgY29u
c3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYKIH0K
IAorY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc05hbWUoKQorewor
ICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIG5vdCBoYXJkY29kZSB0aGUgcHJvY2VzcyBuYW1l
LgorI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjaWYgIVBM
QVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA8IDExMDMwMAorICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZXMiOworI2Vsc2UKKyAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudCI7
CisjZW5kaWYKKyNlbGlmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiAiY29tLmFwcGxlLldl
YktpdC5QYXltZW50LkRldmVsb3BtZW50IjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICByZXR1
cm4gIldlYktpdFBheW1lbnRQcm9jZXNzIjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1
cm4gIldQRVBheW1lbnRQcm9jZXNzIjsKKyNlbHNlCisgICAgcmV0dXJuICJEYXRhYmFzZVByb2Nl
c3MiOworI2VuZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzKTsK
QEAgLTE0ODUsNiArMTUwNiwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vz
c0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAogICAgIHN0YXRp
Y19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5u
ZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRhdGFi
YXNlUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5kYXRhYmFzZVByb2Nlc3NEaWRDcmFzaCgpOworfQorCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91
cykKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5IikpOwpAQCAtMTgxOCw2ICsxODQ0LDEzIEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQo
MSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc0RpZENyYXNoKCkK
K3sKKyAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVy
KG1fY29udGV4dC5nZXQoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChw
aWQgJWxkKVxuIiwgZGF0YWJhc2VQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQp
KTsKKyAgICBleGl0KDEpOworfQorCiAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2
aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CkBAIC0yNjE3LDYgKzI2NTAsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6dGVy
bWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRp
b24mKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDVjM2Zl
NTNkMTY3NDY4MGQ5NjZiYjIyOTRhNGVjNGU0NDgzYTFlZGYuLjgxODNlMGEwNWUyODI1MzE3YzU2
NjJjNjdhNWU4YTBlOTdmYjQ0MWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKQEAgLTIzMSw2ICsyMzEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5l
dHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcygp
OworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3Zl
QWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7CiAKQEAgLTMyOCw2ICszMjksOCBAQCBwcml2YXRlOgog
ICAgIC8vIFdLQ29udGV4dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNzRGlk
Q3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vz
c0RpZENyYXNoKCk7CisgICAgc3RhdGljIHZvaWQgZGF0YWJhc2VQcm9jZXNzRGlkQ3Jhc2goV0tD
b250ZXh0UmVmLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBkYXRhYmFzZVByb2Nlc3NEaWRDcmFz
aCgpOwogCiAgICAgLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRp
ZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAppbmRleCBjNGRkYzkyOGE0ZjU2MGIzNDA5YWM1YmNjMmU0Yzc0YmU5ZTZjNmRkLi4z
ZTcyZGJlYzU4YzdhNjMwNjdmYjMwNGM1NjcxMTEzYmNlMjYyZTFhIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQ0MCw2ICsxNDQwLDEyIEBAIFdLUmV0
YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01l
c3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRl
UGF5bWVudFByb2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSkg
ewogICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGVjZjczMDZh
ODU4MTk4NmJkY2VkZTM1ZTQ1M2ViMWI5NTEwNzU4Yy4uMmJiNDE2MWM5OGM3NGU3MjNhM2M3ZTEw
ZTU4MDNmYjkxMDY1NWZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA2ICBaYW1p
dWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBz
dHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9y
dFNjcmlwdHMuaHRtbDoKKwogMjAxOC0xMC0xMiAgRGF3ZWkgRmVudG9uICA8cmVhbGRhd2VpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTW9qYXZlIFdrMl0gTGF5b3V0IFRlc3QgaHR0cC90ZXN0cy9j
YWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFsaWRhdGlvbi1hdHRhY2htZW50Lmh0bWwgaXMg
Zmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9w
ZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbAppbmRleCAwOGE5YTU5NjIz
MjEwNGI4NjVlM2FiMmRmODVhOWI5NDU3ZWM4NGU5Li4zYzc2ZDlhYjYwYzhjODMxNGQxNGU5Mzhj
YTMyZTU2NjRhNDY3Yzg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1sCkBA
IC0zNyw3ICszNyw3IEBAIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKIAogICAgIGlmICghd2lu
ZG93LmxvY2F0aW9uLmhhc2gubGVuZ3RoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKICAgICAgICAg
YXdhaXQgd2FpdEZvcigxMDApOwogICAgICAgICB3aW5kb3cubG9jYXRpb24gKz0gIj90ZXN0IyIg
KyByYW5kb21JZDsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvcGF0Y2guZGlmZiBiL3Bh
dGNoLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRiZjhhNTQzODg3NzgyYThhZWVkNWQxODYwZDgwNzE3ZGMy
ZjliMwotLS0gL2Rldi9udWxsCisrKyBiL3BhdGNoLmRpZmYKQEAgLTAsMCArMSwxMDMgQEAKK2Rp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagoraW5kZXgg
YzE5ODA0NjI5MDMuLjJhMDI2YjgyNjY4IDEwMDY0NAorLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorQEAgLTg0NSw2ICs4NDUsNyBAQAorIAkJMzdGOTBE
RTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5
NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07CisgCQkzN0ZDMTk0NzE4NTBG
QkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBG
QkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKyAJCTM3RkMxOTRC
MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBE
NkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKKysJ
CTM5MkRFQkE1MjE4QTk0QzAwMDQzQUYyOSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2Ig
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5MkRFQkE0
MjE4QTk0QzAwMDQzQUYyOSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2IgKi87IH07Cisg
CQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisgCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OworIAkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5
M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OworQEAgLTEyOTQsNyArMTI5
NSw2IEBACisgCQlBNUMwRjBBNzIwMDA2NTREMDA1MzY1MzYgLyogX1dLTlNXaW5kb3dFeHRyYXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QzBGMEE2
MjAwMDY1NDQwMDUzNjUzNiAvKiBfV0tOU1dpbmRvd0V4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisgCQlBNUMwRjBBQjIwMDA2NTgyMDA1MzY1
MzYgLyogV0tJbnNwZWN0b3JXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1QzBGMEFBMjAwMDY1NkUwMDUzNjUzNiAvKiBXS0luc3BlY3Rvcldp
bmRvdy5oICovOyB9OworIAkJQTVFRkQzOEMxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZpc2li
aWxpdHlUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTVFRkQzOEIxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZpc2liaWxpdHlUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CistCQlBNzhDQ0RE
QTE5M0FDOUY0MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiIGluIENvcHlG
aWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhDQ0RENzE5M0FDOUUz
MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovOyB9OworIAkJQTc4Q0NE
REIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiBpbiBD
b3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4Q0NERDgxOTNB
QzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLzsgfTsKKyAJ
CUE3OENDRERDMTkzQUM5RkIwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQu
c2IgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEND
REQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgKi87
IH07CisgCQlBN0Q3OTJEODE3NjdDQ0EzMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDc5MkQ0MTc2
N0NCMDkwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oICovOyB9OworQEAgLTE1NjYsNyAr
MTU2Niw2IEBACisgCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBN
ZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5
NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CisgCQlF
MTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTgg
LyogRWRpdGluZ1JhbmdlLmggKi87IH07CisgCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyog
UGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1Mu
bW0gKi87IH07CistCQlFMTE1QzcxNjE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktp
dC5TdG9yYWdlLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
LnNiICovOyB9OworIAkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87
IH07CisgCQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3Ry
YXRlZ2llcy5oICovOyB9OworIAkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJv
Y2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCAqLzsgfTsK
K0BAIC0xODYyLDggKzE4NjEsOCBAQAorIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAwOworIAkJCWZp
bGVzID0gKAorIAkJCQlBNzhDQ0REQjE5M0FDOUY4MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktp
dC5OZXR3b3JraW5nLnNiIGluIENvcHlGaWxlcyAqLywKKy0JCQkJQTc4Q0NEREExOTNBQzlGNDAw
NUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiBpbiBDb3B5RmlsZXMgKi8sCisg
CQkJCUE3OENDRERDMTkzQUM5RkIwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQuc2IgaW4gQ29weUZpbGVzICovLAorKwkJCQkzOTJERUJBNDIxOEE5NEMwMDA0M0FGMjkgLyog
Y29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiIGluIENvcHlGaWxlcyAqLywKKyAJCQkpOworIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworIAkJfTsKK0BAIC0yOTkx
LDYgKzI5OTAsNyBAQAorIAkJMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKyAJCTM3RkMxOTQ4MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisgCQkzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworKwkJMzkyREVCQTQyMThBOTRDMDAwNDNBRjI5IC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2I7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCTNGNDE4RUY2MTg4N0JE
OTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CitAQCAtMzg4
Nyw3ICszODg3LDYgQEAKKyAJCUE1RDM1MDREMUQ3OEYwRDIwMDUxMjRBOSAvKiBSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworIAkJQTVFRkQzOEIxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZpc2liaWxpdHlUeXBl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VWaXNpYmlsaXR5VHlw
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUE3MkQ1RDdGMTIzNkNCQTgwMEE4
OEIxNSAvKiBBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CistCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktp
dC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBw
bGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5n
LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworIAkJQTc4Q0NERDkxOTNBQzlFMzAwNUVD
QzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQlBN0JEOTg2
MzE5NDY1M0Q0MDBEMzU2OTggLyogRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhtbDsgcGF0aCA9ICJEYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CitAQCAtNDQwNiw3ICs0NDA1LDYgQEAKKyAJCURGNThDNjMxMTM3
MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKyAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2
ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZl
V2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUUxMDVG
RTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CistCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAv
KiBXZWJLaXQuaWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGltYWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9IFJlc291cmNlcy9X
ZWJLaXQuaWNuczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUUxNEE5NTQ3MTZFMDE2
QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQlFMTRBOTU0ODE2RTAx
NkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKK0BAIC03MTI0LDcgKzcxMjIsNyBAQAor
IAkJCWlzYSA9IFBCWEdyb3VwOworIAkJCWNoaWxkcmVuID0gKAorIAkJCQlBNzhDQ0REODE5M0FD
OUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAorLQkJCQlB
NzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICov
LAorKwkJCQkzOTJERUJBNDIxOEE5NEMwMDA0M0FGMjkgLyogY29tLmFwcGxlLldlYktpdC5QYXlt
ZW50LnNiICovLAorIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiICovLAorIAkJCSk7CisgCQkJcGF0aCA9IGlvczsKK0BAIC04Mzg3
LDcgKzgzODUsNiBAQAorIAkJCQk1MUZBRUMzNzFCMDY1NzMxMDAwOUM0RTcgLyogQ2hpbGRQcm9j
ZXNzTWVzc2FnZXMuaCAqLywKKyAJCQkJRTE3QUUyQzIxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgKi8sCisgCQkJCTdBMTUwNjcyMURENTYyOTgw
MDFGNEI1OCAvKiBjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IgKi8sCistCQkJCUUx
MTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8s
CisgCQkJCUUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5z
YiAqLywKKyAJCQkJMUFCN0Q2MTcxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorIAkJCQkxQUI3RDYxODEyODhCOUQ5MDBDRkQwOEMgLyogRG93
bmxvYWRQcm94eU1lc3NhZ2VzLmggKi8sCitAQCAtMTAyMjgsMTMgKzEwMjI1LDEzIEBACisgCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKyAJCQlmaWxlcyA9ICgKKyAJCQkJRTE3QUUy
QzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2Ig
aW4gUmVzb3VyY2VzICovLAorLQkJCQlFMTE1QzcxNjE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFw
cGxlLldlYktpdC5TdG9yYWdlLnNiIGluIFJlc291cmNlcyAqLywKKyAJCQkJRTExRDM1QUUxNkI2
M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywK
KyAJCQkJNDE0REQzNzkyMEJGNDNGNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4u
Z3BjNjQuc2IgaW4gUmVzb3VyY2VzICovLAorIAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0ODMg
LyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLAorIAkJCQk4REMyRUY1MzA0
ODZBNjk0MDA5OEIyMTYgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAorIAkJ
CQkzRkIwOEU0MzFGNjBCMjQwMDA1RTUzMTIgLyogaU9TLnhjYXNzZXRzIGluIFJlc291cmNlcyAq
LywKKyAJCQkJOTNBMkEzNDYxRDI0NjEyNTAwMkI1OUQzIC8qIG1lZGlhSWNvbi5wZGYgaW4gUmVz
b3VyY2VzICovLAorKwkJCQkzOTJERUJBNTIxOEE5NEMwMDA0M0FGMjkgLyogY29tLmFwcGxlLldl
YktpdC5QYXltZW50LnNiIGluIFJlc291cmNlcyAqLywKKyAJCQkpOworIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworIAkJfTsKK0BAIC0xMDQ0MSw3ICsxMDQzOCw3
IEBACisgCQkJZmlsZXMgPSAoCisgCQkJKTsKKyAJCQlpbnB1dFBhdGhzID0gKAorLQkJCQkiJChT
UkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlN0
b3JhZ2Uuc2IiLAorKwkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2IiLAorIAkJCQkiJChTUkNST09UKS9SZXNvdXJj
ZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IiLAor
IAkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUu
V2ViS2l0LldlYkNvbnRlbnQuc2IiLAorIAkJCSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353949</attachid>
            <date>2018-11-06 01:08:49 -0800</date>
            <delta_ts>2018-11-07 15:10:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181106010848.patch</filename>
            <type>text/plain</type>
            <size>375835</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDdhNDNlMDU1ZWEyZDU2NThlNDkwYTM0NDU5ZDA2YjZhYTUxM2YzLi42NTMzOGJhZWYxNzU0Yjdm
ZGQ3ODQ0YjU4Y2Y1ZDcxNDUxNGVlNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMC0xMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM3MDYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNlNmMxZTI0ZDRjODdiYmEwMTZhMTZjOTg3OTA5NjQxOGIz
MmUyYmEuLjUxNjcwZjk3ODc4Y2E0YThjNGZkYzQ4NzJhNmQ3MmUyN2FiNDgxMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFw
cGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3M6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvUGxheWJhY2tRdWFsaXR5TWV0
cmljcyk6CisKIDIwMTgtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyJ3MgcGFyZW50IHNob3VsZCBi
ZSBhIFdlYWtQdHIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyNzE0YWM3MWMxMWQ5ZTRjYWQ4ZDRkYWRkZGE0OGEw
MDQ3ZjYzYzIuLjEzMDM2MTBkMjY0N2QyMjNkZWYxMmNmYjUyOTUxY2FiZDQxNzRkZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTY5IEBACisyMDE4LTExLTA2ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVA
YXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEy
OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50
aXRsZW1lbnRzOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3gu
ZW50aXRsZW1lbnRzOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Rh
dGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1l
bnRTZXJ2aWNlLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnB1
dE9yQWRkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHA6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkTm90SGFu
ZGxlRmV0Y2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVucmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6
c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpwb3N0UGF5bWVudFRhc2spOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzczo6cGVyZm9ybU5leHRQYXltZW50VGFzayk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAg
ICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gu
bWVzc2FnZXMuaW4uCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5U
YWJsZS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRi
b3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuUGF5bWVudC5zYjogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiLgorICAgICAgICAq
IFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0Ojpwcm9jZXNzU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdlYktpdDo6c2Fu
ZGJveERpcmVjdG9yeSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlUGF5
bWVudFByb2Nlc3NDYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRD
bG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRD
bGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xv
c2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzc0FuZFdlYnNpdGVE
YXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1l
bnRQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRB
bnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2guY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9TZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2guaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVu
dC9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW46IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVz
c2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oLgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW46IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcC4KKyAgICAgICAgKFdl
YktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5z
dGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW46IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BheW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oLgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIuY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE4LTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWxsb3cgZW5jb2Rpbmcgb2Ygc21hbGwgZW51bSBjbGFzc2VzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJh
MjQ5NzMzYi4uN2EyODU3MjdlYjY1NzI5MmRkMDE3NGE2YjkwN2VjODViZTUyZGY1NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNzQsNiArNzQsOCBAQCBFTkFCTEVfQ09OVEVOVF9GSUxU
RVJJTkdfaXBob25lb3MgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkdfaXBob25lc2ltdWxhdG9yID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwog
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX21hY29zeCA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
RzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKKwogRU5BQkxFX0NTUzNfVEVYVCA9IDsK
IAogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBk
NGYyYTI0OTczM2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAxNzRhNmI5MDdlYzg1YmU1MmRmNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC03NCw2ICs3NCw4IEBAIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhv
bmVvcyA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
R19pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkdfbWFjb3N4ID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogCitFTkFC
TEVfUEFZTUVOVF9QUk9DRVNTID0gOworCiBFTkFCTEVfQ1NTM19URVhUID0gOwogCiBFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0gRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
cwppbmRleCBmMjZlOTZkNDJhMDg0YzNkNTNjMmMwOTcwOGNiMTIzZTA5NjI2ZGFiLi5kMjAxNjM1
YzA1YWM3MzQ2ZWJjMTY5MzFiNThjZDE1YjNmYjRlNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNv
cmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC00Myw2ICs0Myw5IEBACiAv
KiBWaXNpYmxlIG5hbWUgb2YgU2VydmljZSBXb3JrZXIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlz
IHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFNlcnZpY2UgV29ya2VyICglQCkiID0gIiVA
IFNlcnZpY2UgV29ya2VyICglQCkiOwogCisvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIHBheW1lbnQg
cHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLworIiVAIFBh
eW1lbnQiID0gIiVAIFBheW1lbnQiOworCiAvKiBWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9j
ZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgV2ViIENv
bnRlbnQiID0gIiVAIFdlYiBDb250ZW50IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVk
MDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0OTczM2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAx
NzRhNmI5MDdlYzg1YmU1MmRmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTc0LDYgKzc0LDgg
QEAgRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZW9zID0gRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZXNpbXVsYXRvciA9IEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19tYWNvc3ggPSBF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CisK
IEVOQUJMRV9DU1MzX1RFWFQgPSA7CiAKIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsg
PSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
aW5kZXggZTAwYWUyZjJmZGU4YzE3YzIwOWQ0NGYxOWQ4ZDY0YTZkZDAwMmY2OC4uMGE0MmQwYTNk
ODU3NGI3YWQzMjA2OGI5YmM0MDdlNjNiYzgwNDFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CkBAIC0zMjYyLDcgKzMyNjIsNyBAQCBzdGQ6Om9wdGlvbmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5
TWV0cmljcz4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dgogewogICAgIGlm
ICghW21fdmlkZW9MYXllciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHZpZGVvUGVyZm9y
bWFuY2VNZXRyaWNzKV0pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KKyAgICAKICNp
ZiBQTEFURk9STShXQVRDSE9TKQogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAjZWxzZQpAQCAt
MzI4OCw2ICszMjg4LDE5IEBAIHN0ZDo6b3B0aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2CiAjZW5kaWYKIH0KIAor
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2ssIE1lZGlhVGltZSB0aW1lKQorewor
ICAgIGlmICghbV9hdlBsYXllcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgX19ibG9j
ayBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gdGFza0luID0gV1RGTW92ZSh0YXNrKTsKKworICAgIFtt
X2F2UGxheWVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6QFtbTlNWYWx1ZSB2YWx1
ZVdpdGhDTVRpbWU6dG9DTVRpbWUodGltZSldXSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICAgICAgdGFza0luKCk7CisgICAgfV07CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3Rh
dGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFhZGI1ZTkzYzIzZGNhNzU0M2IxODA0
YzUuLjdiNzQxZTEwYTcyZjIyYTc4MDdkNGU3NzM2Mzg3OWMyYTQwMGQ5ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtMzEsNyArMzEsOSBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJL
SVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0v
U2hhcmVkL1JlbW90ZUxheWVyVHJlZSIKKyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVu
dCIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvV2Vic2l0ZURhdGEiCisgICAgIiR7V0VCS0lU
X0RJUn0vUGF5bWVudFByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzIgogICAg
ICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DIgpAQCAtNDcsNiArNDksNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlIgorICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QYXltZW50
IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24iCiAgICAgIiR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2siCkBAIC0xMjEsNiArMTI0LDkgQEAgc2V0
KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1NvY2tldC5tZXNzYWdlcy5pbgogCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9s
bGVyUHJveHkubWVzc2FnZXMuaW4KICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MubWVz
c2FnZXMuaW4KICAgICBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCkBAIC0xNTEsNiArMTU3LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAg
ICAgVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogCisg
ICAgVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAg
ICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAg
ICBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTIyMSw2ICsyMjksMTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklF
UwogICAgIFdlYktpdAogKQogCitzZXQoUGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2Vi
S2l0CispCisKIHNldChQbHVnaW5Qcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpAQCAt
NDQwLDEwICs0NTIsMjAgQEAgaWYgKFdlYktpdF9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRSkK
ICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoTmV0d29ya1Byb2Nlc3MgUFJPUEVSVElFUyBPVVRQ
VVRfTkFNRSAke1dlYktpdF9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRX0pCiBlbmRpZiAoKQog
CithZGRfZXhlY3V0YWJsZShQYXltZW50UHJvY2VzcyAke1BheW1lbnRQcm9jZXNzX1NPVVJDRVN9
KQorQUREX1dFQktJVF9QUkVGSVhfSEVBREVSKFBheW1lbnRQcm9jZXNzKQordGFyZ2V0X2xpbmtf
bGlicmFyaWVzKFBheW1lbnRQcm9jZXNzICR7UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTfSkKK2lu
c3RhbGwoVEFSR0VUUyBQYXltZW50UHJvY2VzcyBERVNUSU5BVElPTiAiJHtMSUJFWEVDX0lOU1RB
TExfRElSfSIpCisKK2lmIChXZWJLaXRfUGF5bWVudFByb2Nlc3NfT1VUUFVUX05BTUUpCisgICAg
c2V0X3RhcmdldF9wcm9wZXJ0aWVzKFBheW1lbnRQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05B
TUUgJHtXZWJLaXRfUGF5bWVudFByb2Nlc3NfT1VUUFVUX05BTUV9KQorZW5kaWYgKCkKKwogaWYg
KENPTVBJTEVSX0lTX0dDQ19PUl9DTEFORykKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxB
R1MoV2ViS2l0IC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKICAgICBXRUJLSVRfQUREX1RBUkdFVF9D
WFhfRkxBR1MoV2ViUHJvY2VzcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCiAgICAgV0VCS0lUX0FE
RF9UQVJHRVRfQ1hYX0ZMQUdTKE5ldHdvcmtQcm9jZXNzIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikK
KyAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoUGF5bWVudFByb2Nlc3MgLVduby11bnVz
ZWQtcGFyYW1ldGVyKQogZW5kaWYgKCkKIAogIyBGSVhNRTogTWFjIHNob3VsZCBidWlsZCBhIHBs
dWdpbiBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9E
YXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMv
RGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMKaW5kZXggMzc0NzVlZWU4ODJkNTM2MTI4M2ZhMzFh
MGVmNjFiNWJkODQzYWViYi4uNTE1MDFkNWZmZDQyNTY1MTI5MzkwNjdmNjAzNTZkZTNlZTgzOGFl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9T
LmVudGl0bGVtZW50cworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNl
cy1pT1MuZW50aXRsZW1lbnRzCkBAIC0zLDkgKzMsNyBAQAogPHBsaXN0IHZlcnNpb249IjEuMCI+
CiA8ZGljdD4KIAk8a2V5PnNlYXRiZWx0LXByb2ZpbGVzPC9rZXk+Ci0JPGFycmF5PgotCQk8c3Ry
aW5nPmNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZTwvc3RyaW5nPgotCTwvYXJyYXk+CisJPGFycmF5
Lz4KIAk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1czwva2V5PgogCTx0cnVlLz4K
IDwvZGljdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0
OTczM2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAxNzRhNmI5MDdlYzg1YmU1MmRmNTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtNzQsNiArNzQsOCBAQCBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBob25lb3MgPSBF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBob25l
c2ltdWxhdG9yID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HX21hY29zeCA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklORzsKIAorRU5BQkxFX1BBWU1F
TlRfUFJPQ0VTUyA9IDsKKwogRU5BQkxFX0NTUzNfVEVYVCA9IDsKIAogRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSyA9IEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3gu
ZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1z
YW5kYm94LmVudGl0bGVtZW50cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODZhYTcxNWFlMGVmMmVkODQwNzE0M2M5
Y2ZlYjBhNjIxZjE1Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cwpAQCAtMCwwICsxLDggQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3Qg
UFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNv
bS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRp
Y3Q+CisJPGtleT5jb20uYXBwbGUucm9vdGxlc3MucGF5bWVudC5XZWJLaXRQYXltZW50U2FuZGJv
eDwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnIGIvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MzVlM2E3MWZlMjAzMzE2M2VlZDA5MmNjOWE5OTM2NWM4YzBiMjk2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZwpA
QCAtMCwwICsxLDM2IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFy
ZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
Ky8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1hQQ19TRVJWSUNFX0lP
U19FTlRJVExFTUVOVFNfQkFTRSA9IERhdGFiYXNlcy1pT1M7CisKK1dLX1NUT1JBR0VfRU5USVRM
RU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19TVE9SQUdFX0VOVElUTEVNRU5UU19SRVNUUklD
VEVEX1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRz
OworCitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0gJChXS19TVE9SQUdF
X0VOVElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JFU1RSSUNURURfRU5USVRMRU1FTlRT
KSk7CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJQlJBUllfVkFMSURBVElPTl9DT0RF
X1NJR05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9E
VUNUX05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsK
K0lORk9QTElTVF9GSUxFID0gUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9QYXltZW50U2VydmljZS9JbmZvLnBsaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IGZlNTUxZjQ5NzFlNDEwMjAyYzM3M2I4NWUxNzhjNTUzYTZjNzUzYzEuLmFmZDdjMGMwYmJl
MDJiYmZjODUxZDEwZjJmNmRjNTZkN2NiYmVhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTM3LDYgKzM3LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvQVBJ
L0NvY29hIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbiBcCiAgICAgJChX
ZWJLaXQyKS9TaGFyZWQvbWFjIFwKKyAgICAkKFdlYktpdDIpL1BheW1lbnRQcm9jZXNzIFwKICAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGVQYXkgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0b21h
dGlvbiBcCkBAIC01MSw2ICs1Miw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKKyAgICAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvUGF5bWVudCBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Bs
dWdpbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCkBAIC03Myw2ICs3NSw3IEBAIFZQQVRIID0g
XAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QYXltZW50IFwKICAg
ICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXApA
QCAtMTMxLDYgKzEzNCw5IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFNtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXIgXAogICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFu
YWdlciBcCisgICAgUGF5bWVudFByb2Nlc3MgXAorICAgIFBheW1lbnRQcm9jZXNzUHJveHkgXAor
ICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciBcCiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dl
c3R1cmVDb250cm9sbGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmlu
ZGV4IDRkZDk1NGVlNDdlZWZkYzUyMTA0OGQ4YmNjNzBhMzZlZDAzYzdkOTcuLjNhMjk1NGZiN2E4
MWE0NjUyM2RiNmRiYjk4YjIxMWVhZTJmNzE3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURC
CiAgICAgICAgICYmIG92ZXJ3cml0ZU1vZGUgIT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEluZGV4
ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOjpPdmVyd3JpdGUpCiAgICAgICAgICYmIG92
ZXJ3cml0ZU1vZGUgIT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEluZGV4ZWREQjo6T2JqZWN0U3Rv
cmVPdmVyd3JpdGVNb2RlOjpPdmVyd3JpdGVGb3JDdXJzb3IpKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIG1lc3NhZ2UgZnJvbSB0aGUgV2ViUHJvY2VzcyBpcyBjb3JydXB0LgotICAgICAgICAv
LyBUaGUgTmV0d29yayBQcm9jZXNzIHNob3VsZCByZXR1cm4gZWFybHkgYXQgdGhpcyBwb2ludCwg
YnV0IGNhbiB3ZSBhbHNvIGtpbGwgdGhlIGJhZCBXZWJQcm9jZXNzPworICAgICAgICAvLyBUaGUg
UGF5bWVudFByb2Nlc3Mgc2hvdWxkIHJldHVybiBlYXJseSBhdCB0aGlzIHBvaW50LCBidXQgY2Fu
IHdlIGFsc28ga2lsbCB0aGUgYmFkIFdlYlByb2Nlc3M/CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWM5NDIyNDA0MThmYTIyYjMzYzRm
N2IzMDYxMDBlMjIwZTY1ZDI4OC4uNDBhOWI2ZTNjZTU5MzY1MDY3NTk0YjE1MzY2NWY4NTc4ODE0
YTA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTczMiw3ICs3MzIsNyBAQCBz
dGF0aWMgdWludDY0X3QgZ2VuZXJhdGVJREJDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCkK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaElEQkNvbm5lY3Rp
b25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90JiBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IGdl
bmVyYXRlSURCQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpOwotICAgIExPRyhJbmRleGVk
REIsICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNoSURCQ29ubmVjdGlv
blRvU2VydmVyIC0gJSIgUFJJdTY0LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAg
TE9HKEluZGV4ZWREQiwgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIgLSAlIiBQUkl1NjQsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKTsKICAgICBBU1NFUlQoIW1fd2ViSURCQ29ubmVjdGlvbnMuY29udGFpbnMoc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpKTsKICAgICAKICAgICBtX3dlYklEQkNvbm5lY3Rpb25zLnNldChz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVh
dGUoKnRoaXMsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXNzaW9uSUQpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09y
aWdpblN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV09yaWdpblN0b3JlLmNwcAppbmRleCAwNGNiZjIxYjNlN2FhYTYzMWI1MjUzYTdkNTk2
M2RjNDg3ZTk5ZDc2Li5hYTU1YzNkN2U0MjBmM2ZhOGYwMDZlMmE0YjQzODE4YmZkOTAxNGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dPcmlnaW5TdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2Vi
U1dPcmlnaW5TdG9yZTo6c2VuZFN0b3JlSGFuZGxlKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29u
bmVjdGlvbikKIAogICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpTZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KGhhbmRsZSkpOwogfQotCisgICAg
CiB2b2lkIFdlYlNXT3JpZ2luU3RvcmU6OmRpZEludmFsaWRhdGVTaGFyZWRNZW1vcnkoKQogewog
ICAgIGZvciAoYXV0byogY29ubmVjdGlvbiA6IG1fd2ViU1dTZXJ2ZXJDb25uZWN0aW9ucykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMGMyODAyZDIzNDI5MjQ4
YzU3ZmEyOGY2YzYxMGRjYzcyMGQyNGZhMy4uOWJkMTkzMzhmMThiYmNjNmExYThjYmZjMjNhOWRi
NWQzNzM4NGVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAg
LTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICNkZWZpbmUgU1dTRVJWRVJDT05O
RUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKG1f
c2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAg
LSBXZWJTV1NlcnZlckNvbm5lY3Rpb246OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQogI2Rl
ZmluZSBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChmbXQs
IC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIFNlcnZpY2VXb3JrZXIsICIlcCAtIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6IiBm
bXQsIHRoaXMsICMjX19WQV9BUkdTX18pCi0KKyAgICAKIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyJiBzZXJ2ZXIsIElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IFNXU2VydmVyOjpDb25uZWN0
aW9uKHNlcnZlcikKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKQEAgLTc1LDcgKzc1LDcg
QEAgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp+V2ViU1dTZXJ2ZXJDb25uZWN0aW9uKCkKICAgICBm
b3IgKGF1dG8ga2V5VmFsdWUgOiBtX2NsaWVudE9yaWdpbnMpCiAgICAgICAgIHNlcnZlcigpLnVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGtleVZhbHVlLnZhbHVlLCBrZXlWYWx1ZS5rZXkp
OwogfQotCisgICAgCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVqZWN0Sm9iSW5DbGll
bnQoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3QgRXhjZXB0
aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVu
dENvbm5lY3Rpb246OkpvYlJlamVjdGVkSW5TZXJ2ZXIoam9iSWRlbnRpZmllciwgZXhjZXB0aW9u
RGF0YSkpOwpAQCAtMTM4LDcgKzEzOCw2IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpj
YW5jZWxGZXRjaChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2CiAgICAg
ICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcygqY29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyB0aGlzLT5pZGVu
dGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSk7CiAg
ICAgfSk7CiB9Ci0KIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgZm9ybURhdGEsIFN0cmluZyYmIHJlZmVycmVyKQogewogICAgIGF1dG8qIHdvcmtlciA9
IHNlcnZlcigpLmFjdGl2ZVdvcmtlckZyb21SZWdpc3RyYXRpb25JRChzZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllcik7CkBAIC0yMTcsNyArMjE2LDYgQEAgdm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGQKICAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29ubmVj
dGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlciB7IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdl
KSwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKICAgICB9KTsKIH0KLQogdm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYkRhdGEmJiBq
b2JEYXRhKQogewogICAgIGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbkRhdGE6
OmZyb21VUkwoam9iRGF0YS5zY3JpcHRVUkwpOwpAQCAtMjYyLDcgKzI2MCw2IEBAIHZvaWQgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWROb3RIYW5kbGVGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyKQogICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJkaWROb3RIYW5kbGVGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyIsIGZldGNoSWRlbnRp
Zmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgbV9jb250ZW50Q29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWROb3RIYW5k
bGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9Ci0KIHZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElk
ZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAgICBhdXRvKiBzb3VyY2VTZXJ2aWNl
V29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJRChzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTMwOCwx
MiArMzA1LDEwIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpCiAgICAgc2VydmVyKCkudW5yZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoaXRlcmF0b3ItPnZhbHVlLCBjbGllbnRJZGVudGlmaWVy
KTsKICAgICBtX2NsaWVudE9yaWdpbnMucmVtb3ZlKGl0ZXJhdG9yKTsKIH0KLQogdGVtcGxhdGU8
dHlwZW5hbWUgVT4gdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNlbmRUb0NvbnRleHRQcm9j
ZXNzKFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgVSYm
IG1lc3NhZ2UpCiB7CiAgICAgc3RhdGljX2Nhc3Q8V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uJj4oY29ubmVjdGlvbikuc2VuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUwZTRlNDE5MTRmMjRlNzdlZTU5NDczZWJiMWY5NDllZmMxZTkyY2IKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApAQCAt
MCwwICsxLDIyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgor
CisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRl
ICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0
YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRFbmNvZGluZy5oPgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9j
ZXNzJiBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UGF5bWVudFByb2Nlc3M+IHByb2Nlc3M7CisgICAgcmV0dXJuIHByb2Nlc3M7Cit9CisK
K1BheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2VzcygpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRQcm9jZXNzIikpCit7CisgICAgLy8g
TWFrZSBzdXJlIHRoZSBVVEY4RW5jb2RpbmcgZW5jb2RpbmcgYW5kIHRoZSB0ZXh0IGVuY29kaW5n
IG1hcHMgaGF2ZSBiZWVuIGJ1aWx0IG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgYSBiYWNrZ3Jv
dW5kIHRocmVhZCBuZWVkcyBpdC4KKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNTM2NSAtIE5lZWQgYSBtb3JlIGV4cGxpY2l0IHdheSBvZiBk
b2luZyB0aGlzIGJlc2lkZXMgYWNjZXNzaW5nIHRoZSBVVEY4RW5jb2RpbmcuCisgICAgVVRGOEVu
Y29kaW5nKCk7Cit9CisKK1BheW1lbnRQcm9jZXNzOjp+UGF5bWVudFByb2Nlc3MoKQoreworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24pCit7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzczo6c2hvdWxkVGVybWluYXRl
KCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCit7CisgICAgaWYgKG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNoaWxkUHJvY2Vz
czo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIENoaWxkUHJvY2Vzczo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKGNv
bnN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzOjplbnN1cmVQYXRoRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0
aCkKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmICghRmlsZVN5
c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKHBhdGgpKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxl
ZCB0byBtYWtlIGFsbCBkaXJlY3RvcmllcyBmb3IgcGF0aCAnJXMnIiwgcGF0aC51dGY4KCkuZGF0
YSgpKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6cG9zdFBheW1lbnRUYXNrKENyb3NzVGhy
ZWFkVGFzayYmIHRhc2spCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcGF5bWVudFRhc2tNdXRleCk7CisKKyAgICBtX3BheW1lbnRU
YXNrcy5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CisKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhp
c10geworICAgICAgICBwZXJmb3JtTmV4dFBheW1lbnRUYXNrKCk7CisgICAgfSk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3M6OnBlcmZvcm1OZXh0UGF5bWVudFRhc2soKQoreworICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgQ3Jvc3NUaHJlYWRUYXNrIHRhc2s7CisgICAg
eworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BheW1lbnRUYXNrTXV0ZXgpOworICAgICAg
ICBBU1NFUlQoIW1fcGF5bWVudFRhc2tzLmlzRW1wdHkoKSk7CisgICAgICAgIHRhc2sgPSBtX3Bh
eW1lbnRUYXNrcy50YWtlRmlyc3QoKTsKKyAgICB9CisKKyAgICB0YXNrLnBlcmZvcm1UYXNrKCk7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pCit7CisjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMp
CisgICAgSVBDOjpDb25uZWN0aW9uOjpTb2NrZXRQYWlyIHNvY2tldFBhaXIgPSBJUEM6OkNvbm5l
Y3Rpb246OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlvbigpOworICAgIG1fcGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3Jl
YXRlKHNvY2tldFBhaXIuc2VydmVyKSk7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50KHNvY2tldFBhaXIuY2xpZW50KSksIDAp
OworI2VsaWYgT1MoREFSV0lOKQorICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBvcnQuCisg
ICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOworICAgIGF1dG8g
a3IgPSBtYWNoX3BvcnRfYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hU
X1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0KTsKKyAgICBpZiAoa3IgIT0gS0VSTl9TVUNDRVNTKSB7
CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJyb3Ig
JXgiLCBrcik7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGEgbGlz
dGVuaW5nIGNvbm5lY3Rpb24uCisgICAgbV9wYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMu
YXBwZW5kKFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyKGxpc3RlbmluZ1BvcnQpKSk7CisKKyAgICBJUEM6OkF0dGFjaG1lbnQg
Y2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7CisgICAg
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6RGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY2xpZW50UG9ydCks
IDApOworI2VsaWYgT1MoV0lORE9XUykKKyAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
c2VydmVySWRlbnRpZmllciwgY2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAoIUlQQzo6Q29ubmVj
dGlvbjo6Y3JlYXRlU2VydmVyQW5kQ2xpZW50SWRlbnRpZmllcnMoc2VydmVySWRlbnRpZmllciwg
Y2xpZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRl
IHNlcnZlciBhbmQgY2xpZW50IGlkZW50aWZpZXJzIik7CisgICAgICAgIENSQVNIKCk7CisgICAg
fQorCisgICAgYXV0byBjb25uZWN0aW9uID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmNyZWF0ZShzZXJ2ZXJJZGVudGlmaWVyKTsKKyAgICBtX3BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9ucy5hcHBlbmQoV1RGTW92ZShjb25uZWN0aW9uKSk7CisKKyAgICBJUEM6OkF0dGFjaG1l
bnQgY2xpZW50U29ja2V0KGNsaWVudElkZW50aWZpZXIpOworICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFNvY2tldCksIDApOworI2Vsc2UKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRl
c3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCit7CisgICAgYXV0byB3ZWJzaXRlRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vic2l0
ZURhdGE+KCk7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShbdGhpcywgd2Vic2l0ZURhdGEgPSBXVEZNb3ZlKHdlYnNpdGVEYXRhKSwgY2Fs
bGJhY2tJRF0oKSB7CisgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZEZldGNoV2Vic2l0ZURhdGEoY2FsbGJhY2tJ
RCwgKndlYnNpdGVEYXRhKSwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6
OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENh
bGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja0lEXSB7CisgICAgICAgIHBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJv
eHk6OkRpZERlbGV0ZVdlYnNpdGVEYXRhKGNhbGxiYWNrSUQpLCAwKTsKKyAgICB9KTsKK30KKwor
dm9pZCBQYXltZW50UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFU
eXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3VyaXR5T3JpZ2lucywg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENh
bGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja0lEXSgpIHsKKyAgICAgICAg
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6RGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKGNhbGxiYWNrSUQpLCAwKTsKKyAg
ICB9KTsKK30KKworI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgUGF5bWVudFByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYpCit7CisjaWYgT1MoTElOVVgpCisgICAgYXV0byYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyID0g
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKTsKKyAgICBtZW1vcnlQcmVzc3VyZUhh
bmRsZXIuc2V0TG93TWVtb3J5SGFuZGxlcihbdGhpc10gKENyaXRpY2FsLCBTeW5jaHJvbm91cykg
eworICAgICAgICAvLyBGSVhNRTogbm8gbG93TWVtb3J5SGFuZGxlcigpIGltcGxlbWVudGVkIGZv
ciBQYXltZW50UHJvY2VzcyBjdXJyZW50bHkuCisgICAgICAgIC8vIEJ1dCBhdCBsZWFzdCBkZWZp
bmUgdGhpcyBzZXRMb3dNZW1vcnlIYW5kbGVyKCkgZW1wdHkgc28gcGxhdGZvcm1SZWxlYXNlTWVt
b3J5IGlzIGNhbGxlZC4KKyAgICB9KTsKKyAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuaW5zdGFs
bCgpOworI2VuZGlmCit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJikKK3sKK30KKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpCisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMjQ0
N2JjZDAxOWM2Yzk2YmIwZjdmYWUyNTRjYTAxNjMwZjFiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKQEAgLTAsMCArMSw5
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3
dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjsKK2Vu
dW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOworc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOworCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorY2xhc3MgV2ViU1dPcmln
aW5TdG9yZTsKKyNlbmRpZgorCitjbGFzcyBQYXltZW50UHJvY2VzcyA6IHB1YmxpYyBDaGlsZFBy
b2Nlc3MgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBheW1lbnRQcm9jZXNzKTsKKyAgICBm
cmllbmQgTmV2ZXJEZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+OworcHVibGljOgorICAgIHN0YXRp
YyBQYXltZW50UHJvY2VzcyYgc2luZ2xldG9uKCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBQcm9j
ZXNzVHlwZSBwcm9jZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpQYXltZW50OworCisgICAgflBheW1l
bnRQcm9jZXNzKCk7CisKKyAgICB2b2lkIHBvc3RQYXltZW50VGFzayhDcm9zc1RocmVhZFRhc2sm
Jik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFByb2Nlc3Mo
KTsKKworICAgIC8vIENoaWxkUHJvY2VzcworICAgIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3MoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25z
dCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlv
bihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFRlcm1pbmF0ZSgp
IG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAgIHZvaWQgaW5pdGlhbGl6ZVdlYnNpdGVE
YXRhU3RvcmUoY29uc3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2
b2lkIGNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29y
a2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYpOworCisgICAgdm9pZCBk
ZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRh
KFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lk
IGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworCisgICAg
Ly8gRm9yIGV4ZWN1dGlvbiBvbiB3b3JrIHF1ZXVlIHRocmVhZCBvbmx5CisgICAgdm9pZCBwZXJm
b3JtTmV4dFBheW1lbnRUYXNrKCk7CisgICAgdm9pZCBlbnN1cmVQYXRoRXhpc3RzKGNvbnN0IFN0
cmluZyYpOworCisgICAgVmVjdG9yPFJlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4+
IG1fcGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOworCisgICAgUmVmPFdvcmtRdWV1ZT4g
bV9xdWV1ZTsKKworICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9wYXltZW50VGFza3M7Cisg
ICAgTG9jayBtX3BheW1lbnRUYXNrTXV0ZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJhZDkyN2UxZTE5MGQwOWM2ZjA5NmYyOGNiOTE1NDQ1MTRmYjYwYjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFBh
eW1lbnRQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKKyAgICAjIEluaXRpYWxpemVzIGEgV2Vic2l0
ZURhdGFTdG9yZS9TZXNzaW9uIGluIHRoZSBQYXltZW50UHJvY2VzcyB3aXRoIHRoZSBjb3JyZWN0
IHBhcmFtZXRlcnMKKyAgICBJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShzdHJ1Y3QgV2ViS2l0
OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKQorCisgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRo
IGEgV2ViUHJvY2VzcworICAgIENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJv
b2wgaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBvcmlnaW4pCisKKyAgICBGZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQor
ICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywgdWludDY0X3QgY2FsbGJh
Y2tJRCkKKworICAgIERlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK30K
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMTEyNjg5NjIwYWYyNDdlNTZlN2E3ODdlZDQ1ZjRhMjg2ZTBkOTkx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vz
c01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKworUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIs
ICp0aGlzKSkKK3sKKyAgICAvLyBVc2UgdGhpcyBmbGFnIHRvIGZvcmNlIHN5bmNocm9ub3VzIG1l
c3NhZ2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXN5bmNocm9ub3VzIG1lc3NhZ2VzIGluIHRoZSBXZWJQ
cm9jZXNzLgorICAgIC8vIE90aGVyd2lzZSwgdGhlIFdlYlByb2Nlc3Mgd291bGQgcHJvY2VzcyBp
bmNvbWluZyBzeW5jaHJvbm91cyBJUEMgd2hpbGUgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBJ
UEMKKyAgICAvLyByZXBseSBmcm9tIHRoZSBwYXltZW50IHByb2Nlc3MsIHdoaWNoIHdvdWxkIGJl
IHVuc2FmZS4KKyAgICBtX2Nvbm5lY3Rpb24tPnNldE9ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNo
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZSh0cnVlKTsK
KyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246On5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0
aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewor
ICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkuZGlkUmVjZWl2ZVBheW1lbnRQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+JiByZXBseUVuY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3Zv
aWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7Cit9CisKK3Zv
aWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKKworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmJjMDFmYWY4NWE1ZTU1MWNhZGJlNjc4
ZTkzMWI4YzRiZGJmMmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50
UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgor
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4sIHByaXZh
dGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBj
cmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKyAgICB+UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsg
cmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAgICAv
LyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworCisgICAgLy8gSVBDOjpNZXNz
YWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQorICAgIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODQzMjI1OTY2MjY5
MzU5MzkxNmUzZDk0Y2E5NTRmZDUwOTc5YTZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisj
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgeworfQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkyY2FmMzIxNjg1N2EzYTNjN2I3YzRmZTBmYWNlOGU4Nzk0N2I4ZGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykK
KyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMuaCIKKworI2RlZmluZSBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRC
T1hJTkcgMAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5p
dGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKK3sKKyNpZiBFTkFCTEVfTUFO
VUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcKKyAgICAvLyBOZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZh
dWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1bmRsZSBJRC4KKyAgICBOU0J1
bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJv
bVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICBzYW5kYm94UGFyYW1ldGVycy5zZXRPdmVycmlk
ZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJjb20u
YXBwbGUuV2ViS2l0LlBheW1lbnQiIG9mVHlwZTpAInNiIl0pOworICAgIENoaWxkUHJvY2Vzczo6
aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMpOworI2VuZGlm
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQor
CisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnQuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudC5zYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM3Y2JmZjhjZGI3ODk2NGM3
NjRlNGUyZTRkZmZkNjEwMzI4NTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2IK
QEAgLTAsMCArMSw0NyBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKzsgYXJlIG1l
dDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Cis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCis7
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKzsgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCis7IENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRp
b24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBvcnQg
ImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZp
eCAiIikpCisKKyhkZW55IGxzb3BlbikKKworKGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSog
KGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKKworKGRlbnkg
c3lzY3RsKikKKyhhbGxvdyBzeXNjdGwtcmVhZAorICAgIChzeXNjdGwtbmFtZQorICAgICAgICAi
aHcuYXZhaWxjcHUiCisgICAgICAgICJody5uY3B1IgorICAgICAgICAiaHcubW9kZWwiCisgICAg
ICAgICJrZXJuLm1lbW9yeXN0YXR1c19sZXZlbCIKKyAgICAgICAgInZtLmZvb3RwcmludF9zdXNw
ZW5kIikpCisKKzs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQgYnkgc3lzdGVtIGZyYW1ld29y
a3MKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYW5hbHl0
aWNzZCIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2Zp
bGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYgpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBjN2NiZmY4Y2RiNzg5NjRjNzY0ZTRlMmU0ZGZm
ZDYxMDMyODU5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuU3RvcmFnZS5zYgorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTsgQ29weXJp
Z2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotOwotOyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi07IGFyZSBtZXQ6Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LTsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotOyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotOwotOyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi07IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotOyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi07IFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi07IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi07IFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotOyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi07
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotKHZlcnNpb24gMSkKLShkZW55IGRl
ZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKLShhbGxvdyBzeXN0ZW0tYXVkaXQg
ZmlsZS1yZWFkLW1ldGFkYXRhKQotCi0oaW1wb3J0ICJjb21tb24uc2IiKQotCi0oZGVueSBtYWNo
LWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQotCi0oZGVueSBsc29wZW4pCi0K
LShhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAt
c2FuZGJveC5yZWFkLXdyaXRlIikpCi0KLShkZW55IHN5c2N0bCopCi0oYWxsb3cgc3lzY3RsLXJl
YWQKLSAgICAoc3lzY3RsLW5hbWUKLSAgICAgICAgImh3LmF2YWlsY3B1IgotICAgICAgICAiaHcu
bmNwdSIKLSAgICAgICAgImh3Lm1vZGVsIgotICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2
ZWwiCi0gICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpKQotCi07OyBWYXJpb3VzIHNlcnZp
Y2VzIHJlcXVpcmVkIGJ5IHN5c3RlbSBmcmFtZXdvcmtzCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmFuYWx5dGljc2QiKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hp
bGRQcm9jZXNzLmgKaW5kZXggNTQ3OGE5ZGQ5ZmM1OTJiMTg3NjYzZjk1NGVmYTU5MWNmMDIwNGZk
MS4uMDdmODdiOTQyZDM3MTI3YzE3MjU1ZTg0NzY2OGNiYTI3NzhhNjVmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTQ4LDggKzQ4LDEwIEBAIHB1YmxpYzoKICAgICBlbnVt
IGNsYXNzIFByb2Nlc3NUeXBlIDogdWludDhfdCB7CiAgICAgICAgIFdlYkNvbnRlbnQsCiAgICAg
ICAgIE5ldHdvcmssCi0gICAgICAgIFN0b3JhZ2UsCi0gICAgICAgIFBsdWdpbgorICAgICAgICBQ
bHVnaW4sCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHZvaWQgaW5pdGlh
bGl6ZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTczNzA5NzM0MDNkNDYzNDA4
ZWQ2M2JiY2VmNDU2M2JkMDA5OTgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IHNlc3Npb25JRDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5zZXNzaW9uSUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTc5NzRhZDIx
MTRkMjE1ZGI5NGJlZGRmNGE5ZjA1YWU3NTUyZjc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2Ns
YXNzIERlY29kZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVy
JikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmgKaW5kZXggMmNlNzE2ZTRjNzJlNTgyYWJlMzBmNDg3OWQyYzZlYjllNDk5YTk3Yi4uNjJi
NTQ3NGVmYWE3MjRlYWI1MjhiNGY2NzAxNzkxZjBjZTlhYWRlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAgLTMyLDUgKzMyLDggQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKIFN0cmlu
ZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRo
T2ZOZXR3b3JrUHJvY2VzcygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitTdHJpbmcg
ZXhlY3V0YWJsZVBhdGhPZlBheW1lbnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9D
aGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNz
TWFjLm1tCmluZGV4IDIxZTNhZDQzMzNkN2M2YTg5OGQ2Zjg5ODE2MjkzNjI0Njc1NjI1NmYuLmNl
MjAxNWQ4OWQ2NGRjZTAxNjhiNWI3NTRhZTI5ZGI4YTQ3YjZkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMjI0LDcgKzIyNCw2IEBAIGNvbnN0
ZXhwciBjb25zdCBjaGFyKiBwcm9jZXNzU3RvcmFnZUNsYXNzKENoaWxkUHJvY2Vzczo6UHJvY2Vz
c1R5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuICJXZWJLaXRXZWJDb250ZW50U2FuZGJveCI7CiAg
ICAgY2FzZSBDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgogICAgICAgICByZXR1
cm4gIldlYktpdE5ldHdvcmtpbmdTYW5kYm94IjsKLSAgICBjYXNlIENoaWxkUHJvY2Vzczo6UHJv
Y2Vzc1R5cGU6OlN0b3JhZ2U6CiAgICAgICAgIHJldHVybiAiV2ViS2l0U3RvcmFnZVNhbmRib3gi
OwogICAgIGNhc2UgQ2hpbGRQcm9jZXNzOjpQcm9jZXNzVHlwZTo6UGx1Z2luOgogICAgICAgICBy
ZXR1cm4gIldlYktpdFBsdWdpblNhbmRib3giOwpAQCAtMjg1LDggKzI4NCw2IEBAIHN0YXRpYyBT
dHJpbmcgc2FuZGJveERpcmVjdG9yeShDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlIHByb2Nlc3NU
eXBlLCBjb25zdCBTdHJpCiAgICAgY2FzZSBDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlOjpOZXR3
b3JrOgogICAgICAgICBkaXJlY3RvcnkuYXBwZW5kKCIvY29tLmFwcGxlLldlYktpdC5OZXR3b3Jr
aW5nLlNhbmRib3giKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDaGlsZFByb2Nlc3M6OlBy
b2Nlc3NUeXBlOjpTdG9yYWdlOgotICAgICAgICBkaXJlY3RvcnkuYXBwZW5kKCIvY29tLmFwcGxl
LldlYktpdC5TdG9yYWdlLlNhbmRib3giKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaGls
ZFByb2Nlc3M6OlByb2Nlc3NUeXBlOjpQbHVnaW46CiAgICAgICAgIGRpcmVjdG9yeS5hcHBlbmQo
Ii9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi5TYW5kYm94Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBiNzFh
ZDQ5ODM0NWVkOWNhNDI4YjBhMzRjNGJhZTliODNiOTViMGQzLi44OTM4NzQyYTJiZWIzMDg0ODA4
OWQwN2IzNDUxZDY5YWE1NjhhYzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTIxOSw4ICsyMTksMTMgQEAg
U2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgQG5vLXVu
aWZ5CiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgIEBu
by11bmlmeQogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwIEBu
by11bmlmeQogCitTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKwogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAogCitQYXltZW50UHJv
Y2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAgQG5vLXVuaWZ5CitQYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CisKIFVJUHJvY2Vzcy9CYWNrZ3Jv
dW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiBVSVByb2Nlc3MvQ2hpbGRQcm9jZXNz
UHJveHkuY3BwCiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTM4MSw2ICszODYs
OCBAQCBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5jcHAKIAorVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5j
cHAKKwogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmNwcAog
VUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAog
CkBAIC00ODcsMTIgKzQ5NCwxMyBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKLVdlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwCi1XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmNwcAotV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcAotV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3Bw
Ci1XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAK
LVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCitXZWJQcm9j
ZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcAorV2ViUHJvY2Vzcy9QYXlt
ZW50L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKK1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKK1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV09yaWdp
blRhYmxlLmNwcAorV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuY3BwCitXZWJQcm9jZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNw
cAorV2ViUHJvY2Vzcy9QYXltZW50L1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAog
CiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDU5NGJmOTBkZDVmMDhiZmRjNDM0YjlmNWRjNTllNDhj
M2FhMmQ3MWUuLjBlNDIwZWY2ODg3MGYxNjg1MmQwZjNhNmQ5ZTUzNTYxNGZkNTMxNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE5NCw2ICsxOTQsOSBAQCBTaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQogU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQogU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAogCisKK1BheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbSBAbm8tdW5pZnkKKwogVUlQcm9jZXNzL19X
S1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQogVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFj
a2VyLm1tCiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCAxOTY1
MjhjYmU1MTI3ZjRiNTk3ZWY2NzFjOGIxMDM4OGMyMGNjOTc0Li44M2Q2Y2FkMjM0MzcxZDRjNDU2
YzM3MTg2MDYzMDc4OTYzMDE1M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHAKQEAgLTYyMSw2ICs2MjEsMTMgQEAgdm9pZCBXS0NvbnRleHRUZXJtaW5h
dGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICB0b0ltcGwo
Y29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKIH0KIAordm9pZCBX
S0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKK3sK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWlu
YXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKGNvbnRl
eHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggYzJkZTNhZmJjM2U4OWNhNjQ5YzRmYTEzOGM1OTUx
MTVmMzNjYjg5ZC4uZGMwZmUzODk3ZjM1ZjJlOWQ1ZTVjNzljODdlOTc1YzhlZDQyM2MxOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTUwLDYgKzUwLDcg
QEAgdHlwZWRlZiBXS0RhdGFSZWYgKCpXS0NvbnRleHRDb3B5V2ViQ3J5cHRvTWFzdGVyS2V5Q2Fs
bGJhY2spKFdLQ29udGV4dFJlZiBjb250ZXgKIAogdHlwZWRlZiB2b2lkICgqV0tDb250ZXh0Q2hp
bGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiBXS0NvbnRleHRDaGlsZFByb2Nlc3NEaWRDcmFzaENh
bGxiYWNrIFdLQ29udGV4dE5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjazsKK3R5cGVkZWYg
V0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjayBXS0NvbnRleHREYXRhYmFzZVBy
b2Nlc3NEaWRDcmFzaENhbGxiYWNrOwogCiB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGllbnRC
YXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC04OCw2ICs4OSw4IEBAIHR5cGVkZWYg
c3RydWN0IFdLQ29udGV4dENsaWVudFYyIHsKICAgICAvLyBWZXJzaW9uIDEuCiAgICAgdm9pZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoKmNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlfdW5hdmFpbGFibGUpKHZvaWQpOwogCisgICAg
Ly8gVmVyc2lvbiAyLgorICAgIFdLQ29udGV4dERhdGFiYXNlUHJvY2Vzc0RpZENyYXNoQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VQcm9jZXNzRGlkQ3Jhc2g7CiB9
IFdLQ29udGV4dENsaWVudFYyOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9uY2Ugc3VwcG9y
dCBmb3IgTWF2ZXJpY2tzIGhhcyBiZWVuIGRyb3BwZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggZWM2Yzg2M2I2ZTQ4YTZhYmMy
OTg1MTczYzMzZDc0ZWQxM2E1OGI1My4uMTU5MDcxYmRiYTU4NjZlNzU5YTI3OGQ0MTczNTIwNzg1
ZjNmN2Y1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dFByaXZhdGUuaApAQCAtOTIsNiArOTIsOCBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRV
c2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsKIAogV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0VGVybWluYXRlTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmKTsKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKFdLQ29udGV4dFJl
Zik7CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZTUVOVF9QUk9DRVNT
IGlzIEVOQUJMRUQKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKFdLQ29udGV4dFJlZik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wpOwog
V0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2
aWNlV29ya2VyVGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCAyODc2MzE2NWM2
NGEyNjJhMTMxYWQ0ODU3MTI2MjI1ODg2YWIyZDUwLi40OWMwNmRhMGY4OTJmMzNhMTUwYTg5ZDM4
ZDZlOTc2ODI5NTQ4ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDI0LDYgKzQyNCwxMyBAQCAtICh2b2lkKV9jbGVh
clN1cHBvcnRlZFBsdWdpbnMKICAgICBfcHJvY2Vzc1Bvb2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lu
cygpOwogfQogCistICh2b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzcworeworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVQYXltZW50UHJv
Y2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQor
CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcwogewogICAgIF9wcm9jZXNzUG9vbC0+
dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQ0NCw2ICs0NTEsMTUgQEAgLSAocGlkX3Qp
X25ldHdvcmtQcm9jZXNzSWRlbnRpZmllcgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdv
cmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVu
dGlmaWVyCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gX3Byb2Nl
c3NQb29sLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIChw
aWRfdCkwOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQp
X3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3
b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggN2Q0YjYxNWFkODAyNDg0
MzhhZmExZmFlYjNhODQwNGU4ZmRhZmNmOS4uZmY3OWZkYjY4NWNjYjE4M2M4YzBlZTM2MzVjMTk4
YTU2YjBjYTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTg0LDEyICs4NCwxNiBAQAogLSAoX1dL
RG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBw
YXRoOihOU1N0cmluZyAqKXBhdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5
IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KKy8vIE5PVEU6IFRo
aXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAo
dm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfZGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCksIGlvcygxMi4wKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3Jr
UHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEu
MCkpOworLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VT
UyBpcyBFTkFCTEVECistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDExLjMpKTsKIAogLy8gVGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9j
ZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApp
bmRleCA1YzRiYjNiOWUxMTY0MWQ5ODc4MTFkYTY2Nzk0NjViNmUzMTg0MGE1Li5mNTA4Zjc5Y2Nh
YjUxMGEyZmIyYzRkYThlYzk2MzE2MDg2ZjA0NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNTcsNyArNTcsMTAgQEAg
cHVibGljOgogICAgICAgICBQbHVnaW42NCwKICNlbmRpZgogICAgICAgICBOZXR3b3JrLAotICAg
ICAgICBTdG9yYWdlLAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1l
bnQsCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIH07CiAKICAgICBz
dHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBlZTBlYjkzNWE2
ZTVjOWY0MDcyMDVkMDZjMzQ0YjlhYmZlMWRiMDhjLi4xNjAzZDZhMDBiNTliMmVkMmMwYTAyMDY1
ZWE5MGU3MDUzNTlmYmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTU2LDE4ICs1NiwxNyBA
QCBzdGF0aWMgY29uc3QgY2hhciogc2VydmljZU5hbWUoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpM
YXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpbwogICAgICAgICByZXR1cm4gbGF1bmNoT3B0aW9ucy5u
b25WYWxpZEluamVjdGVkQ29kZUFsbG93ZWQgPyAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LkRldmVsb3BtZW50IiA6ICJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiOwogICAgIGNhc2Ug
UHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6TmV0d29yazoKICAgICAgICAgcmV0dXJuICJj
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmciOwotICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQ
cm9jZXNzVHlwZTo6U3RvcmFnZToKLSNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShXQVRD
SE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTEwMzAwCi0gICAgICAgIHJldHVy
biAiY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMiOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuICJj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2UiOwotI2VuZGlmCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQbHVnaW4z
MjoKICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMiI7CiAgICAgY2Fz
ZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQbHVnaW42NDoKICAgICAgICAgcmV0dXJu
ICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NCI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVu
dDoKKyAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQiOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgZGVmYXVsdDogcmV0dXJuIG5pbDsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVu
dFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1l
bnRQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ODNjNWMzYTNiZTAyYmM4ZTU2ZDljNTdl
OGQ3ZTM0ODI2MTdiMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCkBAIC0wLDAgKzEsMjMxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHkuaCIKKworI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgi
CisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJRCgpCit7Cisg
ICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQ7CisKKyAgICByZXR1cm4gKytjYWxsYmFja0lE
OworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nl
c3NQb29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENoaWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29s
LmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChw
cm9jZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQorewor
ICAgIGNvbm5lY3QoKTsKK30KKworUGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNz
UHJveHkoKQoreworICAgIEFTU0VSVChtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tz
LmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJh
Y2tzLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2luc0NhbGxiYWNrcy5pc0VtcHR5KCkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJv
eHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBt
X3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLnZhbHVlcygpKQorICAgICAgICBjYWxs
YmFjayh7IH0pOworCisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IG1fcGVuZGluZ0RlbGV0ZVdl
YnNpdGVEYXRhQ2FsbGJhY2tzLnZhbHVlcygpKQorICAgICAgICBjYWxsYmFjaygpOworCisgICAg
Zm9yIChhdXRvJiBjYWxsYmFjayA6IG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
c0NhbGxiYWNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICAKKyAgICBtX3Bl
bmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLmNsZWFyKCk7CisgICAgbV9wZW5kaW5nRGVs
ZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuY2xlYXIoKTsKKyAgICBtX3BlbmRpbmdEZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuY2xlYXIoKTsKKyAgICAKKyAgICB0ZXJtaW5hdGUo
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nl
c3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBsYXVuY2hP
cHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVu
dDsKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25z
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rp
b24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBn
ZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJRCgpOworICAgIG1fcGVuZGluZ0ZldGNoV2Vi
c2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpGZXRjaFdlYnNpdGVE
YXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlm
aWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJ
RCgpOworCisgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxi
YWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpQ
YXltZW50UHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1v
ZGlmaWVkU2luY2UsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkp
OworCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlUGF5bWVudFByb2Nlc3NDYWxs
YmFja0lEKCk7CisgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJh
Y2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KHNlc3Npb25JRCwgZGF0YVR5cGVzLCBvcmlnaW5zLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAg
IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CisKKyAg
ICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9v
bCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IHNlY3VyaXR5T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNy
ZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3Ms
IHNlY3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVu
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6
OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBwcm90ZWN0ZWRQcm9jZXNz
UG9vbCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBUaGUgcGF5bWVudCBwcm9j
ZXNzIG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkgcGVuZGluZyBzeW5j
IHJlcGxpZXMgd2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVuZGluZ0Nvbm5lY3Rpb25S
ZXBsaWVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVj
dGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykK
KyAgICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KCkpOworI2VsaWYgT1MoREFSV0lOKQorICAg
ICAgICByZXBseShJUEM6OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsK
KyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVudCgpKTsKKyNl
bHNlCisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKKyAgICB9CisKKyAgICB3aGls
ZSAoIW1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuaXNFbXB0eSgpKQorICAgICAg
ICBtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLnRha2UobV9wZW5kaW5nRmV0Y2hX
ZWJzaXRlRGF0YUNhbGxiYWNrcy5iZWdpbigpLT5rZXkpKFdlYnNpdGVEYXRhIHsgfSk7CisKKyAg
ICB3aGlsZSAoIW1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLmlzRW1wdHkoKSkK
KyAgICAgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MudGFrZShtX3BlbmRp
bmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5iZWdpbigpLT5rZXkpKCk7CisKKyAgICB3aGls
ZSAoIW1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5pc0VtcHR5
KCkpCisgICAgICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNr
cy50YWtlKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5iZWdp
bigpLT5rZXkpKCk7CisKKyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0
aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAg
ICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94
eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRh
Y2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIW1fcGVuZGluZ0Nv
bm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSk7CisKKyAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5n
Q29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09D
S0VUUykKKyAgICByZXBseShjb25uZWN0aW9uSWRlbnRpZmllcik7CisjZWxpZiBPUyhEQVJXSU4p
CisgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KGNvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSwg
TUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgcmVwbHko
Y29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCkpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworI2VuZGlmCit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmV0Y2hXZWJz
aXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYgd2Vic2l0ZURh
dGEpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxs
YmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBjYWxsYmFjayh3ZWJzaXRlRGF0YSk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3Qg
Y2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nRGVsZXRlV2Vic2l0
ZURhdGFDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBjYWxsYmFjaygpOworfQorCit2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1
aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdEZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBj
YWxsYmFjaygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZp
bmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgaWYg
KCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVy
KSkgeworICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFudXAgaGVyZS4KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBlbmRp
bmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGZhbHNlLCB7IH0p
LCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9j
ZXNzUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWNjYWZmZjNkYTFiODc3NTdlMDIxZGVjM2I5NzM1Zjhl
NjUwMjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDaGls
ZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworZW51bSBjbGFzcyBXZWJzaXRl
RGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJv
eHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkgeworcHVibGljOgorICAgIGV4cGxp
Y2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAgICB+UGF5bWVudFBy
b2Nlc3NQcm94eSgpOworCisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJz
aXRlRGF0YSk+JiYpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJv
Y2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisKKyAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3Rp
bmcoKTsKKworcHJpdmF0ZToKKyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQorICAgIHZvaWQgZ2V0
TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3Zl
cnJpZGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworICAgIC8vIE1lc3NhZ2UgaGFuZGxl
cnMKKyAgICB2b2lkIGRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0
IElQQzo6QXR0YWNobWVudCYpOworICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRf
dCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOworICAgIHZvaWQgZGlkRGVsZXRlV2Vi
c2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWREZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CisKKyAgICAvLyBQcm9jZXNzTGF1
bmNoZXI6OkNsaWVudAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hl
ciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CisKKyAgICBXZWJQcm9j
ZXNzUG9vbCYgbV9wcm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nvbm5l
Y3Rpb25SZXF1ZXN0czsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVjdGlv
blJlcGxpZXM7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYnNpdGVEYXRhKT4+IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3M7CisgICAg
SGFzaE1hcDx1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9wZW5kaW5nRGVs
ZXRlV2Vic2l0ZURhdGFDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPj4gbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2Fs
bGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1l
bnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MDg4ZTBjMzcwYTE5NGI3OWQ5MGJiODI3MjVlYzViMTIyZjVkNDJiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXlt
ZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKKyAgICBEaWRDcmVhdGVQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIp
CisKKyAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIHN0cnVjdCBX
ZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQorICAgIERpZERlbGV0ZVdlYnNpdGVEYXRh
KHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KHVpbnQ2NF90IGNhbGxiYWNrSUQpCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXgg
ZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uNTNkYmE2ZDJiMWYyNTA0
NDgzNWUxNTQ0ZDU1Y2Y4NjZmMmFmYzljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJXZWJDb250ZXh0Q2xpZW50LmgiCiAKQEAgLTQ2LDQgKzQ3LDExIEBAIHZvaWQgV2ViQ29udGV4
dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bv
b2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShwcm9jZXNzUG9v
bCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdl
YlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2ZDRlZThkNzc4
ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFiOWVkY2M4NDUz
OTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC00
NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50
PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxl
bWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5MzRmYTYuLjJj
NmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiArMjksMTAgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5OworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikKICAgICB7CiAg
ICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmlydHVhbCB2b2lk
IHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7CisgICAgfQorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNzUG9vbCogcHJv
Y2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAgdm9pZCBjbGVh
clByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGE3MmI1NzEyZTFmNjYyMzY2ZjQ0
NGFlNDk2ZjJiMzViYzdjNDk5NmIuLjI1NDhmYzI2MGQyNjUzNTZlYmNlMTE5MGI1NmE4NDg2MDMw
MTA4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5o
IgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgi
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJUZXh0Q2hlY2tl
ci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVy
LmgiCkBAIC00NDAsNiArNDQ0LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVBy
ZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0Ny
aXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJv
Y2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6
OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkp
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRN
ZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MDQsNiArNjExLDQ4
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwog
fQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVu
c3VyZVBheW1lbnRQcm9jZXNzQW5kV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlKiBy
ZWxldmFudERhdGFTdG9yZSkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpIHsKKyAgICAg
ICAgYXV0byBwYXJhbWV0ZXJzID0gbV93ZWJzaXRlRGF0YVN0b3JlID8gbV93ZWJzaXRlRGF0YVN0
b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCkgOiAocmVs
ZXZhbnREYXRhU3RvcmUgPyByZWxldmFudERhdGFTdG9yZS0+cGF5bWVudFByb2Nlc3NQYXJhbWV0
ZXJzKCkgOiBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUoKS0+d2Vic2l0
ZURhdGFTdG9yZSgpLnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpKTsKKworICAgICAgICBBU1NF
UlQocGFyYW1ldGVycy5zZXNzaW9uSUQuaXNWYWxpZCgpKTsKKworICAgICAgICBtX3BheW1lbnRQ
cm9jZXNzID0gc3RkOjptYWtlX3VuaXF1ZTxQYXltZW50UHJvY2Vzc1Byb3h5PigqdGhpcyk7Cisg
ICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpJ
bml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShwYXJhbWV0ZXJzKSwgMCk7CisgICAgfQorCisgICAg
aWYgKCFyZWxldmFudERhdGFTdG9yZSB8fCAhbV93ZWJzaXRlRGF0YVN0b3JlIHx8IHJlbGV2YW50
RGF0YVN0b3JlID09ICZtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6UGF5
bWVudFByb2Nlc3M6OkluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHJlbGV2YW50RGF0YVN0b3Jl
LT5wYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKSksIDApOworfQorICAgIAordm9pZCBXZWJQcm9j
ZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2Vi
UHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzQW5kV2Vic2l0ZURhdGFTdG9y
ZShXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ05vbkRlZmF1bHREYXRhU3RvcmVGb3JTZXNzaW9u
SUQoaW5pdGlhbFNlc3Npb25JRCkpOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+Z2V0UGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOworfQor
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nl
c3NQcm94eSogcGF5bWVudFByb2Nlc3NQcm94eSkKK3sKKyAgICBBU1NFUlQobV9wYXltZW50UHJv
Y2Vzcyk7CisgICAgQVNTRVJUKHBheW1lbnRQcm9jZXNzUHJveHkgPT0gbV9wYXltZW50UHJvY2Vz
cy5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZh
bHVlcygpKQorICAgICAgICBzdXBwbGVtZW50LT5wcm9jZXNzRGlkQ2xvc2UocGF5bWVudFByb2Nl
c3NQcm94eSk7CisKKyAgICBtX2NsaWVudC5wYXltZW50UHJvY2Vzc0RpZENyYXNoKHRoaXMpOwor
CisgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCisgICAgICAgIG1fYXV0b21hdGlvblNlc3Np
b24tPnRlcm1pbmF0ZSgpOworCisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgU2VjdXJpdHlP
cmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+
IHNlc3Npb25JRCkKIHsKQEAgLTY4MCw2ICs3MjksOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpz
ZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0
ZQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFkZFdl
YnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uUGFyYW1ldGVycygpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbmV0d29ya1Byb2Nl
c3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBzZW5kVG9QYXltZW50
UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkpKTsKICAgICB9CiB9CkBAIC0xMzE4LDYgKzEzNzAsMTYgQEAgUHJvY2Vzc0lEIFdlYlBy
b2Nlc3NQb29sOjpuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKQogICAgIHJldHVybiBtX25ldHdv
cmtQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4
dCkKIHsKICAgICBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoID0gYWx3YXlzVXNlQ29t
cGxleFRleHQ7CkBAIC0xNTczLDYgKzE2MzUsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xl
YXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAg
IG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhckNh
Y2hlZENyZWRlbnRpYWxzKCksIDApOwogfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rp
bmcoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9wYXltZW50UHJvY2Vzcy0+dGVybWluYXRlRm9yVGVzdGluZygpOworICAgIG1fcGF5bWVu
dFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGZmOGViMTU3ZmVlMDM0
YzVlYWU2ZjE2YTQ0MWNhNTU4ZDNiY2M5N2MuLjhiYTQ0Zjc5ZDhjNmM1NWUwMTM0MjRiZjc3OTlh
M2YzZDllM2ZlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApA
QCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc1JlcXVl
c3QuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzUHJveHkuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUg
IlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKQEAgLTE3Myw2ICsxNzYsMTIgQEAg
cHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHZvaWQgc2VuZFN5
bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlLCBVJiYgcmVwbHkpOwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lm
TmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJvY2VzcyBvciBQYXltZW50UHJvY2VzcyBh
cyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4KKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKTsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJ
Zk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKwogICAgIHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkq
KTsKIAogICAgIC8vIERpc2Nvbm5lY3QgdGhlIHByb2Nlc3MgZnJvbSB0aGUgY29udGV4dC4KQEAg
LTIxNSw2ICsyMjQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclN1cHBvcnRlZFBsdWdpbnMo
KTsKIAogICAgIFByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFByb2Nlc3NJRCBwYXltZW50UHJvY2Vzc0lkZW50aWZp
ZXIoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgV2ViUGFnZUdy
b3VwJiBkZWZhdWx0UGFnZUdyb3VwKCkgeyByZXR1cm4gbV9kZWZhdWx0UGFnZUdyb3VwLmdldCgp
OyB9CiAKQEAgLTI3NCw2ICsyODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlT
U0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRD
cmVkZW50aWFscygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB0ZXJt
aW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lk
IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKICAgICB2b2lkIGRpc2FibGVTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsKQEAgLTMzOCw2ICszNTMsMTIgQEAg
cHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vz
c1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHZvaWQgZW5zdXJlUGF5bWVudFByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVE
YXRhU3RvcmUqIHJlbGV2YW50RGF0YVN0b3JlKTsKKyAgICBQYXltZW50UHJvY2Vzc1Byb3h5KiBw
YXltZW50UHJvY2VzcygpIHsgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MuZ2V0KCk7IH0KKyAgICB2
b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBQQUw6OlNl
c3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBheW1l
bnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5Kik7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9pZCBl
c3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1By
b2Nlc3NQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBzdGQ6Om9wdGlvbmFs
PFBBTDo6U2Vzc2lvbklEPik7CiAgICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogc2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQodWludDY0X3QgcGFnZUlEKSBjb25zdDsKQEAg
LTYyMyw2ICs2NDQsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5IYW5kbGVIVFRQU1NlcnZl
clRydXN0RXZhbHVhdGlvbiB7IHRydWUgfTsKICAgICBib29sIG1fZGlkTmV0d29ya1Byb2Nlc3ND
cmFzaCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+
IG1fbmV0d29ya1Byb2Nlc3M7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGF5bWVudFByb2Nlc3NQcm94eT4gbV9wYXltZW50UHJvY2VzczsKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPERpY3Rpb25hcnlDYWxsYmFjaz4+IG1fZGljdGlvbmFyeUNhbGxiYWNrczsKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+PiBtX3N0YXRpc3RpY3NSZXF1
ZXN0czsKQEAgLTcxNyw2ICs3NDEsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvTmV0
d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQogICAgIGVu
c3VyZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZv
cndhcmQ8VD4obWVzc2FnZSksIDApOwogfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5
bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpCit7CisgICAgaWYgKG1fcGF5bWVudFByb2Nlc3MgJiYg
bV9wYXltZW50UHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgbV9wYXltZW50UHJv
Y2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxh
dW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQoreworICAgIGVuc3VyZVBheW1lbnRQcm9j
ZXNzQW5kV2Vic2l0ZURhdGFTdG9yZShudWxscHRyKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5z
ZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25zdCBUJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYzk5NDdkYmRiMTUyYWM3ZWUyZDFj
MzI0MzZhMDIxOTViZDM2ZGQ5ZC4uNWY5NmEwZTFmMjYwNTNkZDVlMjZiMDA4NmJmNTgwODFiMTU1
N2MwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC02MzksNiArNjM5LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0CiB7CiAgICAgbV9wcm9j
ZXNzUG9vbC0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5
KSk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Np
b25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUocmVw
bHkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAjaWYgIVBMQVRG
T1JNKENPQ09BKQogYm9vbCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSXNCZWluZ0RlYnVnZ2Vk
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
MzMyNzRkZjVkNjFlMGJkODYzMmNlMzA5OTM0OWE5NzYzY2ZiMzk0OC4uNDhiOThlNDAyNTkwM2Qz
NmE2MjcyNWQxM2UyMGFlYzk1NDJkYmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKQEAgLTI3Nyw3ICsyNzcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5JiYpOwogI2VuZGlmCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHkmJik7Ci0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQg
Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9u
SUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6RGVsYXllZFJlcGx5JiYpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAg
ICAgYm9vbCBwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxk
QWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzJmZGE4YjBh
ZGNkY2FiOTUxMjhmMjY0M2IzOTk2ZGUxM2I2ZWFjMS4uYTU1YmU1ZTIyNjVlMWU5YWQ5OGViM2Ey
MDU4ZjFiZTdmMDI0MTE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsOSBAQCBtZXNzYWdlcyAtPiBX
ZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24p
IERlbGF5ZWQKICNlbmRpZgogICAgIEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJ
UEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisgICAgR2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lv
bklEIGluaXRpYWxTZXNzaW9uSUQpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRs
ZSkgRGVsYXllZAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgUHJvY2Vz
c1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggZjQwNzQ2Yzk0MWY4OGUxMGNkMDYyZWE3ODNkZGZkYWQ3YmYxMTk2
My4uMWEyYWExYWVkNmQyMjkzMTJkZDZiM2RiZDI2NDgzNjdjNTJiNzdjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0b3JNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VNYW5hZ2VyLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1
ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCkBAIC0xMzUsNiArMTM5LDkgQEAgV2Vi
c2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogICAgICAgICBBU1NFUlQobm9uRGVm
YXVsdERhdGFTdG9yZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAgICBub25E
ZWZhdWx0RGF0YVN0b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZvciAoYXV0
byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRU
b1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24o
bV9zZXNzaW9uSUQpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAg
ICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9j
ZXNzKCkpCiAgICAgICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnJlbW92ZVNlc3Npb24obV9z
ZXNzaW9uSUQpOwogICAgICAgICB9CkBAIC0xNjI0LDYgKzE2MzEsMTkgQEAgdm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhDb21w
bGV0aW9uSGFuZGwKICAgICBjYWxsYmFjaygpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpCit7CisgICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZO
ZWNlc3NhcnkoKTsKKworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFt
ZXRlcnM7CisKKyAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vzc2lvbklEOworCisgICAg
cmV0dXJuIHBhcmFtZXRlcnM7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KwogVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gV2Vic2l0ZURhdGFTdG9yZTo6cGVuZGluZ0Nvb2tp
ZXMoKSBjb25zdAogewogICAgIHJldHVybiBjb3B5VG9WZWN0b3IobV9wZW5kaW5nQ29va2llcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKaW5kZXggOTE2M2Q5ODk0NTExNjRjZmJiZDNhNzgwOWUyMjRhOTg2MWZmNzk3
OC4uOGQxMjQwMjZmYThiOWQ3ZDAxNWQ2YmExZGE1Yjk1OThhOWMxNTcwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aApAQCAtNjIsNiArNjIsOSBAQCBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7
CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVE
YXRhVHlwZTsKIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIHN0cnVjdCBXZWJz
aXRlRGF0YVJlY29yZDsKIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIApAQCAt
MTY5LDYgKzE3Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29s
KFdlYlByb2Nlc3NQb29sJikgY29uc3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gcGVuZGluZ0Nvb2tpZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUo
Y29uc3QgV2ViQ29yZTo6Q29va2llJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNjJlNjA0MzFiZWZiNTJhOGUwMDAxMmE3NTQ5NDY4
MGE1ZmM5OTVlLi4yNmU3NTZhNjMxMGQ1ZDMxN2M5MWZhZThlOGQxMTRhODkwNTUzMDQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkw
Miw2ICs5MDIsMTIgQEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29u
UGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlC
MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZE
RjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNC
MDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRh
YmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTUxMThFOTlDMUYyOTUyNjYwMDNFRjlGNSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5
OUExRjI5NTI1OTAwM0VGOUY1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi87
IH07CisJCTUxMThFOUExMUYyOTUzMjYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExOEU5OUYxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggKi87IH07CisJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
TWVzc2FnZXMuaCAqLzsgfTsKKwkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJD
RjUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3Qjgz
IC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2
MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJ
dGVtU2hpbUxpYnJhcnkuaCAqLzsgfTsKIAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNl
Y0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnku
bW0gKi87IH07CkBAIC05NTMsNiArOTU5LDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBF
IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBD
Mjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0
ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMw
MEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1
MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAw
ODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5
RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4
dE1lbnUuaCAqLzsgfTsKIAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlv
blNwYWNlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNG
MTExMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMg
LyogV0tDcmVkZW50aWFsVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtOTgwLDYgKzk4Nyw4IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1
NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2
MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkND
QzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGll
cy5oICovOyB9OworCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUx
RkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLzsgfTsKKwkJNTFFMzUy
MDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgw
RjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07
CiAJCTUxRTZDMTY0MUYyOTM1REQwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVy
c2lzdGVudFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxRTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGVyc2lzdGVudFN0b3JhZ2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8q
IFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVE
T01XaW5kb3dFeHRlbnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2Fk
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFGMDYwREUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMu
aCAqLzsgfTsKQEAgLTE1NDksNiArMTU1OCw3IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsg
fTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4
RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGlu
Z1JhbmdlLmggKi87IH07CisJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJv
Y2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsK
IAkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1
MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5
NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgx
NkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87
IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZF
QUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi87IH07CkBAIC0zMDExLDYgKzMw
MjEsNyBAQAogCQk0MTU3RTRBRjIwRTJFQzk4MDBBNkMwRDcgLyogY29tLmdvb2dsZS5vMWRicm93
c2VycGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5nb29nbGUubzFkYnJvd3Nl
cnBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTQyMTEzNzc3
MDAwMTJBQkNEIC8qIHByb2Nlc3MtbmV0d29yay1zYW5kYm94LWVudGl0bGVtZW50cy5zaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gInByb2Nlc3MtbmV0d29yay1zYW5kYm94LWVu
dGl0bGVtZW50cy5zaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODhDMTU2MjEx
Mzc3RTgwMDEyQUJDRCAvKiBwcm9jZXNzLXdlYmNvbnRlbnQtc2FuZGJveC1lbnRpdGxlbWVudHMu
c2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnNjcmlwdC5zaDsgcGF0aCA9ICJwcm9jZXNzLXdlYmNvbnRlbnQtc2FuZGJveC1lbnRpdGxlbWVu
dHMuc2giOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTg4QzE1NzIxMTM3ODUyMDAx
MkFCQ0QgLyogUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnBsaXN0LmVudGl0bGVtZW50czsgcGF0aCA9ICJQYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVt
ZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODhDMTU4MjExMzc4NTIwMDEy
QUJDRCAvKiBXZWJDb250ZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQucGxpc3QuZW50aXRsZW1lbnRzOyBwYXRoID0gIldlYkNvbnRlbnQtT1NYLXNhbmRib3guZW50
aXRsZW1lbnRzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OTdFQ0IxRjQxNUQ1
QzAwMTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE4OTdFQ0MxRjQxNUQ1QzAwMTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNzcsNiArMzA4OCw3IEBACiAJCTRG
NjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1T
aGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2Vj
SXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUx
MDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMkYxQTE4MEY3NEYxMDA5
NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMDRGNUExMUYxOUQ3Q0YwMDRDRjgyMSAvKiBDb29raWVTdG9yYWdl
VXRpbHNDRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tp
ZVN0b3JhZ2VVdGlsc0NGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3
MTFDNzNEMjJCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzIxQzczRDM3QjAwNzk5
M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA5OSwx
MiArMzExMSwxNCBAQAogCQk1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBBRTBBMTMz
QzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlBMzFGMjk1
OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlB
NDFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlG
NSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQ
cm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxMThFOTk5MUYyOTUyNTkwMDNFRjlGNSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOTlBMUYyOTUyNTkw
MDNFRjlGNSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTE4RTk5RTFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTk5RjFG
Mjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExRjdEM0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkw
MEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21h
Yy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMx
MjIsNiArMzEzNiw3IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0
TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1l
bnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5Nzgw
MEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0
TWVudUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4
OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0
TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUw
NUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTJGNTg4RTEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4
OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTkyLDYgKzMyMDcsOCBAQAogCQk1MTdD
RjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVD
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUg
LyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFBheW1l
bnRQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGF5bWVudFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
N0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hpbS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdl
YkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNUEx
MjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zMjExLDYgKzMyMjgsNyBAQAogCQk1MUE1NTYwMDEyOEM2RDkyMDA5QUJDRUMgLyogV0tD
b250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
QTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJREJSZXN1bHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1l
bnRTZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBheW1lbnRTZXJ2aWNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3MjhEQzFCMUJBRDJEMDAxMDJFRUUg
LyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkYyMTI1QkY4MjAwMDhBRUIxRCAvKiBMb2dnaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dpbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2luZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjcwLDYgKzMyODgsMTEgQEAKIAkJNTFERDlG
MjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUz
NTFDODE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCVXRpbGl0aWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
UHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXlt
ZW50UHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlH
YW1lcGFkUHJvdmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxRTZDMTVGMUYyOTM1NTEwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGVyc2lzdGVudFN0b3JhZ2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHBhdGggPSBpb3MvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRp
c3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzgzMCw3ICszODUzLDYgQEAKIAkJQTVEMzUwNEQxRDc4RjBEMjAwNTEyNEE5IC8qIFJlbW90ZVdl
Ykluc3BlY3RvclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE1RUZEMzhCMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlVmlzaWJpbGl0eVR5
cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MkQ1RDdGMTIzNkNCQTgwMEE4
OEIxNSAvKiBBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzhDQ0REODE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxl
LldlYktpdC5OZXR3b3JraW5nLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5z
Yjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1
IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0
LldlYkNvbnRlbnQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkQ5ODYzMTk0
NjUzRDQwMEQzNTY5OCAvKiBEYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueG1sOyBwYXRoID0gIkRhdGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNDksNyArNDM3MSw2IEBACiAJCURGNThDNjMxMTM3MUFDNTgw
MEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRpdmVXZWJXaGVl
bEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA1RkU1MzE4RDdC
OURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTE1
QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5p
Y25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UuaWNuczsgbmFtZSA9IFdlYktpdC5pY25zOyBwYXRoID0gUmVzb3VyY2VzL1dlYktpdC5pY25z
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIg
LyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIg
LyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzOTQsNiArNDQxNSw3IEBACiAJCUUxRTU1MkMzMTZB
RTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NC
RUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVj
dGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUIx
QUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRy
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQwMEIx
MTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00NTY4LDYgKzQ1OTAsNyBAQAogCQkJCTFBQURERjRCMTBEODJBRjAwMEQzRDYzRCAv
KiBTaGFyZWQgKi8sCiAJCQkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAq
LywKIAkJCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKKwkJCQk1
MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8sCiAJCQkJNTEwQ0M3
REExNjEzOEUwMTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzICovLAogCQkJCTFBMEVDNkIwMTI0
QkJEMzYwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzICovLAogCQkJCUMwQ0U3MjlEMTI0N0U3MUQw
MEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCkBAIC00NzY5LDYgKzQ3OTIsOCBAQAogCQkJ
CTdDMEJCOUE5MThEQ0RGNUEwMDA2QzA4NiAvKiBOZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMgKi8s
CiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3guZW50
aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3JrU2Vy
dmljZS54Y2NvbmZpZyAqLywKKwkJCQk0MTg4QzE1NzIxMTM3ODUyMDAxMkFCQ0QgLyogUGF5bWVu
dC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCisJCQkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNC
RjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovLAogCQkJCUExRUREMkRCMTg4NEI5NjQw
MEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNGMjE2
QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZyAqLywKIAkJCQlCQzgy
ODNGNDE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZyAqLywKQEAg
LTQ5MjgsNiArNDk1Myw3IEBACiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAq
LywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJF
MDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3RlTGF5ZXJUcmVlICovLAorCQkJCTUxMThFOTlE
MUYyOTUzMUYwMDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNG
QjBFNiAvKiBXZWJzaXRlRGF0YSAqLywKIAkJCQlBN0Q3OTJENTE3NjdDQjZFMDA4ODFDQkUgLyog
QWN0aXZpdHlBc3NlcnRpb24uY3BwICovLAogCQkJCUE3RDc5MkQ0MTc2N0NCMDkwMDg4MUNCRSAv
KiBBY3Rpdml0eUFzc2VydGlvbi5oICovLApAQCAtNjM5NCw3ICs2NDIwLDcgQEAKIAkJCXBhdGgg
PSBOZXR3b3JrOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJNTExOEU5OTgx
RjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8gPSB7CisJCTUxMThFOTk4MUYyOTUyNTkwMDNF
RjlGNSAvKiBQYXltZW50ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKIAkJCQk0MTMxRjNEMDFGOTZCQ0M4MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLmNwcCAqLywKQEAgLTY0MTIsOCArNjQzOCwyMCBAQAogCQkJCTQ2NkJDMDNBMUZBMjY2Qzkw
MDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywK
IAkJCQk4M0YxQTA3NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8s
CiAJCQkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCAqLywK
KwkJCQk1MTE4RTk5OTFGMjk1MjU5MDAzRUY5RjUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwICovLAorCQkJCTUxMThFOTlBMUYyOTUyNTkwMDNFRjlGNSAvKiBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJKTsKLQkJCXBhdGggPSBTdG9yYWdlOworCQkJ
cGF0aCA9IFBheW1lbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk1MTE4
RTk5RDFGMjk1MzFGMDAzRUY5RjUgLyogU3RvcmFnZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTExOEU5OUUxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKKwkJCQk1MTE4RTk5RjFGMjk1MzFG
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKKwkJCSk7
CisJCQluYW1lID0gU3RvcmFnZTsKKwkJCXBhdGggPSBQYXltZW50OwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKIAkJNTExRjhFREExODA4ODE2NjAwNDdEQTk2IC8qIEluZGV4ZWRE
QiAqLyA9IHsKQEAgLTY1MTksNiArNjU1NywxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQ
YXltZW50ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1
MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8sCisJ
CQkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLywK
KwkJCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudDsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNh
dGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NTc1
LDYgKzY2MjMsMjAgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OworCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlCMTkw
Rjc5MUMwMDczMTY1OCAvKiBpb3MgKi8sCisJCQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRQcm9jZXNzLmNwcCAqLywKKwkJCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkgLyog
UGF5bWVudFByb2Nlc3MuaCAqLywKKwkJCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5
bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5
IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQk1MUUzNTFGRTE4
MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJ
CQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRQcm9jZXNzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTM5QkQ1QjIxREFEQjBCQTAwRjJFNEUx
IC8qIGNhcHR1cmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtNjk3OCw3ICs3MDQwLDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy5zYiAqLywKLQkJCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldl
YktpdC5TdG9yYWdlLnNiICovLAogCQkJCUE3OENDREQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKQEAg
LTcwMjYsOCArNzA4Nyw4IEBACiAJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlh
U3RyZWFtICovLAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAog
CQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywK
KwkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogUGF5bWVudCAqLywKIAkJCQkxQTZGQjdB
QTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKLQkJCQk1MTE4RTk5ODFGMjk1MjU5MDAz
RUY5RjUgLyogU3RvcmFnZSAqLywKIAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNl
ckNvbnRlbnQgKi8sCiAJCQkJNTc2MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRp
Y2F0aW9uICovLAogCQkJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9y
dCAqLywKQEAgLTcxODIsNiArNzI0Myw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1
IC8qIG1hYyAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywK
IAkJCQkzMUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKKwkJCQk1
MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudCAqLywKIAkJCQkxQUVGQ0MwNTExRDAx
RjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5QjQyMDAwNkUzRkUg
LyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2MzkwQyAvKiBV
c2VyQ29udGVudCAqLywKQEAgLTgyNDAsNyArODMwMiw2IEBACiAJCQkJNTFGQUVDMzcxQjA2NTcz
MTAwMDlDNEU3IC8qIENoaWxkUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJRTE3QUUyQzIxNkI5
QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgKi8sCiAJ
CQkJN0ExNTA2NzIxREQ1NjI5ODAwMUY0QjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNv
bW1vbi5zYiAqLywKLQkJCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldl
YktpdC5TdG9yYWdlLnNiICovLAogCQkJCUUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20u
YXBwbGUuV2ViUHJvY2Vzcy5zYiAqLywKIAkJCQkxQUI3RDYxNzEyODhCOUQ5MDBDRkQwOEMgLyog
RG93bmxvYWRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCN0Q2MTgxMjg4QjlE
OTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdlcy5oICovLApAQCAtODI3Myw2ICs4MzM0
LDEwIEBACiAJCQkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlcy5oICovLAogCQkJCTFBMkQ4NDM3MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVj
dE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdG
NjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKKwkJ
CQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c01lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEy
NDFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJQ0RBMjlBMjUxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lv
bk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI2MUNCRUI2N0EwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODMw
NywxMiArODM3Miw2IEBACiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VB
cmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJCQkxQUIzMUE5NDE2QkM2ODgxMDBGNkRCQzkgLyogU3Rv
cmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQjMxQTk1MTZCQzY4ODEw
MEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8sCi0JCQkJNTExOEU5QTUxRjI5
NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJ
CQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oICov
LAotCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogU3Rv
cmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCi0JCQkJNTExOEU5QTMxRjI5NTk2MzAwM0VG
OUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKLQkJCQk1MTE4RTlBNDFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJCUNENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0Q0OTFC
MEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAq
LywKIAkJCQlDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04NTkxLDYgKzg2NTAsMTQgQEAKIAkJ
CW5hbWUgPSBQREY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZFRjM5
QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nl
c3NJT1MubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MDU2LDYgKzkxMjMsMTAg
QEAKIAkJCQkxQUM3NTM3QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE4QjY2QjAxQkM0M0M4NjAwODJERjc3IC8qIFBhZ2VMb2FkU3RhdGVP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8q
IFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QTExRjI5NTMyNjAw
M0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1l
bnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUFCMUYyOTU5NzcwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0TWVudS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDMjk4REEwMUMzREYwMjEwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxv
YWQuaCBpbiBIZWFkZXJzICovLApAQCAtOTQwNCw2ICs5NDc1LDcgQEAKIAkJCQk5MzU2RjJERDIx
NTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTdBNTJEOTFGNDNBOURBMDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNTI2MkJDMUZCOTUxNUQwMDcwRTU3OSAvKiBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTExOEU5OUMxRjI5NTI2NjAwM0VGOUY1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EwRUY3RjEyMzMxRTc4MDA3RDNDRkIgLyogV2Vi
VW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwOEFFMTkyNjkzNjcwMEI2MzkwQyAv
KiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMDY1RjJD
MUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCBp
biBIZWFkZXJzICovLApAQCAtMTAyNTUsNyArMTAzMjcsNiBAQAogCQkJZmlsZXMgPSAoCiAJCQkp
OwogCQkJaW5wdXRQYXRocyA9ICgKLQkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFBy
b2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IiLAogCQkJCSIkKFNSQ1JPT1Qp
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2lu
Zy5zYiIsCiAJCQkJIiQoU1JDUk9PVCkvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiIiwKIAkJCSk7CkBAIC0xMDY0NSw2ICsxMDcxNiwx
MSBAQAogCQkJCTJEOTEzNDQ3MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVPYmplY3RNYXAu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDgyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVu
dGltZVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc5NDIxMkI2QUQ0MDBG
NDkzRkQgLyogTlBWYXJpYW50RGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTFGRjE4
MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUFBMUYyOTU5NzcwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEyODFDQkVCNjdBMDA5MDFD
Q0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDREEyOUEyQTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ5
MjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDhmZTljYjljMGMwNDAyODMx
Yzk4ZTBmNmQwY2U2N2YwZWIxNDQyMDAuLjQwMjNkYzM1NmNmNjllMTM0NzBiZTkwODFkY2U4MzZm
NWI3MDU2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5o
CkBAIC03OSw3ICs3OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZigpIG92ZXJyaWRlIHsgUmVm
Q291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+OjpyZWYoKTsgfQogICAgIHZvaWQgZGVy
ZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPjo6ZGVy
ZWYoKTsgfQogCi0gICAgLy8gTWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBOZXR3b3JrIFByb2Nlc3MK
ICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEm
KTsKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
Jik7CiAgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJF
cnJvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOTk3ODZkNTEzYjEyODk0Njcx
N2RiYzI4MWNhNDc0OTBkZDFhYTg0My4uMmRjNDUzNzA0NTZjYmI2YjY4OWJmNDNkZjgxNDJmMTdh
MTRmNDJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xMzksNyArMTM5LDcgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVAKICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uJj4oKmNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbikuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICAgICBkaWRSZWNl
aXZlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggZGNkMzMyNzQ2Mjk5MWM5MjRkYmM3Nzc4MzIy
ZDE0NTY2NzA5MjY5MC4uM2E1YzBiMTY3NzVjN2RmYzAxNTJhOWYwM2ZhN2FmMDZkNzY1NTc3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJTV0NsaWVudENvbm5lY3Rp
b247Ci0KKyAgICAKIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAog
Y2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdmMjE3YjE3ZDI5MGMzNWMxYjdjMmVjNWUxNjNj
ZGM2N2M2MjA5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAKQEAgLTAsMCArMSwzMDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaC5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0
cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaD4gU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpjcmVhdGUo
V2ViU2VydmljZVdvcmtlclByb3ZpZGVyJiBzZXJ2aWNlV29ya2VyUHJvdmlkZXIsIFJlZjxXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIsIEZldGNoSWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8V2ViU1dDbGllbnRDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sK
KyAgICBhdXRvIGZldGNoID0gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gg
eyBzZXJ2aWNlV29ya2VyUHJvdmlkZXIsIFdURk1vdmUobG9hZGVyKSwgaWRlbnRpZmllciwgV1RG
TW92ZShjb25uZWN0aW9uKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgV1RGTW92ZShjYWxsYmFjaykgfSk7CisgICAgZmV0Y2gtPnN0YXJ0KCk7CisgICAgcmV0dXJu
IGZldGNoOworfQorCitTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6On5TZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2goKQoreworfQorCitTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaChXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXImIHNlcnZpY2VXb3JrZXJQcm92
aWRlciwgUmVmPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiYmIGxvYWRlciwgRmV0Y2hJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBDYWxsYmFjayYm
IGNhbGxiYWNrKQorICAgIDogbV9zZXJ2aWNlV29ya2VyUHJvdmlkZXIoc2VydmljZVdvcmtlclBy
b3ZpZGVyKQorICAgICwgbV9sb2FkZXIoV1RGTW92ZShsb2FkZXIpKQorICAgICwgbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkK
KyAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAgLCBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCkKK3sKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OnN0
YXJ0KCkKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBtX2xvYWRlci0+cmVxdWVzdCgpOworICAgIGF1
dG8mIG9wdGlvbnMgPSBtX2xvYWRlci0+b3B0aW9ucygpOworCisgICAgYXV0byByZWZlcnJlciA9
IHJlcXVlc3QuaHR0cFJlZmVycmVyKCk7CisKKyAgICBtX2RpZEZhaWwgPSBmYWxzZTsKKyAgICBt
X2RpZEZpbmlzaCA9IGZhbHNlOworCisgICAgLy8gV2UgYXJlIGludGVyY2VwdGluZyBmZXRjaCBj
YWxscyBhZnRlciBnb2luZyB0aHJvdWdoIHRoZSBIVFRQIGxheWVyLCB3aGljaCBtYXkgYWRkIHNv
bWUgc3BlY2lmaWMgaGVhZGVycy4KKyAgICBjbGVhbkhUVFBSZXF1ZXN0SGVhZGVyc0ZvckFjY2Vz
c0NvbnRyb2wocmVxdWVzdCwgb3B0aW9ucy5odHRwSGVhZGVyc1RvS2VlcCk7CisKKyAgICBBU1NF
UlQob3B0aW9ucy5zZXJ2aWNlV29ya2Vyc01vZGUgIT0gU2VydmljZVdvcmtlcnNNb2RlOjpOb25l
KTsKKyAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyID0gb3B0aW9ucy5z
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllci52YWx1ZSgpOworICAgIG1fY29ubmVj
dGlvbi0+c3RhcnRGZXRjaChtX2lkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIHJlZmVycmVyKTsKKworICAgIG1fcmVkaXJl
Y3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6Tm9uZTsKK30KKworLy8gaHR0cHM6Ly9m
ZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtZmV0Y2ggc3RlcCAzLjMKK3N0ZDo6b3B0aW9uYWw8
UmVzb3VyY2VFcnJvcj4gU2VydmljZVdvcmtlckNsaWVudEZldGNoOjp2YWxpZGF0ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIC8vIEZJWE1FOiBtYWtl
IGEgYmV0dGVyIGVycm9yIHJlcG9ydGluZy4KKyAgICBpZiAocmVzcG9uc2UudHlwZSgpID09IFJl
c291cmNlUmVzcG9uc2U6OlR5cGU6OkVycm9yKQorICAgICAgICByZXR1cm4gUmVzb3VyY2VFcnJv
ciB7IFJlc291cmNlRXJyb3I6OlR5cGU6OkdlbmVyYWwgfTsKKworICAgIGF1dG8mIG9wdGlvbnMg
PSBtX2xvYWRlci0+b3B0aW9ucygpOworICAgIGlmIChvcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRp
b25zOjpNb2RlOjpOb0NvcnMgJiYgcmVzcG9uc2UudGFpbnRpbmcoKSA9PSBSZXNvdXJjZVJlc3Bv
bnNlOjpUYWludGluZzo6T3BhcXVlKQorICAgICAgICByZXR1cm4gUmVzb3VyY2VFcnJvciB7IGVy
cm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHJlc3BvbnNlLnVybCgpLCAiUmVzcG9uc2Ugc2Vy
dmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGlzIG9wYXF1ZSJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6
QWNjZXNzQ29udHJvbCB9OworCisgICAgLy8gTmF2aWdhdGUgbW9kZSBpbmR1Y2VzIG1hbnVhbCBy
ZWRpcmVjdC4KKyAgICBpZiAob3B0aW9ucy5yZWRpcmVjdCAhPSBGZXRjaE9wdGlvbnM6OlJlZGly
ZWN0OjpNYW51YWwgJiYgb3B0aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdh
dGUgJiYgcmVzcG9uc2UudGFpbnRpbmcoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpUYWludGluZzo6
T3BhcXVlcmVkaXJlY3QpCisgICAgICAgIHJldHVybiBSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21h
aW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVzcG9uc2UudXJsKCksICJSZXNwb25zZSBzZXJ2ZWQgYnkg
c2VydmljZSB3b3JrZXIgaXMgb3BhcXVlIHJlZGlyZWN0Il9zLCBSZXNvdXJjZUVycm9yOjpUeXBl
OjpBY2Nlc3NDb250cm9sIH07CisKKyAgICBpZiAoKG9wdGlvbnMucmVkaXJlY3QgIT0gRmV0Y2hP
cHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93IHx8IG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6
Ok1vZGU6Ok5hdmlnYXRlKSAmJiByZXNwb25zZS5pc1JlZGlyZWN0ZWQoKSkKKyAgICAgICAgcmV0
dXJuIFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZXNwb25z
ZS51cmwoKSwgIlJlc3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdvcmtlciBoYXMgcmVkaXJlY3Rp
b25zIl9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH07CisKKyAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKK3sKKyAgICBtX2lz
Q2hlY2tpbmdSZXNwb25zZSA9IHRydWU7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXNwb25zZSA9IFdURk1vdmUocmVzcG9uc2Up
XSgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fbG9hZGVyKSB7CisgICAgICAgICAgICBtX2lz
Q2hlY2tpbmdSZXNwb25zZSA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKSkg
eworICAgICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSBmYWxzZTsKKyAgICAgICAgICAg
IG1fbG9hZGVyLT5kaWRGYWlsKGVycm9yLnZhbHVlKCkpOworICAgICAgICAgICAgQVNTRVJUKCFt
X2xvYWRlcik7CisgICAgICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxs
YmFjaykpCisgICAgICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0OjpTdWNjZWVkZWQpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlLnNldFNvdXJjZShS
ZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpOworCisgICAgICAgIGlmIChy
ZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkgJiYgcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpLmNv
bnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlvbikpIHsKKyAgICAgICAgICAgIG1faXNDaGVj
a2luZ1Jlc3BvbnNlID0gZmFsc2U7CisgICAgICAgICAgICBjb250aW51ZUxvYWRpbmdBZnRlckNo
ZWNraW5nUmVzcG9uc2UoKTsKKyAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRp
cmVjdGlvblN0YXR1czo6UmVjZWl2aW5nOworICAgICAgICAgICAgbV9sb2FkZXItPndpbGxTZW5k
UmVxdWVzdChtX2xvYWRlci0+cmVxdWVzdCgpLnJlZGlyZWN0ZWRSZXF1ZXN0KHJlc3BvbnNlLCBt
X3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpLCByZXNwb25zZSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpc10oUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCkgeworICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LmlzTnVsbCgpIHx8ICFtX2NhbGxi
YWNrKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBBU1NF
UlQocmVxdWVzdCA9PSBtX2xvYWRlci0+cmVxdWVzdCgpKTsKKyAgICAgICAgICAgICAgICBpZiAo
bV9yZWRpcmVjdGlvblN0YXR1cyA9PSBSZWRpcmVjdGlvblN0YXR1czo6UmVjZWl2ZWQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgc3RhcnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0g
UmVkaXJlY3Rpb25TdGF0dXM6OkZvbGxvd2luZzsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW4gY2FzZSBvZiBtYWluIHJlc291
cmNlIGFuZCBtaW1lIHR5cGUgaXMgdGhlIGRlZmF1bHQgb25lLCB3ZSBzZXQgaXQgdG8gdGV4dC9o
dG1sIHRvIHBhc3MgbW9yZSBzZXJ2aWNlIHdvcmtlciBXUFQgdGVzdHMuCisgICAgICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgcmVmaW5lIG91ciBNSU1FIHR5cGUgc25pZmZpbmcgc3RyYXRlZ3kgZm9y
IHN5bnRoZXRpYyByZXNwb25zZXMuCisgICAgICAgIGlmIChtX2xvYWRlci0+b3JpZ2luYWxSZXF1
ZXN0KCkucmVxdWVzdGVyKCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pIHsK
KyAgICAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpID09IGRlZmF1bHRNSU1FVHlwZSgp
KSB7CisgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0TWltZVR5cGUoInRleHQvaHRtbCJfcyk7
CisgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZSgiVVRGLTgiX3Mp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXMgcGVyIGh0dHBzOi8v
ZmV0Y2guc3BlYy53aGF0d2cub3JnLyNtYWluLWZldGNoIHN0ZXAgOSwgY29weSByZXF1ZXN0J3Mg
dXJsIGxpc3QgaW4gcmVzcG9uc2UncyB1cmwgbGlzdCBpZiBlbXB0eS4KKyAgICAgICAgaWYgKHJl
c3BvbnNlLnVybCgpLmlzTnVsbCgpKQorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0VVJMKG1fbG9h
ZGVyLT5yZXF1ZXN0KCkudXJsKCkpOworCisgICAgICAgIG1fbG9hZGVyLT5kaWRSZWNlaXZlUmVz
cG9uc2UocmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKV0geworICAgICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlTG9hZGluZ0FmdGVyQ2hlY2tpbmdSZXNwb25zZSgpOworICAgICAgICAg
ICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UsIGludDY0X3QgZW5jb2RlZERhdGFMZW5n
dGgpCit7CisgICAgYXV0byogZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRh
dGFSZWZlcmVuY2UuZGF0YSgpKTsKKyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAgICAgIG1fYnVm
ZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwor
ICAgICAgICBtX2VuY29kZWREYXRhTGVuZ3RoID0gZW5jb2RlZERhdGFMZW5ndGg7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBkYXRhUmVmZXJlbmNlLnNpemUo
KSk7CisgICAgICAgIG1fZW5jb2RlZERhdGFMZW5ndGggKz0gZW5jb2RlZERhdGFMZW5ndGg7Cisg
ICAgfQorCisgICAgaWYgKG1faXNDaGVja2luZ1Jlc3BvbnNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyldIHsKKyAgICAgICAgaWYgKCFtX2xvYWRlciB8fCAhbV9lbmNvZGVkRGF0YUxlbmd0aCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2xvYWRlci0+ZGlkUmVjZWl2ZUJ1ZmZlciht
X2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBtX2VuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9h
ZEJ5dGVzKTsKKyAgICAgICAgbV9lbmNvZGVkRGF0YUxlbmd0aCA9IDA7CisgICAgfSk7Cit9CisK
K3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3Qg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Jt
IGRhdGEgcmVhZGluZy4KK30KKwordm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZEZp
bmlzaCgpCit7CisgICAgbV9kaWRGaW5pc2ggPSB0cnVlOworCisgICAgaWYgKG1faXNDaGVja2lu
Z1Jlc3BvbnNlKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKCFtX2xvYWRl
cikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzd2l0Y2ggKG1fcmVkaXJlY3Rpb25T
dGF0dXMpIHsKKyAgICAgICAgY2FzZSBSZWRpcmVjdGlvblN0YXR1czo6Tm9uZToKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZpbmc6Cisg
ICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2Vp
dmVkOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVz
OjpGb2xsb3dpbmc6CisgICAgICAgICAgICBzdGFydCgpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZlZDoKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJl
ZGlyZWN0aW9uU3RhdHVzOjpOb25lOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKCFtX2Nh
bGxiYWNrKTsKKworICAgICAgICBtX2xvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhOZXR3b3JrTG9h
ZE1ldHJpY3MgeyB9KTsKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyUHJvdmlkZXIuZmV0Y2hGaW5p
c2hlZChtX2lkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6ZGlkRmFpbChSZXNvdXJjZUVycm9yJiYgZXJyb3IpCit7CisgICAgbV9kaWRGYWls
ID0gdHJ1ZTsKKyAgICBtX2Vycm9yID0gV1RGTW92ZShlcnJvcik7CisKKyAgICBpZiAobV9pc0No
ZWNraW5nUmVzcG9uc2UpCisgICAgICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICBpZiAoIW1f
bG9hZGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0g
bV9sb2FkZXItPmZyYW1lKCkgPyBtX2xvYWRlci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSA6IG51bGxw
dHI7CisgICAgICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtX2Vy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgaWYgKG1fbG9hZGVyLT5v
cHRpb25zKCkuZGVzdGluYXRpb24gIT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RW1wdHlT
dHJpbmcpCisgICAgICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9h
ZCAiLCBtX2Vycm9yLmZhaWxpbmdVUkwoKS5zdHJpbmcoKSwgIi4iKSk7CisgICAgICAgIH0KKwor
ICAgICAgICBtX2xvYWRlci0+ZGlkRmFpbChtX2Vycm9yKTsKKworICAgICAgICBpZiAoYXV0byBj
YWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisgICAgICAgICAgICBjYWxsYmFjayhSZXN1
bHQ6OlN1Y2NlZWRlZCk7CisKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyUHJvdmlkZXIuZmV0Y2hG
aW5pc2hlZChtX2lkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6ZGlkTm90SGFuZGxlKCkKK3sKKyAgICBBU1NFUlQoIW1faXNDaGVja2luZ1Jl
c3BvbnNlKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0geworICAgICAgICBpZiAoIW1fbG9hZGVyKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkK
KyAgICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6VW5oYW5kbGVkKTsKKworICAgICAgICBtX3Nl
cnZpY2VXb3JrZXJQcm92aWRlci5mZXRjaEZpbmlzaGVkKG1faWRlbnRpZmllcik7CisgICAgfSk7
Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpjYW5jZWwoKQoreworICAgIGlm
IChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2FsbGJhY2so
UmVzdWx0OjpDYW5jZWxsZWQpOworCisgICAgaWYgKCFtX2RpZEZpbmlzaCAmJiAhbV9kaWRGYWls
KSB7CisgICAgICAgIG1fY29ubmVjdGlvbi0+Y2FuY2VsRmV0Y2gobV9pZGVudGlmaWVyLCBtX3Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKworICAgIH0KKyAgICBtX2xvYWRl
ciA9IG51bGxwdHI7CisgICAgbV9idWZmZXIgPSBudWxscHRyOworfQorCit2b2lkIFNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaDo6Y29udGludWVMb2FkaW5nQWZ0ZXJDaGVja2luZ1Jlc3BvbnNlKCkK
K3sKKyAgICBBU1NFUlQoIW1faXNDaGVja2luZ1Jlc3BvbnNlKTsKKyAgICBpZiAoIW1fbG9hZGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9lbmNvZGVkRGF0YUxlbmd0aCkgeworICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyldIHsKKyAgICAgICAgICAgIGlmICghbV9sb2FkZXIgfHwgIW1fZW5jb2RlZERhdGFMZW5ndGgp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9sb2FkZXItPmRpZFJlY2Vp
dmVCdWZmZXIobV9idWZmZXIucmVsZWFzZU5vbk51bGwoKSwgbV9lbmNvZGVkRGF0YUxlbmd0aCwg
RGF0YVBheWxvYWRCeXRlcyk7CisgICAgICAgICAgICBtX2VuY29kZWREYXRhTGVuZ3RoID0gMDsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKG1fZGlkRmFpbCkgeworICAgICAgICBkaWRG
YWlsKFdURk1vdmUobV9lcnJvcikpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KG1fZGlkRmluaXNoKQorICAgICAgICBkaWRGaW5pc2goKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFlYzY0MWU5N2I4YTdjZDc5ZmVhNjBjNDIxYjcxN2VhNTY1ZTY3
ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJTV0NsaWVudENvbm5lY3Rpb247CitjbGFzcyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI7CisK
K2NsYXNzIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaD4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7
CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBSZXN1bHQgeyBTdWNjZWVkZWQsIENhbmNlbGxlZCwg
VW5oYW5kbGVkIH07CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVzdWx0KT47CisKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aD4gY3JlYXRlKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYsIFJlZjxXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcj4mJiwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBSZWY8V2ViU1dDbGllbnRDb25u
ZWN0aW9uPiYmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IENhbGxiYWNrJiYpOworICAgIH5TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2goKTsKKworICAgIHZv
aWQgc3RhcnQoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBjYW5jZWwoKTsKKworICAgIGJvb2wg
aXNPbmdvaW5nKCkgY29uc3QgeyByZXR1cm4gISFtX2NhbGxiYWNrOyB9CisKK3ByaXZhdGU6Cisg
ICAgU2VydmljZVdvcmtlckNsaWVudEZldGNoKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYsIFJl
ZjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4mJiwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBS
ZWY8V2ViU1dDbGllbnRDb25uZWN0aW9uPiYmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIENhbGxiYWNrJiYpOworCisgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpSZXNvdXJjZUVycm9yPiB2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJik7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBk
aWRGaW5pc2goKTsKKyAgICB2b2lkIGRpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsK
KyAgICB2b2lkIGRpZE5vdEhhbmRsZSgpOworCisgICAgdm9pZCBjb250aW51ZUxvYWRpbmdBZnRl
ckNoZWNraW5nUmVzcG9uc2UoKTsKKworICAgIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYgbV9z
ZXJ2aWNlV29ya2VyUHJvdmlkZXI7CisgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
PiBtX2xvYWRlcjsKKyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIFJlZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBDYWxsYmFj
ayBtX2NhbGxiYWNrOworICAgIGVudW0gY2xhc3MgUmVkaXJlY3Rpb25TdGF0dXMgeyBOb25lLCBS
ZWNlaXZpbmcsIEZvbGxvd2luZywgUmVjZWl2ZWQgfTsKKyAgICBSZWRpcmVjdGlvblN0YXR1cyBt
X3JlZGlyZWN0aW9uU3RhdHVzIHsgUmVkaXJlY3Rpb25TdGF0dXM6Ok5vbmUgfTsKKyAgICBib29s
IG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCB7IHRydWUgfTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKKyAgICBpbnQ2NF90IG1f
ZW5jb2RlZERhdGFMZW5ndGggeyAwIH07CisgICAgYm9vbCBtX2lzQ2hlY2tpbmdSZXNwb25zZSB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2Rp
ZEZhaWwgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgbV9lcnJvcjsKKwor
ICAgIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIG1fc2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaC5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGY1ZGU1MTlhM2UyYjYzMWJlZmY2
N2MxODIzODNkNGZiZjQwMjc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckNsaWVu
dEZldGNoIHsKKyAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSkKKyAgICBEaWRSZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwg
aW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCisgICAgRGlkRmFpbChXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIERpZE5vdEhhbmRsZSgpCit9CisKKyNlbmRp
ZiAvLyAhRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjE1NzZlMmJjMjMzMzlkZDg2ODkxMzZkMmRiMzY5YzQ2NDMyOWRhMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKQEAgLTAsMCArMSwyMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIgorCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkZvcm1E
YXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2guaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIKKyNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5l
Y3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRh
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5h
bWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpXZWJTV0NsaWVudENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAg
ICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisgICAgLCBtX3N3T3JpZ2luVGFibGUobWFrZVVu
aXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPigpKQoreworICAgIEFTU0VSVChzZXNzaW9uSUQuaXNW
YWxpZCgpKTsKKyAgICBib29sIHJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6RXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKHNlc3Npb25J
RCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RXN0YWJsaXNoU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpSZXBseShtX2lkZW50aWZpZXIpKTsKKworICAgIEFTU0VSVF9VTlVT
RUQocmVzdWx0LCByZXN1bHQpOworfQorCitXZWJTV0NsaWVudENvbm5lY3Rpb246On5XZWJTV0Ns
aWVudENvbm5lY3Rpb24oKQoreworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2No
ZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlNjaGVkdWxlSm9iSW5T
ZXJ2ZXIoam9iRGF0YSkpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNo
RmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmIHJl
c3VsdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkZpbmlz
aEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRD
b25uZWN0aW9uOjphZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
blNlcnZlcihpZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpy
ZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
V1NlcnZlckNvbm5lY3Rpb246OlJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZl
cihpZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklk
ZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgY29uc3QgU2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlSWRlbnRpZmllcikKK3sKKyAgICAvLyBG
SVhNRTogVGVtcG9yYXJpbHkgcGlwZSB0aGUgU1cgcG9zdE1lc3NhZ2UgbWVzc2FnZXMgdmlhIHRo
ZSBVSVByb2Nlc3Mgc2luY2UgdGhpcyBpcyB3aGVyZSB0aGUgTWVzc2FnZVBvcnQgcmVnaXN0cnkg
bGl2ZXMKKyAgICAvLyBhbmQgdGhpcyBhdm9pZHMgcmFjZXMuCisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdlKSwgc291cmNl
SWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSksIDApOworfQorCit2b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IHRvcE9yaWdpbi5kYXRhKCksIGRh
dGEsIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgfSk7Cit9
CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIpCit7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudCB7IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIoKSwgY29udGV4dElkZW50aWZpZXIgfSB9KTsKK30KKwordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkmIGtleSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OkRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGtleSkpOworfQor
Citib29sIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6bWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3Rl
cmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAorewor
ICAgIGlmICghbV9zd09yaWdpblRhYmxlLT5pc0ltcG9ydGVkKCkpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgcmV0dXJuIG1fc3dPcmlnaW5UYWJsZS0+Y29udGFpbnMob3JpZ2luKTsKK30K
Kwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1v
cnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBtX3N3T3JpZ2lu
VGFibGUtPnNldFNoYXJlZE1lbW9yeShoYW5kbGUpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6c2V0U1dPcmlnaW5UYWJsZUlzSW1wb3J0ZWQoKQoreworICAgIG1fc3dPcmlnaW5U
YWJsZS0+c2V0SXNJbXBvcnRlZCgpOworICAgIHdoaWxlICghbV90YXNrc1BlbmRpbmdPcmlnaW5J
bXBvcnQuaXNFbXB0eSgpKQorICAgICAgICBtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9ydC50YWtl
Rmlyc3QoKSgpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlkTWF0Y2hSZWdp
c3RyYXRpb24odWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmIHJlc3VsdCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworCisgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBtX29uZ29pbmdNYXRj
aFJlZ2lzdHJhdGlvblRhc2tzLnRha2UobWF0Y2hpbmdSZXF1ZXN0KSkKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBWZWN0
b3I8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYgcmVnaXN0cmF0aW9ucykKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3MudGFrZShtYXRjaGluZ1JlcXVlc3Qp
KQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlZ2lzdHJhdGlvbnMpKTsKK30K
Kwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3VyaXR5
T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlv
bkNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKwor
ICAgIGlmICghbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKHRvcE9yaWdp
bikpIHsKKyAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KFt0aGlzLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spLCB0b3BPcmlnaW4gPSBXVEZNb3ZlKHRvcE9yaWdpbiksIGNsaWVudFVS
TF0oKSBtdXRhYmxlIHsKKyAgICAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91
c0NhbGxiYWNrSWRlbnRpZmllcjsKKyAgICAgICAgbV9vbmdvaW5nTWF0Y2hSZWdpc3RyYXRpb25U
YXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246Ok1hdGNoUmVnaXN0cmF0aW9uKGNhbGxiYWNr
SUQsIHRvcE9yaWdpbiwgY2xpZW50VVJMKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjpydW5PckRlbGF5VGFza0ZvckltcG9ydChXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiB0YXNrKQoreworICAgIGlmIChtX3N3T3JpZ2luVGFibGUtPmlzSW1wb3J0ZWQoKSkKKyAg
ICAgICAgdGFzaygpOworICAgIGVsc2UKKyAgICAgICAgbV90YXNrc1BlbmRpbmdPcmlnaW5JbXBv
cnQuYXBwZW5kKFdURk1vdmUodGFzaykpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4s
IGNvbnN0IFVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmIGNh
bGxiYWNrKQoreworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSArK21fcHJldmlvdXNDYWxsYmFj
a0lkZW50aWZpZXI7CisgICAgbV9vbmdvaW5nUmVnaXN0cmF0aW9uUmVhZHlUYXNrcy5hZGQoY2Fs
bGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6V2hlblJlZ2lzdHJhdGlvblJlYWR5KGNhbGxiYWNrSUQsIHRvcE9yaWdp
bi5kYXRhKCksIGNsaWVudFVSTCkpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhKQoreworICAgIEFTU0VSVChy
ZWdpc3RyYXRpb25EYXRhLmFjdGl2ZVdvcmtlcik7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBt
X29uZ29pbmdSZWdpc3RyYXRpb25SZWFkeVRhc2tzLnRha2UoY2FsbGJhY2tJRCkpCisgICAgICAg
IGNhbGxiYWNrKFdURk1vdmUocmVnaXN0cmF0aW9uRGF0YSkpOworfQorCit2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BP
cmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtYXlI
YXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgeworICAgICAg
ICBjYWxsYmFjayh7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcnVuT3JEZWxh
eVRhc2tGb3JJbXBvcnQoW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRvcE9y
aWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMXSgpIG11dGFibGUgeworICAgICAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOwor
ICAgICAgICBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3MuYWRkKGNhbGxiYWNrSUQsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zKGNhbGxiYWNrSUQsIHRvcE9yaWdpbiwgY2xpZW50VVJM
KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzdGFydEZldGNo
KFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiByZWZlcnJlcikK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2gg
eyBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCBy
ZXF1ZXN0LCBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgcmVxdWVzdC5odHRwQm9k
eSgpIH0sIHJlZmVycmVyIH0pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y2Fu
Y2VsRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGlu
YXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdl
LCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4p
Cit7CisgICAgU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNs
aWVudChkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZN
b3ZlKHNvdXJjZSksIHNvdXJjZU9yaWdpbik7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCkKK3sKKyAgICBhdXRvIHJlZ2lzdHJhdGlvblRh
c2tzID0gV1RGTW92ZShtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzKTsKKyAgICBmb3Ig
KGF1dG8mIGNhbGxiYWNrIDogcmVnaXN0cmF0aW9uVGFza3MudmFsdWVzKCkpCisgICAgICAgIGNh
bGxiYWNrKHN0ZDo6bnVsbG9wdCk7CisKKyAgICBhdXRvIGdldFJlZ2lzdHJhdGlvblRhc2tzID0g
V1RGTW92ZShtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3MpOworICAgIGZvciAoYXV0byYg
Y2FsbGJhY2sgOiBnZXRSZWdpc3RyYXRpb25UYXNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJh
Y2soeyB9KTsKKworICAgIGNsZWFyUGVuZGluZ0pvYnMoKTsKK30KKwordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBzZW5kU3luYyhNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpTeW5jVGVybWluYXRlV29ya2VyKGlkZW50aWZpZXIpLCBNZXNzYWdlczo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpSZXBseSgpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMjc5YjJhNWIzNTJlMzlhOTU2NzNkMjc3NWMzZTg5YTEx
YTg4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVu
dC9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgiCisjaW5j
bHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlV2l0aE1lc3Nh
Z2VQb3J0cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU1dDbGllbnRDb25uZWN0aW9uLmg+CisjaW5j
bHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEV4Y2VwdGlvbkRhdGE7CitjbGFzcyBSZXNvdXJjZUxv
YWRlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNXT3JpZ2luVGFibGU7
CitjbGFzcyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI7CisKK2NsYXNzIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24sIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJTV0NsaWVudENvbm5lY3Rpb24geyBjb25uZWN0aW9uLCBzZXNzaW9u
SUQgfSk7IH0KKyAgICB+V2ViU1dDbGllbnRDb25uZWN0aW9uKCk7CisKKyAgICBXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICB2b2lkIGFkZFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCByZW1vdmVTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIpIGZpbmFsOworCisgICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7CisKKyAgICBib29sIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9y
aWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIHN0YXJ0RmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgU3RyaW5nJiByZWZl
cnJlcik7CisgICAgdm9pZCBjYW5jZWxGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKworICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlm
aWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZU9yaWdpbik7CisKKyAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3Qo
KTsKKworICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgV2ViU1dDbGllbnRDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklEKTsKKworICAgIHZvaWQgc2NoZWR1bGVK
b2JJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwor
ICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKSBmaW5hbDsKKyAgICB2
b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXI+JikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOworCisgICAgdm9pZCBtYXRjaFJl
Z2lzdHJhdGlvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0
IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIGRpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50
aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGE+JiYpOworICAgIHZvaWQgZGlkR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBtYXRjaFJlcXVl
c3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGE+JiYpOworICAgIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBX
aGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdHJh
dGlvblJlYWR5KHVpbnQ2NF90IGNhbGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EYXRhJiYpOworCisgICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRV
UkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmKSBmaW5hbDsKKworICAgIHZvaWQgZGlkUmVz
b2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYpIGZpbmFsOworCisgICAgdm9pZCBzY2hlZHVsZVBheW1lbnRKb2IoY29uc3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKKworICAgIHZvaWQgcnVuT3JEZWxheVRh
c2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7CisKKyAgICBJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9jb25u
ZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQo
KSBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsgfQorCisgICAgdm9pZCBz
ZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7
CisgICAgdm9pZCBzZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpOworCisgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CisgICAgVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5UYWJsZTsKKwor
ICAgIHVpbnQ2NF90IG1fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07CisgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2s+IG1fb25nb2luZ01hdGNoUmVnaXN0
cmF0aW9uVGFza3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxi
YWNrPiBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3M7CisgICAgSGFzaE1hcDx1aW50NjRf
dCwgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2s+IG1fb25nb2luZ1JlZ2lzdHJhdGlvblJl
YWR5VGFza3M7CisgICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tzUGVuZGlu
Z09yaWdpbkltcG9ydDsKKworfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uCisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQv
V2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlNGIwYTgyMmM3
ZjY0N2Q5MzhmYWI1MzZiODg3NjJjM2MyM2ZmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSw0NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCittZXNzYWdlcyAtPiBXZWJTV0NsaWVu
dENvbm5lY3Rpb24geworICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2FnZXMgY2FuIGJl
IGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXU2VydmVyOjpDb25uZWN0aW9uCisg
ICAgSm9iUmVqZWN0ZWRJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmll
ciBqb2JEYXRhSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0
aW9uKQorICAgIFJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSByZWdpc3RyYXRpb24sIGVudW0gV2ViQ29yZTo6
U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKKyAgICBV
bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpv
YklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQp
CisgICAgU3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
SWRlbnRpZmllciBqb2JEYXRhSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6Q2FjaGUg
Y2FjaGVQb2xpY3kpCisgICAgVXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bSBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUgc3RhdGUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlckRhdGE+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgIFVwZGF0
ZVdvcmtlclN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZSkKKyAg
ICBGaXJlVXBkYXRlRm91bmRFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFNldFJlZ2lzdHJhdGlvbkxhc3RVcGRhdGVUaW1l
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdhbGxUaW1lIGxhc3RVcGRhdGVUaW1lKQorICAgIFNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNh
Y2hlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGVudW0gV2ViQ29yZTo6U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNh
Y2hlKTsKKyAgICBOb3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKEhhc2hTZXQ8V2ViQ29y
ZTo6RG9jdW1lbnRJZGVudGlmaWVyPiBjb250ZXh0SWRlbnRpZmllcnMsIHN0cnVjdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyRGF0YSBuZXdDb250cm9sbGVyKQorCisgICAgU2V0U1dPcmlnaW5UYWJs
ZUlzSW1wb3J0ZWQoKQorICAgIFNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoV2ViS2l0OjpT
aGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElk
ZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdl
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgc291cmNlLCBTdHJpbmcgc291cmNl
T3JpZ2luKQorCisgICAgRGlkTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hSZXF1ZXN0
SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YT4gZGF0YSkKKyAgICBEaWRHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoUmVx
dWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YT4gcmVnaXN0cmF0aW9ucykKKyAgICBSZWdpc3RyYXRpb25SZWFkeSh1aW50NjRfdCByZWdp
c3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkKK30KKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QYXltZW50L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ODFmYjQ1ZmE1YzM0NmQ1YWQxNmUxMTJjMzY4YTZjZWFhYjIxYTdkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMzY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIgorCisjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2lu
Y2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUg
IldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJEb2N1bWVudExvYWRlci5oIgor
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2Vz
U3RvcmUuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2xNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgor
I2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JD
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5Q2xpZW50cy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2Vi
UlRDUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlckFnZW50Lmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgor
I2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKworI2lmIFVTRShRVUlDS19MT09LKQorI2luY2x1
ZGUgPFdlYkNvcmUvUHJldmlld0xvYWRlckNsaWVudC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitzdGF0aWMgY29uc3QgU2Vjb25kcyBhc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCB7IDEw
X3MgfTsKK3N0YXRpYyBjb25zdCBTZWNvbmRzIHN5bmNXb3JrZXJUZXJtaW5hdGlvblRpbWVvdXQg
eyAxMDBfbXMgfTsgLy8gT25seSB1c2VkIGJ5IGxheW91dCB0ZXN0cy4KKworY2xhc3MgU2Vydmlj
ZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJD
bGllbnQgeworcHVibGljOgorICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KQorICAgICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCisgICAg
ICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCisgICAgICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50
KQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdl
bnQpIHsgbV91c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCk7IH0KKworcHJpdmF0ZToKKyAg
ICBSZWY8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKSBm
aW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkRvY3VtZW50TG9hZGVyOjpjcmVhdGUocmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEpOworICAgIH0KKworICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0
cm95ZWQoKSBmaW5hbCB7IG1fY29ubmVjdGlvbi5yZW1vdmVGcmFtZUxvYWRlckNsaWVudCgqdGhp
cyk7IH0KKworICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQor
ICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fcGFnZUlEOyB9CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3Qg
VVJMJikgZmluYWwgeyByZXR1cm4gbV91c2VyQWdlbnQ7IH0KKworICAgIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CisgICAgdWludDY0X3QgbV9wYWdlSUQgeyAwIH07CisgICAgdWludDY0X3QgbV9mcmFt
ZUlEIHsgMCB9OworICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKK307CisKK1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHBhZ2VHcm91cElELCB1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQorICAgIDogbV9jb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2VzcyhXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICwgbV9wYWdlR3Jv
dXBJRChwYWdlR3JvdXBJRCkKKyAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICAsIG1fdXNlckFnZW50KHN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9u
TmFtZSh7IH0pKQorI2Vsc2UKKyAgICAsIG1fdXNlckFnZW50KHN0YW5kYXJkVXNlckFnZW50KCkp
CisjZW5kaWYKK3sKKyAgICB1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKHN0b3JlKTsKK30KKworV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246On5XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bigpID0gZGVmYXVsdDsKKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6dXBk
YXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKK3sK
KyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNlcnZpY2VX
b3JrZXJFbmFibGVkKHRydWUpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0Q2FjaGVBUElFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6Y2FjaGVBUElFbmFibGVkS2V5KCkpKTsKKyAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZldGNoQVBJRW5hYmxlZChzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZldGNoQVBJRW5hYmxlZEtleSgpKSk7
CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRVc2VyVGlt
aW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnVz
ZXJUaW1pbmdFbmFibGVkS2V5KCkpKTsKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnNldFJlc291cmNlVGltaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJlc291cmNlVGltaW5nRW5hYmxlZEtleSgpKSk7Cisg
ICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUtl
ZXBBbGl2ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWRLZXkoKSkpOworICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0UmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2Vzcyhz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJlc3RyaWN0ZWRIVFRQ
UmVzcG9uc2VBY2Nlc3NLZXkoKSkpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0U2VydmVyVGltaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNlcnZlclRpbWluZ0VuYWJsZWRLZXkoKSkpOworICAgIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0SXNTZWN1cmVDb250ZXh0
QXR0cmlidXRlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6OmlzU2VjdXJlQ29udGV4dEF0dHJpYnV0ZUVuYWJsZWRLZXkoKSkpOworCisvLyAgICBtX3N0
b3JhZ2VCbG9ja2luZ1BvbGljeSA9IHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdl
QmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjptX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKSk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYgZGF0YSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBMT0coU2Vy
dmljZVdvcmtlciwgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2Vydmlj
ZVdvcmtlciBmb3Igd29ya2VyICVzIiwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dn
aW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKy8vICAgIFBhZ2VDb25maWd1cmF0aW9uIHBh
Z2VDb25maWd1cmF0aW9uIHsKKy8vICAgICAgICBjcmVhdGVFbXB0eUVkaXRvckNsaWVudCgpLAor
Ly8gICAgICAgIFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSwKKy8vICAgICAgICBXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCisvLyAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKQorLy8gICAgfTsKKworLy8gICAgZmlsbFdp
dGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24pOworCisjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCisvLyAgICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0gV2Vi
RGF0YWJhc2VQcm92aWRlcjo6Z2V0T3JDcmVhdGUobV9wYWdlR3JvdXBJRCk7CisjZW5kaWYKKwor
ICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgbW92ZWQgZGlyZWN0bHkgdG8gV2Vi
Q29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbgorICAgIC8vIElmIGl0IHdlcmVuJ3Qg
Zm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCdzIGRlcGVuZGVuY2Ugb24gV2ViRG9j
dW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFkeSBoYXBwZW4uCisgICAgYXV0byBmcmFtZUxv
YWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xp
ZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJRCwgKyttX3ByZXZpb3VzU2VydmljZVdvcmtl
cklELCBtX3VzZXJBZ2VudCk7CisvLyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKKyAgICBtX2xvYWRlcnMuYWRk
KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKKworLy8gICAgYXV0byBzZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkgPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZShXVEZNb3ZlKHBh
Z2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc2Vzc2lvbklELCBTdHJpbmcgeyBtX3VzZXJBZ2VudCB9
LCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVBheW1lbnRQcm92aWRlcigpLCBtX3BheW1l
bnRCbG9ja2luZ1BvbGljeSk7CisvLyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5y
ZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFdURk1vdmUoc2VydmljZVdvcmtl
clRocmVhZFByb3h5KSk7CisKKyAgICBMT0coU2VydmljZVdvcmtlciwgIkNvbnRleHQgcHJvY2Vz
cyBQSUQ6ICVpIGNyZWF0ZWQgd29ya2VyIHRocmVhZFxuIiwgZ2V0Q3VycmVudFByb2Nlc3NJRCgp
KTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0VXNlckFnZW50
KFN0cmluZyYmIHVzZXJBZ2VudCkKK3sKKyAgICBtX3VzZXJBZ2VudCA9IFdURk1vdmUodXNlckFn
ZW50KTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cmVtb3ZlRnJh
bWVMb2FkZXJDbGllbnQoU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCit7
CisgICAgYXV0byByZXN1bHQgPSBtX2xvYWRlcnMucmVtb3ZlKCZjbGllbnQpOworICAgIEFTU0VS
VF9VTlVTRUQocmVzdWx0LCByZXN1bHQpOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKHN0ZDo6b3B0aW9uYWw8
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoZXhjZXB0aW9uTWVzc2FnZS5pc0VtcHR5KCkp
CisgICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2NyaXB0Q29udGV4dFN0YXJ0ZWQoam9iRGF0
YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSwgMCk7CisgICAgZWxzZQorICAg
ICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGpvYkRh
dGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2FnZSks
IDApOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEZldGNoKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgRmV0Y2hPcHRpb25zJiBvcHRpb25zLCBjb25zdCBVUkwm
IHNlcnZpY2VXb3JrZXJVUkwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCit7CisgICAgLy8gRm9y
IGV4b3RpYyBzZXJ2aWNlIHdvcmtlcnMsIGRvIG5vdCBlbmZvcmNlIGNoZWNrcy4KKyAgICBpZiAo
IXNlcnZpY2VXb3JrZXJVUkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmIChvcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpO
YXZpZ2F0ZSkgeworICAgICAgICBpZiAoIXByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChyZXF1
ZXN0LnVybCgpLCBzZXJ2aWNlV29ya2VyVVJMKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoU2VydmljZVdvcmtlciwgIlNob3VsZCBub3QgaW50ZXJjZXB0IGEgbmF2aWdhdGlvbiBs
b2FkIHRoYXQgaXMgbm90IHNhbWUtb3JpZ2luIGFzIHRoZSBzZXJ2aWNlIHdvcmtlciBVUkwiKTsK
KyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShyZXF1ZXN0LnVybCgpLmhv
c3QoKSA9PSBzZXJ2aWNlV29ya2VyVVJMLmhvc3QoKSwgIkhvc3RzIGRvIG5vdCBtYXRjaCIpOwor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHJlcXVlc3QudXJsKCkucHJv
dG9jb2woKSA9PSBzZXJ2aWNlV29ya2VyVVJMLnByb3RvY29sKCksICJQcm90b2NvbHMgZG8gbm90
IG1hdGNoIik7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UocmVxdWVz
dC51cmwoKS5wb3J0KCkgPT0gc2VydmljZVdvcmtlclVSTC5wb3J0KCksICJQb3J0cyBkbyBub3Qg
bWF0Y2giKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBTdHJpbmcgb3JpZ2luID0gcmVxdWVzdC5odHRwT3Jp
Z2luKCk7CisgICAgVVJMIHVybCB7IFVSTCgpLCBvcmlnaW4uaXNFbXB0eSgpID8gcmVmZXJyZXIg
OiBvcmlnaW4gfTsKKyAgICBpZiAodXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSAmJiAhcHJv
dG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHVybCwgc2VydmljZVdvcmtlclVSTCkpIHsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIlNob3VsZCBub3QgaW50ZXJjZXB0
IGEgbm9uIG5hdmlnYXRpb24gbG9hZCB0aGF0IGlzIG5vdCBvcmlnaW5hdGluZyBmcm9tIGEgc2Ft
ZS1vcmlnaW4gY29udGV4dCBhcyB0aGUgc2VydmljZSB3b3JrZXIgVVJMIik7CisgICAgICAgIEFT
U0VSVCh1cmwuaG9zdCgpID09IHNlcnZpY2VXb3JrZXJVUkwuaG9zdCgpKTsKKyAgICAgICAgQVNT
RVJUKHVybC5wcm90b2NvbCgpID09IHNlcnZpY2VXb3JrZXJVUkwucHJvdG9jb2woKSk7CisgICAg
ICAgIEFTU0VSVCh1cmwucG9ydCgpID09IHNlcnZpY2VXb3JrZXJVUkwucG9ydCgpKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNXQ29u
dGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShzZXJ2aWNl
V29ya2VySWRlbnRpZmllcikpCisgICAgICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+Y2Fu
Y2VsRmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9u
cyYmIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBmb3JtRGF0YSwgU3RyaW5nJiYg
cmVmZXJyZXIpCit7CisgICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250
ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewor
ICAgICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6RGlkTm90SGFuZGxlRmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgZmV0Y2hJZGVudGlmaWVyIH0sIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFpc1ZhbGlkRmV0Y2gocmVxdWVzdCwgb3B0aW9ucywgc2VydmljZVdvcmtlclRocmVhZFBy
b3h5LT5zY3JpcHRVUkwoKSwgcmVmZXJyZXIpKSB7CisgICAgICAgIG1fY29ubmVjdGlvblRvTmV0
d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWROb3RIYW5kbGVG
ZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSwgMCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNsaWVudCA9IFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNz
LmNvcHlSZWYoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXI+IGNsaWVudElkOworICAgIGlmIChvcHRpb25zLmNsaWVudElkZW50
aWZpZXIpCisgICAgICAgIGNsaWVudElkID0gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIg
eyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgb3B0aW9ucy5jbGllbnRJZGVudGlmaWVyLnZh
bHVlKCkgfTsKKworICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoZm9ybURhdGEudGFrZURhdGEoKSk7
CisgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5zdGFydEZldGNoKHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShj
bGllbnRJZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9w
dGlvbnMpKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25J
ZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3Jr
ZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQoreworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNp
bmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShzb3VyY2VEYXRhKSk7Cit9CisKK3ZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0
b24oKS5maXJlSW5zdGFsbEV2ZW50KGlkZW50aWZpZXIpOworfQorCit2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmZp
cmVBY3RpdmF0ZUV2ZW50KGlkZW50aWZpZXIpOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjp0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVX
b3JrZXIoaWRlbnRpZmllciwgYXN5bmNXb3JrZXJUZXJtaW5hdGlvblRpbWVvdXQsIG51bGxwdHIp
OworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzeW5jVGVybWluYXRl
V29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lc3NhZ2VzOjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCit7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkudGVybWlu
YXRlV29ya2VyKGlkZW50aWZpZXIsIHN5bmNXb3JrZXJUZXJtaW5hdGlvblRpbWVvdXQsIFdURk1v
dmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMm
JiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICAvLyBGSVhNRTogVGVtcG9yYXJpbHkgcGlw
ZSB0aGUgU1cgcG9zdE1lc3NhZ2UgbWVzc2FnZXMgdmlhIHRoZSBVSVByb2Nlc3Mgc2luY2UgdGhp
cyBpcyB3aGVyZSB0aGUgTWVzc2FnZVBvcnQgcmVnaXN0cnkgbGl2ZXMKKyAgICAvLyBhbmQgdGhp
cyBhdm9pZHMgcmFjZXMuCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzc1Bvb2w6OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGRlc3Rp
bmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRlbnRpZmllciwgc291
cmNlT3JpZ2luKSwgMCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OmRpZEZpbmlzaEluc3RhbGwoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKQoreworICAgIG1fY29ubmVjdGlv
blRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6RGlkRmluaXNoSW5zdGFsbChqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIHdhc1N1Y2Nlc3NmdWwpLCAwKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmluaXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub05ldHdv
cmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OkRpZEZpbmlzaEFjdGl2YXRpb24oc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCAwKTsKK30KKwor
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0U2VydmljZVdvcmtlckhhc1Bl
bmRpbmdFdmVudHMoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGJvb2wgaGFzUGVuZGluZ0V2ZW50cykKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNl
dFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBo
YXNQZW5kaW5nRXZlbnRzKSwgMCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OnNraXBXYWl0aW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRv
IGNhbGxiYWNrSUQgPSArK21fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBtX3NraXBX
YWl0aW5nUmVxdWVzdHMuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBt
X2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OlNraXBXYWl0aW5nKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
YWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OnNldFNjcmlwdFJlc291cmNlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRh
OjpJbXBvcnRlZFNjcmlwdCYgc2NyaXB0KQoreworICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2V0
U2NyaXB0UmVzb3VyY2UgeyBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgdXJsLCBzY3JpcHQuc2Ny
aXB0LCBzY3JpcHQucmVzcG9uc2VVUkwsIHNjcmlwdC5taW1lVHlwZSB9LCAwKTsKK30KKwordm9p
ZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6d29ya2VyVGVybWluYXRlZChTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBtX2Nvbm5l
Y3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb246OldvcmtlclRlcm1pbmF0ZWQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCAw
KTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmluZENsaWVudEJ5
SWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
ciwgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgYXV0
byByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9wcmV2aW91c1JlcXVlc3RJZGVudGlmaWVyOworICAg
IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwg
V1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6RmluZENsaWVudEJ5
SWRlbnRpZmllciB7IHJlcXVlc3RJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Y2xpZW50SWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6ZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiBjbGll
bnREYXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sg
PSBtX2ZpbmRDbGllbnRCeUlkZW50aWZpZXJSZXF1ZXN0cy50YWtlKHJlcXVlc3RJZGVudGlmaWVy
KSkgeworICAgICAgICBpZiAoaGFzU2VjdXJpdHlFcnJvcikgeworICAgICAgICAgICAgY2FsbGJh
Y2soRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKGNsaWVudERhdGEpKTsKKyAgICB9Cit9
CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Om1hdGNoQWxsKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zJiBvcHRpb25zLCBTZXJ2aWNlV29ya2VyQ2xp
ZW50c01hdGNoQWxsQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHJlcXVlc3RJZGVu
dGlmaWVyID0gKyttX3ByZXZpb3VzUmVxdWVzdElkZW50aWZpZXI7CisgICAgbV9tYXRjaEFsbFJl
cXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1f
Y29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6TWF0Y2hBbGwgeyByZXF1ZXN0SWRlbnRpZmllciwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIG9wdGlvbnMgfSwgMCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246Om1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYgY2xpZW50c0RhdGEpCit7Cisg
ICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX21hdGNoQWxsUmVxdWVzdHMudGFrZShyZXF1ZXN0SWRl
bnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoY2xpZW50c0RhdGEpKTsKK30KKwor
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW0oV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0g
KyttX3ByZXZpb3VzUmVxdWVzdElkZW50aWZpZXI7CisgICAgbV9jbGFpbVJlcXVlc3RzLmFkZChy
ZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVjdGlvblRv
TmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjo6Q2xhaW0geyByZXF1ZXN0SWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIg
fSwgMCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNsYWltQ29t
cGxldGVkKHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8g
Y2FsbGJhY2sgPSBtX2NsYWltUmVxdWVzdHMudGFrZShjbGFpbVJlcXVlc3RJZGVudGlmaWVyKSkK
KyAgICAgICAgY2FsbGJhY2soKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6ZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fc2tpcFdhaXRpbmdSZXF1ZXN0cy50YWtlKGNhbGxiYWNrSUQp
KQorICAgICAgICBjYWxsYmFjaygpOworfQorCitOT19SRVRVUk4gdm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6dGVybWluYXRlUHJvY2VzcygpCit7CisgICAgUkVMRUFTRV9MT0co
U2VydmljZVdvcmtlciwgIlNlcnZpY2Ugd29ya2VyIHByb2Nlc3MgaXMgZXhpdGluZyBiZWNhdXNl
IGl0IGlzIG5vIGxvbmdlciBuZWVkZWQiKTsKKyAgICBfZXhpdChFWElUX1NVQ0NFU1MpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1l
bnQvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjM5Y2U4NDQ3
ZTU2MjkwYTgwZTMxZjMxZTk4OTlmMjE2ZjQ2ZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VydmljZVdvcmtlclR5cGVzLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRm9ybURh
dGFSZWZlcmVuY2U7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBGZXRjaE9wdGlv
bnM7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2VydmljZVdvcmtlckZyYW1l
TG9hZGVyQ2xpZW50Oworc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CisKK2NsYXNzIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNXQ29udGV4
dE1hbmFnZXI6OkNvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJs
aWM6CisgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiwgdWludDY0X3QgcGFnZUdyb3VwSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUHJl
ZmVyZW5jZXNTdG9yZSYpOworICAgIH5XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbigpOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFs
OworCisgICAgdm9pZCByZW1vdmVGcmFtZUxvYWRlckNsaWVudChTZXJ2aWNlV29ya2VyRnJhbWVM
b2FkZXJDbGllbnQmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOworCisgICAgLy8gV2ViQ29yZTo6U1dDb250
ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbi4KKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBk
ZXN0aW5hdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYs
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlT3JpZ2luKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgc2V0U2VydmljZVdvcmtlckhhc1BlbmRpbmdFdmVu
dHMoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wpIGZpbmFsOworICAgIHZv
aWQgd29ya2VyVGVybWluYXRlZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmlu
YWw7CisgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgRmlu
ZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgbWF0Y2hBbGwo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50c01h
dGNoQWxsQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBjbGFpbShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAg
ICB2b2lkIHNraXBXYWl0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgc2V0U2NyaXB0UmVzb3VyY2UoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQmKSBmaW5hbDsK
KworICAgIC8vIElQQyBtZXNzYWdlcy4KKyAgICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0
aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXI+LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBl
eGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKKyAgICB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklEKTsK
KyAgICB2b2lkIHN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYm
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYsIFN0cmluZyYmIHJlZmVycmVyKTsKKyAgICB2b2lk
IGNhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwor
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNl
RGF0YSk7CisgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVXb3JrZXI6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2
b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7CisgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50
NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudERhdGE+JiYpOworICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xh
aW1SZXF1ZXN0SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50
NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdl
bnQpOworICAgIHZvaWQgdGVybWluYXRlUHJvY2VzcygpOworCisgICAgUmVmPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzczsKKyAgICB1aW50NjRfdCBtX3BhZ2VH
cm91cElEOworICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OworICAgIHVpbnQ2NF90IG1fcHJl
dmlvdXNTZXJ2aWNlV29ya2VySUQgeyAwIH07CisKKy8vICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpQYXltZW50QmxvY2tpbmdQb2xpY3kgbV9wYXltZW50QmxvY2tpbmdQb2xpY3kgeyBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6UGF5bWVudEJsb2NraW5nUG9saWN5OjpBbGxvd0FsbFBheW1l
bnQgfTsKKworICAgIEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGcmFtZUxv
YWRlckNsaWVudD4+IG1fbG9hZGVyczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50
QnlJZGVudGlmaWVyQ2FsbGJhY2s+IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwor
ICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hB
bGxDYWxsYmFjaz4gbV9tYXRjaEFsbFJlcXVlc3RzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9jbGFpbVJlcXVlc3RzOworICAgIEhhc2hN
YXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9za2lwV2FpdGluZ1JlcXVlc3Rz
OworICAgIHVpbnQ2NF90IG1fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllciB7IDAgfTsKKyAgICBT
dHJpbmcgbV91c2VyQWdlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E2YjdhOTk0YjI3YjQ2MTc3Njg4YjI3
MzZlMDk1MzllNTVlMjZjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsNDMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24geworICAgIEluc3RhbGxTZXJ2aWNlV29ya2VyKHN0cnVjdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgY29udGV4dERhdGEsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3Ry
dWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
IHJlcXVlc3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIpCisgICAgQ2FuY2VsRmV0Y2goV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCisgICAgUG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMg
bWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQor
ICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICBGaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgRGVsYXllZAor
ICAgIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgY2xpZW50SWRSZXF1
ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YT4gZGF0YSwgYm9vbCBoYXNTZWN1cml0eUVycm9yKQorICAgIE1hdGNoQWxsQ29tcGxldGVk
KHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4gY2xpZW50c0RhdGEpCisgICAgQ2xhaW1Db21wbGV0ZWQodWlu
dDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcikKKyAgICBEaWRGaW5pc2hTa2lwV2FpdGluZyh1
aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFNldFVzZXJBZ2VudChTdHJpbmcgdXNlckFnZW50KQor
ICAgIFVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNT
dG9yZSBzdG9yZSkKKyAgICBUZXJtaW5hdGVQcm9jZXNzKCkKK30KKworI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50L1dlYlNXT3JpZ2luVGFibGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bh
eW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZkZTRhYWZkOTRjMjJhOWFh
YjhlYmRjNmU1NTgwMGQxMmRkODI5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXT3JpZ2luVGFibGUuY3BwCkBAIC0wLDAgKzEsNTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQorI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworYm9vbCBXZWJTV09yaWdpblRhYmxlOjpjb250YWlucyhjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXJ2aWNlV29ya2Vy
T3JpZ2luVGFibGUuY29udGFpbnMoY29tcHV0ZVNoYXJlZFN0cmluZ0hhc2gob3JpZ2luLnRvU3Ry
aW5nKCkpKTsKK30KKwordm9pZCBXZWJTV09yaWdpblRhYmxlOjpzZXRTaGFyZWRNZW1vcnkoY29u
c3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBhdXRvIHNoYXJlZE1lbW9y
eSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CisgICAgaWYgKCFzaGFyZWRNZW1vcnkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fc2VydmljZVdvcmtlck9yaWdpblRhYmxlLnNldFNoYXJlZE1lbW9yeShzaGFyZWRNZW1vcnku
cmVsZWFzZU5vbk51bGwoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGF5bWVudC9XZWJTV09yaWdpblRhYmxlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGF5bWVudC9XZWJTV09yaWdpblRhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWYwYzkwMzAwYjJl
NTQ0OTNmYWRlMjExOTY2Njg5NTBkNWJiNzBhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXT3JpZ2luVGFibGUuaApAQCAtMCwwICsxLDU0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQorCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFz
aFRhYmxlUmVhZE9ubHkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNXT3JpZ2lu
VGFibGUgeworcHVibGljOgorICAgIFdlYlNXT3JpZ2luVGFibGUoKSA9IGRlZmF1bHQ7CisKKyAg
ICBib29sIGlzSW1wb3J0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW1wb3J0ZWQ7IH0KKyAgICB2
b2lkIHNldElzSW1wb3J0ZWQoKSB7IG1faXNJbXBvcnRlZCA9IHRydWU7IH0KKyAgICBib29sIGNv
bnRhaW5zKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0OworICAgIHZv
aWQgc2V0U2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7CisKK3ByaXZh
dGU6CisgICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgbV9zZXJ2aWNlV29ya2VyT3Jp
Z2luVGFibGU7CisgICAgYm9vbCBtX2lzSW1wb3J0ZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2Njg4OGNjZTg1
NzhjNjQxZDliYzMyY2QyNDVmNzZkMjcxNTQzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmNwcApAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgorCisjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJFcnJvcnMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9u
c2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojp+V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudCgpCit7CisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb25uZWN0aW9uID0gV1RGTW92ZShtX2Nvbm5lY3Rpb24p
XSB7IH0pOworfQorCitXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgLCBtX3NlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgICwgbV9mZXRjaElkZW50aWZp
ZXIoZmV0Y2hJZGVudGlmaWVyKQoreworfQorCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZp
ZXIsIHJlc3BvbnNlIH0sIDApOworfQorCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQoreworICAg
IGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRGF0YSB7IG1fc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCB7IGJ1ZmZlciB9LCBz
dGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgMCk7Cit9CisKK3ZvaWQgV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNo
KFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzZW5kIHRoaXMgZm9ybSBk
YXRhIHRvIHRoZSBvdGhlciBwcm9jZXNzIGFuZCBjb25zdW1lIGl0IHRoZXJlLgorICAgIC8vIEZv
ciBub3cgYW5kIGZvciB0aGUgY2FzZSBvZiBibG9icywgd2UgcmVhZCBpdCB0aGVyZSBhbmQgc2Vu
ZCB0aGUgZGF0YSB0aHJvdWdoIElQQy4KKyAgICBVUkwgYmxvYlVSTCA9IGZvcm1EYXRhLT5hc0Js
b2JVUkwoKTsKKyAgICBpZiAoYmxvYlVSTC5pc051bGwoKSkgeworICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0
YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCAwKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgYmxvYlVSTCA9IGJsb2JVUkwuaXNvbGF0ZWRDb3B5KCldICgp
IHsKKyAgICAgICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFu
YWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOworICAgICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewor
ICAgICAgICAgICAgZGlkRmFpbChpbnRlcm5hbEVycm9yKGJsb2JVUkwpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1fYmxvYkxvYWRlci5lbXBsYWNlKCp0aGlz
KTsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmNyZWF0
ZUJsb2JMb2FkZXIoKm1fYmxvYkxvYWRlciwgYmxvYlVSTCk7CisgICAgICAgIGlmICghbG9hZGVy
KSB7CisgICAgICAgICAgICBtX2Jsb2JMb2FkZXIgPSBzdGQ6Om51bGxvcHQ7CisgICAgICAgICAg
ICBkaWRGYWlsKGludGVybmFsRXJyb3IoYmxvYlVSTCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgbV9ibG9iTG9hZGVyLT5sb2FkZXIgPSBXVEZNb3ZlKGxvYWRl
cik7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6
ZGlkUmVjZWl2ZUJsb2JDaHVuayhjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAg
ICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRGF0YSB7IG1f
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCB7IHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0
X3Q+KHNpemUpIH0sIDApOworfQorCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQ6OmRpZEZpbmlzaEJsb2JMb2FkaW5nKCkKK3sKKyAgICBkaWRGaW5pc2goKTsKKworICAgIHN0
ZDo6ZXhjaGFuZ2UobV9ibG9iTG9hZGVyLCBzdGQ6Om51bGxvcHQpOworfQorCit2b2lkIFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZEZhaWxGZXRj
aCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBlcnJv
ciB9LCAwKTsKKworICAgIGNsZWFudXAoKTsKK30KKwordm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2goKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpEaWRGaW5pc2hGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
ZmV0Y2hJZGVudGlmaWVyIH0sIDApOworCisgICAgY2xlYW51cCgpOworfQorCit2b2lkIFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZE5vdEhhbmRsZSgpCit7CisgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgbV9zZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSwgMCk7CisKKyAgICBjbGVhbnVw
KCk7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y2FuY2VsKCkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCit2b2lkIFdlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQ6OmNsZWFudXAoKQoreworICAgIG1fY29ubmVjdGlvbiA9IG51bGxw
dHI7CisKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkgeworICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+Y2xlYW51cCgpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFu
YWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtl
cklkZW50aWZpZXIpKQorICAgICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnJlbW92ZUZl
dGNoKG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5
bWVudC9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTAwN2Qz
ZGNhY2QxY2VlMDI2ZmU5YjgyMzc4NmM5Y2JhYzczNjA5NAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaExv
YWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hMb2FkZXJDbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclR5cGVzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJGZXRjaDo6Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQ+IGNyZWF0ZShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoVGFza0lkZW50aWZp
ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29ubmVjdGlvbiksIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOwor
ICAgIH0KKworICAgIH5XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KCk7CisKK3ByaXZh
dGU6CisgICAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+JiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxX
ZWJDb3JlOjpGb3JtRGF0YT4mJikgZmluYWw7CisgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaCgpIGZpbmFsOwor
ICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CisgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsK
KworICAgIHZvaWQgY2xlYW51cCgpOworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2ZUJsb2JDaHVu
ayhjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSk7CisgICAgdm9pZCBkaWRGaW5pc2hCbG9i
TG9hZGluZygpOworCisgICAgc3RydWN0IEJsb2JMb2FkZXIgZmluYWwgOiBXZWJDb3JlOjpGZXRj
aExvYWRlckNsaWVudCB7CisgICAgICAgIGV4cGxpY2l0IEJsb2JMb2FkZXIoV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudCYgY2xpZW50KQorICAgICAgICAgICAgOiBjbGllbnQoY2xpZW50
KSB7IH0KKworICAgICAgICAvLyBGZXRjaExvYWRlckNsaWVudCBBUEkKKyAgICAgICAgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFs
IHsgfQorICAgICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVf
dCBzaXplKSBmaW5hbCB7IGNsaWVudC0+ZGlkUmVjZWl2ZUJsb2JDaHVuayhkYXRhLCBzaXplKTsg
fQorICAgICAgICB2b2lkIGRpZEZhaWwoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJy
b3IpIGZpbmFsIHsgY2xpZW50LT5kaWRGYWlsKGVycm9yKTsgfQorICAgICAgICB2b2lkIGRpZFN1
Y2NlZWQoKSBmaW5hbCB7IGNsaWVudC0+ZGlkRmluaXNoQmxvYkxvYWRpbmcoKTsgfQorCisgICAg
ICAgIFJlZjxXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50PiBjbGllbnQ7CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpGZXRjaExvYWRlcj4gbG9hZGVyOworICAgIH07CisK
KyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
OworICAgIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIG1fc2VydmljZVdvcmtlcklk
ZW50aWZpZXI7CisgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIG1fZmV0Y2hJZGVudGlmaWVy
OworICAgIHN0ZDo6b3B0aW9uYWw8QmxvYkxvYWRlcj4gbV9ibG9iTG9hZGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnQvV2ViU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTllNmNhODNjNjU2YzEwYjBkYmU4
ZGZkY2M1ZDljZGVhZjRiYzY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDEx
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKKyNpbmNsdWRlICJXZWJTV0NsaWVudENvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291cmNlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlv
bkNvZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyJiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcj4gcHJv
dmlkZXI7CisgICAgcmV0dXJuIHByb3ZpZGVyOworfQorCitXZWJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXI6OldlYlNlcnZpY2VXb3JrZXJQcm92aWRlcigpCit7Cit9CisKK1dlYkNvcmU6OlNXQ2xpZW50
Q29ubmVjdGlvbiYgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpzZXJ2aWNlV29ya2VyQ29ubmVj
dGlvbkZvclNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lv
bklELmlzVmFsaWQoKSk7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vz
c2lvbihzZXNzaW9uSUQpOworfQorCitXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24qIFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNl
c3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7CisgICAgYXV0byogbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBpZiAo
IW5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi0+ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbkZvclNlc3Npb24oc2Vzc2lvbklEKTsKK30KKworc3RhdGljIGlubGluZSBib29sIHNo
b3VsZEhhbmRsZUZldGNoKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKK3sK
KyAgICBpZiAob3B0aW9ucy5zZXJ2aWNlV29ya2Vyc01vZGUgPT0gU2VydmljZVdvcmtlcnNNb2Rl
OjpOb25lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaXNQb3RlbnRpYWxOYXZp
Z2F0aW9uT3JTdWJyZXNvdXJjZVJlcXVlc3Qob3B0aW9ucy5kZXN0aW5hdGlvbikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhIW9wdGlvbnMuc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXI7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpo
YW5kbGVGZXRjaChSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkNhbGxiYWNrJiYg
Y2FsbGJhY2spCit7CisgICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6Y2FuU2VydmljZVdvcmtlcnNI
YW5kbGVVUkxTY2hlbWUobG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5n
V2l0aG91dENvcHlpbmcoKSkgfHwgIXNob3VsZEhhbmRsZUZldGNoKGxvYWRlci5vcHRpb25zKCkp
KSB7CisgICAgICAgIGNhbGxiYWNrKFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0OjpV
bmhhbmRsZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgY29ubmVjdGlv
biA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGF1
dG8gZmV0Y2hJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8RmV0Y2hJZGVudGlmaWVy
VHlwZT4obG9hZGVyLmlkZW50aWZpZXIoKSk7CisgICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy5hZGQo
ZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNyZWF0ZSgqdGhpcywg
bG9hZGVyLCBmZXRjaElkZW50aWZpZXIsIGNvbm5lY3Rpb24sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIFdURk1vdmUoY2FsbGJhY2spKSk7Cit9CisKK2Jvb2wgV2Vi
U2VydmljZVdvcmtlclByb3ZpZGVyOjpjYW5jZWxGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyKQoreworICAgIGF1dG8gZmV0Y2ggPSBtX29uZ29pbmdGZXRjaFRhc2tzLnRha2Uo
ZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAoZmV0Y2gpCisgICAgICAgICgqZmV0Y2gpLT5jYW5j
ZWwoKTsKKyAgICByZXR1cm4gISFmZXRjaDsKK30KKwordm9pZCBXZWJTZXJ2aWNlV29ya2VyUHJv
dmlkZXI6OmZldGNoRmluaXNoZWQoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sK
KyAgICBtX29uZ29pbmdGZXRjaFRhc2tzLnRha2UoZmV0Y2hJZGVudGlmaWVyKTsKK30KKwordm9p
ZCBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OmRpZFJlY2VpdmVTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIGlmIChhdXRvIGZldGNoID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy5nZXQo
bWFrZU9iamVjdElkZW50aWZpZXI8RmV0Y2hJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpKSkKKyAgICAgICAgZmV0Y2gtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50L1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJmYjFi
Zjg1MDU1YTUwNTFlNmNhNDBhNTk1YzYzNjM3MmY0NzgwYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5o
CkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5oPgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYWNoZWRS
ZXNvdXJjZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlcnZpY2VXb3Jr
ZXJQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUHJvdmlkZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXImIHNpbmdsZXRv
bigpOworCisgICAgdm9pZCBoYW5kbGVGZXRjaChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlKiwgUEFMOjpTZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpD
YWxsYmFjayYmKTsKKyAgICBib29sIGNhbmNlbEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
cik7CisgICAgdm9pZCBmZXRjaEZpbmlzaGVkKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CisK
KyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZpY2VX
b3JrZXJDbGllbnRSZWdpc3RyYXRpb25NYXRjaChJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8V2ViU2VydmljZVdv
cmtlclByb3ZpZGVyPjsKKyAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIoKTsKKworICAgIFdl
YkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiogZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bkZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQpIGZpbmFsOworICAgIFdlYkNvcmU6OlNXQ2xpZW50
Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEKSBmaW5hbDsKKworICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBSZWY8
U2VydmljZVdvcmtlckNsaWVudEZldGNoPj4gbV9vbmdvaW5nRmV0Y2hUYXNrczsKK307IC8vIGNs
YXNzIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50L1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VlNzg4OTY0ODc5YjliOTc2ZGI0OWFlMDNlYTJkNWJh
MGQ0NjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1l
bnQvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisKKworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAg
ICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4o
KTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisK
K3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBy
ZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwor
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXlt
ZW50L1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJiYmUyMGFiZjZiZDM0NmM2YjFkYzJlNzE1ZTMxMGVkM2Q1ZjMyNTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgorI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgUEFM
IHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBw
cml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
KSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIAor
ICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5n
ZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNs
aWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgor
ICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7
IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVy
RGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRhMTEwMjMyYjFhMDlmZGU4NTZiNGQwOTU5
ZDIxNmU3ZTkzOTA5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2guY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgi
Ci0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCi0jaW5jbHVkZSAiV2ViU1dDbGllbnRDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiV2ViU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZWY8U2VydmljZVdvcmtl
ckNsaWVudEZldGNoPiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNyZWF0ZShXZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXImIHNlcnZpY2VXb3JrZXJQcm92aWRlciwgUmVmPFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyPiYmIGxvYWRlciwgRmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxXZWJT
V0NsaWVudENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0LCBDYWxsYmFjayYmIGNhbGxiYWNrKQotewotICAgIGF1dG8g
ZmV0Y2ggPSBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCB7IHNlcnZpY2VX
b3JrZXJQcm92aWRlciwgV1RGTW92ZShsb2FkZXIpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5l
Y3Rpb24pLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBXVEZNb3Zl
KGNhbGxiYWNrKSB9KTsKLSAgICBmZXRjaC0+c3RhcnQoKTsKLSAgICByZXR1cm4gZmV0Y2g7Ci19
Ci0KLVNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6flNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCgp
Ci17Ci19Ci0KLVNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6U2VydmljZVdvcmtlckNsaWVudEZl
dGNoKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYgc2VydmljZVdvcmtlclByb3ZpZGVyLCBSZWY8
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyLCBGZXRjaElkZW50aWZpZXIgaWRlbnRp
ZmllciwgUmVmPFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIENhbGxiYWNrJiYgY2FsbGJhY2sp
Ci0gICAgOiBtX3NlcnZpY2VXb3JrZXJQcm92aWRlcihzZXJ2aWNlV29ya2VyUHJvdmlkZXIpCi0g
ICAgLCBtX2xvYWRlcihXVEZNb3ZlKGxvYWRlcikpCi0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRp
ZmllcikKLSAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQotICAgICwgbV9j
YWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKLSAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KQotewotfQotCi12b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6c3RhcnQoKQotewot
ICAgIGF1dG8gcmVxdWVzdCA9IG1fbG9hZGVyLT5yZXF1ZXN0KCk7Ci0gICAgYXV0byYgb3B0aW9u
cyA9IG1fbG9hZGVyLT5vcHRpb25zKCk7Ci0KLSAgICBhdXRvIHJlZmVycmVyID0gcmVxdWVzdC5o
dHRwUmVmZXJyZXIoKTsKLQotICAgIG1fZGlkRmFpbCA9IGZhbHNlOwotICAgIG1fZGlkRmluaXNo
ID0gZmFsc2U7Ci0KLSAgICAvLyBXZSBhcmUgaW50ZXJjZXB0aW5nIGZldGNoIGNhbGxzIGFmdGVy
IGdvaW5nIHRocm91Z2ggdGhlIEhUVFAgbGF5ZXIsIHdoaWNoIG1heSBhZGQgc29tZSBzcGVjaWZp
YyBoZWFkZXJzLgotICAgIGNsZWFuSFRUUFJlcXVlc3RIZWFkZXJzRm9yQWNjZXNzQ29udHJvbChy
ZXF1ZXN0LCBvcHRpb25zLmh0dHBIZWFkZXJzVG9LZWVwKTsKLQotICAgIEFTU0VSVChvcHRpb25z
LnNlcnZpY2VXb3JrZXJzTW9kZSAhPSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUpOwotICAgIG1f
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBvcHRpb25zLnNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLnZhbHVlKCk7Ci0gICAgbV9jb25uZWN0aW9uLT5zdGFy
dEZldGNoKG1faWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgcmVxdWVzdCwgb3B0aW9ucywgcmVmZXJyZXIpOwotCi0gICAgbV9yZWRpcmVjdGlvblN0YXR1
cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lOwotfQotCi0vLyBodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jaHR0cC1mZXRjaCBzdGVwIDMuMwotc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVy
cm9yPiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OnZhbGlkYXRlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgLy8gRklYTUU6IG1ha2UgYSBiZXR0ZXIg
ZXJyb3IgcmVwb3J0aW5nLgotICAgIGlmIChyZXNwb25zZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNw
b25zZTo6VHlwZTo6RXJyb3IpCi0gICAgICAgIHJldHVybiBSZXNvdXJjZUVycm9yIHsgUmVzb3Vy
Y2VFcnJvcjo6VHlwZTo6R2VuZXJhbCB9OwotCi0gICAgYXV0byYgb3B0aW9ucyA9IG1fbG9hZGVy
LT5vcHRpb25zKCk7Ci0gICAgaWYgKG9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5vQ29ycyAmJiByZXNwb25zZS50YWludGluZygpID09IFJlc291cmNlUmVzcG9uc2U6OlRhaW50
aW5nOjpPcGFxdWUpCi0gICAgICAgIHJldHVybiBSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5X
ZWJLaXRJbnRlcm5hbCwgMCwgcmVzcG9uc2UudXJsKCksICJSZXNwb25zZSBzZXJ2ZWQgYnkgc2Vy
dmljZSB3b3JrZXIgaXMgb3BhcXVlIl9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250
cm9sIH07Ci0KLSAgICAvLyBOYXZpZ2F0ZSBtb2RlIGluZHVjZXMgbWFudWFsIHJlZGlyZWN0Lgot
ICAgIGlmIChvcHRpb25zLnJlZGlyZWN0ICE9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6Ok1hbnVh
bCAmJiBvcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSAmJiByZXNw
b25zZS50YWludGluZygpID09IFJlc291cmNlUmVzcG9uc2U6OlRhaW50aW5nOjpPcGFxdWVyZWRp
cmVjdCkKLSAgICAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdElu
dGVybmFsLCAwLCByZXNwb25zZS51cmwoKSwgIlJlc3BvbnNlIHNlcnZlZCBieSBzZXJ2aWNlIHdv
cmtlciBpcyBvcGFxdWUgcmVkaXJlY3QiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0Nv
bnRyb2wgfTsKLQotICAgIGlmICgob3B0aW9ucy5yZWRpcmVjdCAhPSBGZXRjaE9wdGlvbnM6OlJl
ZGlyZWN0OjpGb2xsb3cgfHwgb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2
aWdhdGUpICYmIHJlc3BvbnNlLmlzUmVkaXJlY3RlZCgpKQotICAgICAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHJlc3BvbnNlLnVybCgpLCAi
UmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2VyIGhhcyByZWRpcmVjdGlvbnMiX3MsIFJl
c291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfTsKLQotICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQotewotICAgIG1faXNDaGVja2luZ1Jl
c3BvbnNlID0gdHJ1ZTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSldKCkgbXV0YWJs
ZSB7Ci0gICAgICAgIGlmICghbV9sb2FkZXIpIHsKLSAgICAgICAgICAgIG1faXNDaGVja2luZ1Jl
c3BvbnNlID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKSB7Ci0gICAgICAg
ICAgICBtX2lzQ2hlY2tpbmdSZXNwb25zZSA9IGZhbHNlOwotICAgICAgICAgICAgbV9sb2FkZXIt
PmRpZEZhaWwoZXJyb3IudmFsdWUoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fbG9hZGVyKTsK
LSAgICAgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKLSAg
ICAgICAgICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2NlZWRlZCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVz
cG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcik7Ci0KLSAgICAgICAgaWYgKHJlc3BvbnNlLmlz
UmVkaXJlY3Rpb24oKSAmJiByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRU
UEhlYWRlck5hbWU6OkxvY2F0aW9uKSkgewotICAgICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9u
c2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGNvbnRpbnVlTG9hZGluZ0FmdGVyQ2hlY2tpbmdSZXNw
b25zZSgpOwotICAgICAgICAgICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3Rh
dHVzOjpSZWNlaXZpbmc7Ci0gICAgICAgICAgICBtX2xvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KG1f
bG9hZGVyLT5yZXF1ZXN0KCkucmVkaXJlY3RlZFJlcXVlc3QocmVzcG9uc2UsIG1fc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCksIHJlc3BvbnNlLCBbcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzXShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QuaXNOdWxsKCkgfHwgIW1fY2FsbGJhY2spCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0
ID09IG1fbG9hZGVyLT5yZXF1ZXN0KCkpOwotICAgICAgICAgICAgICAgIGlmIChtX3JlZGlyZWN0
aW9uU3RhdHVzID09IFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZlZCkgewotICAgICAgICAgICAg
ICAgICAgICBzdGFydCgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlv
blN0YXR1czo6Rm9sbG93aW5nOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBJbiBjYXNlIG9mIG1haW4gcmVzb3VyY2UgYW5kIG1p
bWUgdHlwZSBpcyB0aGUgZGVmYXVsdCBvbmUsIHdlIHNldCBpdCB0byB0ZXh0L2h0bWwgdG8gcGFz
cyBtb3JlIHNlcnZpY2Ugd29ya2VyIFdQVCB0ZXN0cy4KLSAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCByZWZpbmUgb3VyIE1JTUUgdHlwZSBzbmlmZmluZyBzdHJhdGVneSBmb3Igc3ludGhldGlj
IHJlc3BvbnNlcy4KLSAgICAgICAgaWYgKG1fbG9hZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS5yZXF1
ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbikgewotICAgICAgICAg
ICAgaWYgKHJlc3BvbnNlLm1pbWVUeXBlKCkgPT0gZGVmYXVsdE1JTUVUeXBlKCkpIHsKLSAgICAg
ICAgICAgICAgICByZXNwb25zZS5zZXRNaW1lVHlwZSgidGV4dC9odG1sIl9zKTsKLSAgICAgICAg
ICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKCJVVEYtOCJfcyk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBBcyBwZXIgaHR0cHM6Ly9mZXRjaC5zcGVj
LndoYXR3Zy5vcmcvI21haW4tZmV0Y2ggc3RlcCA5LCBjb3B5IHJlcXVlc3QncyB1cmwgbGlzdCBp
biByZXNwb25zZSdzIHVybCBsaXN0IGlmIGVtcHR5LgotICAgICAgICBpZiAocmVzcG9uc2UudXJs
KCkuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXNwb25zZS5zZXRVUkwobV9sb2FkZXItPnJlcXVl
c3QoKS51cmwoKSk7Ci0KLSAgICAgICAgbV9sb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNw
b25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7Ci0g
ICAgICAgICAgICBtX2lzQ2hlY2tpbmdSZXNwb25zZSA9IGZhbHNlOwotICAgICAgICAgICAgY29u
dGludWVMb2FkaW5nQWZ0ZXJDaGVja2luZ1Jlc3BvbnNlKCk7Ci0gICAgICAgICAgICBpZiAoYXV0
byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCi0gICAgICAgICAgICAgICAgY2FsbGJh
Y2soUmVzdWx0OjpTdWNjZWVkZWQpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLXsKLSAg
ICBhdXRvKiBkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YVJlZmVyZW5j
ZS5kYXRhKCkpOwotICAgIGlmICghbV9idWZmZXIpIHsKLSAgICAgICAgbV9idWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7Ci0gICAgICAgIG1f
ZW5jb2RlZERhdGFMZW5ndGggPSBlbmNvZGVkRGF0YUxlbmd0aDsKLSAgICB9IGVsc2UgewotICAg
ICAgICBtX2J1ZmZlci0+YXBwZW5kKGRhdGEsIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKLSAgICAg
ICAgbV9lbmNvZGVkRGF0YUxlbmd0aCArPSBlbmNvZGVkRGF0YUxlbmd0aDsKLSAgICB9Ci0KLSAg
ICBpZiAobV9pc0NoZWNraW5nUmVzcG9uc2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAg
ICAgICBpZiAoIW1fbG9hZGVyIHx8ICFtX2VuY29kZWREYXRhTGVuZ3RoKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIG1fbG9hZGVyLT5kaWRSZWNlaXZlQnVmZmVyKG1fYnVmZmVyLnJl
bGVhc2VOb25OdWxsKCksIG1fZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwot
ICAgICAgICBtX2VuY29kZWREYXRhTGVuZ3RoID0gMDsKLSAgICB9KTsKLX0KLQotdm9pZCBTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJikKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvcm0gZGF0YSByZWFk
aW5nLgotfQotCi12b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkRmluaXNoKCkKLXsK
LSAgICBtX2RpZEZpbmlzaCA9IHRydWU7Ci0KLSAgICBpZiAobV9pc0NoZWNraW5nUmVzcG9uc2Up
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBpZiAoIW1fbG9hZGVyKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIHN3aXRjaCAobV9yZWRpcmVjdGlvblN0YXR1cykgewot
ICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lOgotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2VpdmluZzoKLSAgICAgICAgICAg
IG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6UmVjZWl2ZWQ7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6OkZvbGxvd2lu
ZzoKLSAgICAgICAgICAgIHN0YXJ0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNh
c2UgUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2VpdmVkOgotICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25T
dGF0dXM6Ok5vbmU7Ci0gICAgICAgIH0KLQotICAgICAgICBBU1NFUlQoIW1fY2FsbGJhY2spOwot
Ci0gICAgICAgIG1fbG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKE5ldHdvcmtMb2FkTWV0cmljcyB7
IH0pOwotICAgICAgICBtX3NlcnZpY2VXb3JrZXJQcm92aWRlci5mZXRjaEZpbmlzaGVkKG1faWRl
bnRpZmllcik7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpk
aWRGYWlsKFJlc291cmNlRXJyb3ImJiBlcnJvcikKLXsKLSAgICBtX2RpZEZhaWwgPSB0cnVlOwot
ICAgIG1fZXJyb3IgPSBXVEZNb3ZlKGVycm9yKTsKLQotICAgIGlmIChtX2lzQ2hlY2tpbmdSZXNw
b25zZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGlmICghbV9sb2FkZXIpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byogZG9jdW1lbnQgPSBtX2xvYWRlci0+
ZnJhbWUoKSA/IG1fbG9hZGVyLT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cjsKLSAgICAg
ICAgaWYgKGRvY3VtZW50KSB7Ci0gICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1fZXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24oKSk7Ci0gICAgICAgICAgICBpZiAobV9sb2FkZXItPm9wdGlvbnMoKS5k
ZXN0aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpFbXB0eVN0cmluZykKLSAg
ICAgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkICIsIG1fZXJy
b3IuZmFpbGluZ1VSTCgpLnN0cmluZygpLCAiLiIpKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1f
bG9hZGVyLT5kaWRGYWlsKG1fZXJyb3IpOwotCi0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0g
V1RGTW92ZShtX2NhbGxiYWNrKSkKLSAgICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2Vl
ZGVkKTsKLQotICAgICAgICBtX3NlcnZpY2VXb3JrZXJQcm92aWRlci5mZXRjaEZpbmlzaGVkKG1f
aWRlbnRpZmllcik7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNo
OjpkaWROb3RIYW5kbGUoKQotewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nUmVzcG9uc2UpOwot
Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7Ci0gICAgICAgIGlmICghbV9sb2FkZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQotICAgICAgICAg
ICAgY2FsbGJhY2soUmVzdWx0OjpVbmhhbmRsZWQpOwotCi0gICAgICAgIG1fc2VydmljZVdvcmtl
clByb3ZpZGVyLmZldGNoRmluaXNoZWQobV9pZGVudGlmaWVyKTsKLSAgICB9KTsKLX0KLQotdm9p
ZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNhbmNlbCgpCi17Ci0gICAgaWYgKGF1dG8gY2Fs
bGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQotICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OkNh
bmNlbGxlZCk7Ci0KLSAgICBpZiAoIW1fZGlkRmluaXNoICYmICFtX2RpZEZhaWwpIHsKLSAgICAg
ICAgbV9jb25uZWN0aW9uLT5jYW5jZWxGZXRjaChtX2lkZW50aWZpZXIsIG1fc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwotCi0gICAgfQotICAgIG1fbG9hZGVyID0gbnVsbHB0
cjsKLSAgICBtX2J1ZmZlciA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckNsaWVu
dEZldGNoOjpjb250aW51ZUxvYWRpbmdBZnRlckNoZWNraW5nUmVzcG9uc2UoKQotewotICAgIEFT
U0VSVCghbV9pc0NoZWNraW5nUmVzcG9uc2UpOwotICAgIGlmICghbV9sb2FkZXIpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmIChtX2VuY29kZWREYXRhTGVuZ3RoKSB7Ci0gICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAg
ICAgICAgICAgaWYgKCFtX2xvYWRlciB8fCAhbV9lbmNvZGVkRGF0YUxlbmd0aCkKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBtX2xvYWRlci0+ZGlkUmVjZWl2ZUJ1ZmZlciht
X2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBtX2VuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9h
ZEJ5dGVzKTsKLSAgICAgICAgICAgIG1fZW5jb2RlZERhdGFMZW5ndGggPSAwOwotICAgICAgICB9
KTsKLSAgICB9Ci0KLSAgICBpZiAobV9kaWRGYWlsKSB7Ci0gICAgICAgIGRpZEZhaWwoV1RGTW92
ZShtX2Vycm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9kaWRGaW5p
c2gpCi0gICAgICAgIGRpZEZpbmlzaCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlYzY0MWU5N2I4YTdjZDc5ZmVhNjBjNDIxYjcx
N2VhNTY1ZTY3ZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLSNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCi0jaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9GZXRjaElkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTV0Ns
aWVudENvbm5lY3Rpb247Ci1jbGFzcyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI7Ci0KLWNsYXNz
IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaD4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Ci1wdWJs
aWM6Ci0gICAgZW51bSBjbGFzcyBSZXN1bHQgeyBTdWNjZWVkZWQsIENhbmNlbGxlZCwgVW5oYW5k
bGVkIH07Ci0gICAgdXNpbmcgQ2FsbGJhY2sgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVzdWx0KT47Ci0KLSAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaD4gY3Jl
YXRlKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYsIFJlZjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cj4mJiwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBSZWY8V2ViU1dDbGllbnRDb25uZWN0aW9u
PiYmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIENhbGxi
YWNrJiYpOwotICAgIH5TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2goKTsKLQotICAgIHZvaWQgc3Rh
cnQoKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7Ci0gICAgdm9pZCBjYW5jZWwoKTsKLQotICAgIGJvb2wgaXNPbmdv
aW5nKCkgY29uc3QgeyByZXR1cm4gISFtX2NhbGxiYWNrOyB9Ci0KLXByaXZhdGU6Ci0gICAgU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoKFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYsIFJlZjxXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlcj4mJiwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBSZWY8V2Vi
U1dDbGllbnRDb25uZWN0aW9uPiYmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIENhbGxiYWNrJiYpOwotCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yPiB2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVG
b3JtRGF0YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBkaWRGaW5p
c2goKTsKLSAgICB2b2lkIGRpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKLSAgICB2
b2lkIGRpZE5vdEhhbmRsZSgpOwotCi0gICAgdm9pZCBjb250aW51ZUxvYWRpbmdBZnRlckNoZWNr
aW5nUmVzcG9uc2UoKTsKLQotICAgIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYgbV9zZXJ2aWNl
V29ya2VyUHJvdmlkZXI7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiBtX2xv
YWRlcjsKLSAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFJl
ZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICBDYWxsYmFjayBtX2Nh
bGxiYWNrOwotICAgIGVudW0gY2xhc3MgUmVkaXJlY3Rpb25TdGF0dXMgeyBOb25lLCBSZWNlaXZp
bmcsIEZvbGxvd2luZywgUmVjZWl2ZWQgfTsKLSAgICBSZWRpcmVjdGlvblN0YXR1cyBtX3JlZGly
ZWN0aW9uU3RhdHVzIHsgUmVkaXJlY3Rpb25TdGF0dXM6Ok5vbmUgfTsKLSAgICBib29sIG1fc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCB7IHRydWUgfTsKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKLSAgICBpbnQ2NF90IG1fZW5jb2Rl
ZERhdGFMZW5ndGggeyAwIH07Ci0gICAgYm9vbCBtX2lzQ2hlY2tpbmdSZXNwb25zZSB7IGZhbHNl
IH07Ci0gICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2RpZEZhaWwg
eyBmYWxzZSB9OwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgbV9lcnJvcjsKLQotICAgIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIG1fc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaC5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAxNTNkMzZm
Yzc5ZjMzMWMyNDVjZDE4OTJiNTIyMjRiNjdkYTFmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwz
NCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
Ci0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLW1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaCB7Ci0gICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UpCi0gICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIGlu
dDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0gICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UgZGF0YSkKLSAgICBEaWRGaW5pc2goKQotICAgIERpZEZhaWwoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKLSAgICBEaWROb3RIYW5kbGUoKQotfQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk4NjE1OTFjMDY1ODlmYjYxMWVkMjIzNmE3ZmU0MDAzN2U3OWM1
ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIgotCi0jaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIkZv
cm1EYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2guaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5o
IgotI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIKLSNpbmNsdWRlICJXZWJTV1NlcnZlckNv
bm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRE
YXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotV2ViU1dDbGllbnRD
b25uZWN0aW9uOjpXZWJTV0NsaWVudENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQot
ICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX3N3T3JpZ2luVGFibGUobWFr
ZVVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPigpKQotewotICAgIEFTU0VSVChzZXNzaW9uSUQu
aXNWYWxpZCgpKTsKLSAgICBib29sIHJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKHNlc3Np
b25JRCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RXN0YWJsaXNo
U1dTZXJ2ZXJDb25uZWN0aW9uOjpSZXBseShtX2lkZW50aWZpZXIpKTsKLQotICAgIEFTU0VSVF9V
TlVTRUQocmVzdWx0LCByZXN1bHQpOwotfQotCi1XZWJTV0NsaWVudENvbm5lY3Rpb246On5XZWJT
V0NsaWVudENvbm5lY3Rpb24oKQotewotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkK
LXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlNjaGVkdWxlSm9i
SW5TZXJ2ZXIoam9iRGF0YSkpOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Zmlu
aXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQm
IHJlc3VsdCkKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkZp
bmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjphZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JblNlcnZlcihpZGVudGlmaWVyKSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9u
OjpyZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNl
cnZlcihpZGVudGlmaWVyKSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgY29uc3QgU2Vy
dmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlSWRlbnRpZmllcikKLXsKLSAgICAv
LyBGSVhNRTogVGVtcG9yYXJpbHkgcGlwZSB0aGUgU1cgcG9zdE1lc3NhZ2UgbWVzc2FnZXMgdmlh
IHRoZSBVSVByb2Nlc3Mgc2luY2UgdGhpcyBpcyB3aGVyZSB0aGUgTWVzc2FnZVBvcnQgcmVnaXN0
cnkgbGl2ZXMKLSAgICAvLyBhbmQgdGhpcyBhdm9pZHMgcmFjZXMuCi0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdlKSwgc291
cmNlSWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSksIDApOwotfQotCi12
b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllcikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IHRvcE9yaWdpbi5kYXRhKCks
IGRhdGEsIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgfSk7
Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIpCi17Ci0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpVbnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudCB7IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIoKSwgY29udGV4dElkZW50aWZpZXIgfSB9KTsKLX0KLQotdm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIGtleSkKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
V1NlcnZlckNvbm5lY3Rpb246OkRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGtleSkpOwot
fQotCi1ib29sIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6bWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdp
c3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAot
ewotICAgIGlmICghbV9zd09yaWdpblRhYmxlLT5pc0ltcG9ydGVkKCkpCi0gICAgICAgIHJldHVy
biB0cnVlOwotCi0gICAgcmV0dXJuIG1fc3dPcmlnaW5UYWJsZS0+Y29udGFpbnMob3JpZ2luKTsK
LX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnNldFNXT3JpZ2luVGFibGVTaGFyZWRN
ZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSkKLXsKLSAgICBtX3N3T3Jp
Z2luVGFibGUtPnNldFNoYXJlZE1lbW9yeShoYW5kbGUpOwotfQotCi12b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6c2V0U1dPcmlnaW5UYWJsZUlzSW1wb3J0ZWQoKQotewotICAgIG1fc3dPcmln
aW5UYWJsZS0+c2V0SXNJbXBvcnRlZCgpOwotICAgIHdoaWxlICghbV90YXNrc1BlbmRpbmdPcmln
aW5JbXBvcnQuaXNFbXB0eSgpKQotICAgICAgICBtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9ydC50
YWtlRmlyc3QoKSgpOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlkTWF0Y2hS
ZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmIHJlc3VsdCkKLXsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotCi0gICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBtX29uZ29pbmdN
YXRjaFJlZ2lzdHJhdGlvblRhc2tzLnRha2UobWF0Y2hpbmdSZXF1ZXN0KSkKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKLX0KLQotdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBW
ZWN0b3I8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYgcmVnaXN0cmF0aW9ucykKLXsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKGF1dG8gY29tcGxldGlvbkhh
bmRsZXIgPSBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3MudGFrZShtYXRjaGluZ1JlcXVl
c3QpKQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlZ2lzdHJhdGlvbnMpKTsK
LX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3Vy
aXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJh
dGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LQotICAgIGlmICghbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKHRvcE9y
aWdpbikpIHsKLSAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KFt0aGlzLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spLCB0b3BPcmlnaW4gPSBXVEZNb3ZlKHRvcE9yaWdpbiksIGNsaWVu
dFVSTF0oKSBtdXRhYmxlIHsKLSAgICAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2
aW91c0NhbGxiYWNrSWRlbnRpZmllcjsKLSAgICAgICAgbV9vbmdvaW5nTWF0Y2hSZWdpc3RyYXRp
b25UYXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246Ok1hdGNoUmVnaXN0cmF0aW9uKGNhbGxi
YWNrSUQsIHRvcE9yaWdpbiwgY2xpZW50VVJMKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpydW5PckRlbGF5VGFza0ZvckltcG9ydChXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiB0YXNrKQotewotICAgIGlmIChtX3N3T3JpZ2luVGFibGUtPmlzSW1wb3J0ZWQoKSkK
LSAgICAgICAgdGFzaygpOwotICAgIGVsc2UKLSAgICAgICAgbV90YXNrc1BlbmRpbmdPcmlnaW5J
bXBvcnQuYXBwZW5kKFdURk1vdmUodGFzaykpOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmln
aW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYm
IGNhbGxiYWNrKQotewotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSArK21fcHJldmlvdXNDYWxs
YmFja0lkZW50aWZpZXI7Ci0gICAgbV9vbmdvaW5nUmVnaXN0cmF0aW9uUmVhZHlUYXNrcy5hZGQo
Y2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6V2hlblJlZ2lzdHJhdGlvblJlYWR5KGNhbGxiYWNrSUQsIHRvcE9y
aWdpbi5kYXRhKCksIGNsaWVudFVSTCkpOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhKQotewotICAgIEFTU0VS
VChyZWdpc3RyYXRpb25EYXRhLmFjdGl2ZVdvcmtlcik7Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sg
PSBtX29uZ29pbmdSZWdpc3RyYXRpb25SZWFkeVRhc2tzLnRha2UoY2FsbGJhY2tJRCkpCi0gICAg
ICAgIGNhbGxiYWNrKFdURk1vdmUocmVnaXN0cmF0aW9uRGF0YSkpOwotfQotCi12b2lkIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhTZWN1cml0eU9yaWdpbkRhdGEmJiB0
b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2sm
JiBjYWxsYmFjaykKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKCFt
YXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgewotICAg
ICAgICBjYWxsYmFjayh7IH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcnVuT3JE
ZWxheVRhc2tGb3JJbXBvcnQoW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRv
cE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMXSgpIG11dGFibGUgewotICAg
ICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVy
OwotICAgICAgICBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3MuYWRkKGNhbGxiYWNrSUQs
IFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zKGNhbGxiYWNrSUQsIHRvcE9yaWdpbiwgY2xpZW50
VVJMKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzdGFydEZl
dGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiByZWZlcnJl
cikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN0YXJ0RmV0
Y2ggeyBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVy
LCByZXF1ZXN0LCBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgcmVxdWVzdC5odHRw
Qm9keSgpIH0sIHJlZmVycmVyIH0pOwotfQotCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
Y2FuY2VsRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIpCi17Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCBmZXRjaElkZW50aWZpZXIgfSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9u
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVz
dGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNz
YWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmln
aW4pCi17Ci0gICAgU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckNsaWVudChkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBX
VEZNb3ZlKHNvdXJjZSksIHNvdXJjZU9yaWdpbik7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCkKLXsKLSAgICBhdXRvIHJlZ2lzdHJhdGlv
blRhc2tzID0gV1RGTW92ZShtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzKTsKLSAgICBm
b3IgKGF1dG8mIGNhbGxiYWNrIDogcmVnaXN0cmF0aW9uVGFza3MudmFsdWVzKCkpCi0gICAgICAg
IGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7Ci0KLSAgICBhdXRvIGdldFJlZ2lzdHJhdGlvblRhc2tz
ID0gV1RGTW92ZShtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3MpOwotICAgIGZvciAoYXV0
byYgY2FsbGJhY2sgOiBnZXRSZWdpc3RyYXRpb25UYXNrcy52YWx1ZXMoKSkKLSAgICAgICAgY2Fs
bGJhY2soeyB9KTsKLQotICAgIGNsZWFyUGVuZGluZ0pvYnMoKTsKLX0KLQotdm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKLXsKLSAgICBzZW5kU3luYyhNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyKGlkZW50aWZpZXIpLCBNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpSZXBseSgpKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYmZhZWU0NzZlMWY0
YmNjY2RiMjY2MGZlNWQ4ZTY2YmQ2NzRhM2Q3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNs
dWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNo
LmgiCi0jaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU1dDbGllbnRDb25uZWN0aW9u
Lmg+Ci0jaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IEV4Y2VwdGlvbkRhdGE7Ci1jbGFzcyBS
ZXNvdXJjZUxvYWRlcjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlNXT3Jp
Z2luVGFibGU7Ci1jbGFzcyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI7Ci0KLWNsYXNzIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rp
b24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJTV0NsaWVudENvbm5lY3Rpb24+IGNyZWF0
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTV0NsaWVudENvbm5lY3Rpb24geyBjb25uZWN0aW9u
LCBzZXNzaW9uSUQgfSk7IH0KLSAgICB+V2ViU1dDbGllbnRDb25uZWN0aW9uKCk7Ci0KLSAgICBX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0KLSAgICB2b2lk
IGFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIpIGZpbmFsOwotCi0gICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJv
Y2VzcygpOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7Ci0KLSAgICBib29sIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0
ZXJlZEZvck9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBm
aW5hbDsKLSAgICB2b2lkIHN0YXJ0RmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlcik7Ci0gICAgdm9pZCBjYW5jZWxGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKLQot
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1l
bnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7Ci0KLSAgICB2b2lkIGNvbm5lY3Rpb25Ub1Nl
cnZlckxvc3QoKTsKLQotICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0KLXByaXZhdGU6Ci0gICAgV2ViU1dDbGllbnRD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklEKTsKLQotICAgIHZvaWQg
c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYp
IGZpbmFsOwotICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsKLSAgICB2b2lkIHBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29u
c3QgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKSBmaW5h
bDsKLSAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXI+JikgZmluYWw7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOwotCi0gICAgdm9p
ZCBtYXRjaFJlZ2lzdHJhdGlvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYm
KSBmaW5hbDsKLSAgICB2b2lkIGRpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVx
dWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGE+JiYpOwotICAgIHZvaWQgZGlkR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBt
YXRjaFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGE+JiYpOwotICAgIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xp
ZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lk
IHJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IGNhbGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpOwotCi0gICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmKSBmaW5hbDsKLQotICAgIHZv
aWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwotCi0gICAgdm9pZCBzY2hlZHVsZVN0b3JhZ2VK
b2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKLQotICAgIHZvaWQgcnVu
T3JEZWxheVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7Ci0KLSAg
ICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1
cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9Ci0gICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsgfQotCi0g
ICAgdm9pZCBzZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6
SGFuZGxlJik7Ci0gICAgdm9pZCBzZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpOwotCi0gICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Ci0gICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0KLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247Ci0gICAgVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5U
YWJsZTsKLQotICAgIHVpbnQ2NF90IG1fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07
Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2s+IG1fb25nb2luZ01h
dGNoUmVnaXN0cmF0aW9uVGFza3M7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgR2V0UmVnaXN0cmF0
aW9uc0NhbGxiYWNrPiBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3M7Ci0gICAgSGFzaE1h
cDx1aW50NjRfdCwgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2s+IG1fb25nb2luZ1JlZ2lz
dHJhdGlvblJlYWR5VGFza3M7Ci0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX3Rh
c2tzUGVuZGluZ09yaWdpbkltcG9ydDsKLQotfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlZTRiMGE4MjJjN2Y2NDdkOTM4ZmFiNTM2Yjg4NzYyYzNjMjNmZmJi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5p
bgorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotbWVzc2FnZXMg
LT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKLSAgICAjIFdoZW4gcG9zc2libGUsIHRoZXNlIG1l
c3NhZ2VzIGNhbiBiZSBpbXBsZW1lbnRlZCBkaXJlY3RseSBieSBXZWJDb3JlOjpTV1NlcnZlcjo6
Q29ubmVjdGlvbgotICAgIEpvYlJlamVjdGVkSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhIGV4Y2VwdGlvbikKLSAgICBSZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgcmVnaXN0cmF0aW9uLCBl
bnVtIFdlYkNvcmU6OlNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWQpCi0gICAgVW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBib29sIHVucmVnaXN0
cmF0aW9uUmVzdWx0KQotICAgIFN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQotICAgIFVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGVu
dW0gV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHN0YXRlLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhPiBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikKLSAgICBVcGRhdGVXb3JrZXJTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZW51bSBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyU3Rh
dGUgc3RhdGUpCi0gICAgRmlyZVVwZGF0ZUZvdW5kRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBTZXRSZWdpc3RyYXRpb25M
YXN0VXBkYXRlVGltZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXYWxsVGltZSBsYXN0VXBkYXRlVGltZSkKLSAgICBTZXRSZWdpc3RyYXRp
b25VcGRhdGVWaWFDYWNoZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNo
ZSB1cGRhdGVWaWFDYWNoZSk7Ci0gICAgTm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShI
YXNoU2V0PFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcj4gY29udGV4dElkZW50aWZpZXJzLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgbmV3Q29udHJvbGxlcikKLQotICAgIFNl
dFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKLSAgICBTZXRTV09yaWdpblRhYmxlU2hhcmVkTWVt
b3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlKQotICAgIFBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkZXN0aW5h
dGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIHNvdXJjZSwg
U3RyaW5nIHNvdXJjZU9yaWdpbikKLQotICAgIERpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90
IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGE+IGRhdGEpCi0gICAgRGlkR2V0UmVnaXN0cmF0aW9ucyh1aW50
NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpCi0gICAgUmVnaXN0cmF0aW9uUmVhZHko
dWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpCi19Ci0KLSNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZGI0MzY1MGIzNDNiMjVkMTQzMzJkMDBj
YWI3NWExMzY4NDQwZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzY1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVk
ZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKLSNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3ZpZGVyLmgiCi0jaW5jbHVkZSAiV2Vi
RG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKLSNpbmNs
dWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9FbXB0eUNsaWVu
dHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRp
b24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
U2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xp
ZW50UXVlcnlPcHRpb25zLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0
YUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2VudC5oPgotI2luY2x1ZGUg
PHBhbC9TZXNzaW9uSUQuaD4KLSNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+Ci0KLSNpZiBVU0Uo
UVVJQ0tfTE9PSykKLSNpbmNsdWRlIDxXZWJDb3JlL1ByZXZpZXdMb2FkZXJDbGllbnQuaD4KLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotc3RhdGljIGNvbnN0IFNlY29uZHMgYXN5bmNXb3JrZXJUZXJt
aW5hdGlvblRpbWVvdXQgeyAxMF9zIH07Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyBzeW5jV29ya2Vy
VGVybWluYXRpb25UaW1lb3V0IHsgMTAwX21zIH07IC8vIE9ubHkgdXNlZCBieSBsYXlvdXQgdGVz
dHMuCi0KLWNsYXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1Ymxp
YyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJh
bWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29u
bmVjdGlvbikKLSAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCi0gICAgICAgICwgbV9w
YWdlSUQocGFnZUlEKQotICAgICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQotICAgICAgICAsIG1f
dXNlckFnZW50KHVzZXJBZ2VudCkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBzZXRVc2VyQWdl
bnQoU3RyaW5nJiYgdXNlckFnZW50KSB7IG1fdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQp
OyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmPERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExv
YWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRh
JiBzdWJzdGl0dXRlRGF0YSkgZmluYWwKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJEb2N1bWVu
dExvYWRlcjo6Y3JlYXRlKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKLSAgICB9Ci0KLSAgICB2
b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgZmluYWwgeyBtX2Nvbm5lY3Rpb24ucmVtb3ZlRnJh
bWVMb2FkZXJDbGllbnQoKnRoaXMpOyB9Ci0KLSAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZykgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQotCi0gICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9zZXNzaW9uSUQ7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KLSAgICBTdHJp
bmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGZpbmFsIHsgcmV0dXJuIG1fdXNlckFnZW50OyB9Ci0K
LSAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOwotICAgIFBB
TDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwotICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9Owot
ICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKLSAgICBTdHJpbmcgbV91c2VyQWdlbnQ7Ci19
OwotCi1XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCB1aW50NjRfdCBwYWdl
R3JvdXBJRCwgdWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9y
ZSkKLSAgICA6IG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9u
KSkKLSAgICAsIG1fcGFnZUdyb3VwSUQocGFnZUdyb3VwSUQpCi0gICAgLCBtX3BhZ2VJRChwYWdl
SUQpCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJB
Z2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoeyB9KSkKLSNlbHNlCi0gICAgLCBtX3VzZXJBZ2VudChz
dGFuZGFyZFVzZXJBZ2VudCgpKQotI2VuZGlmCi17Ci0gICAgdXBkYXRlUHJlZmVyZW5jZXNTdG9y
ZShzdG9yZSk7Ci19Ci0KLVdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp+V2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYgc3RvcmUpCi17Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zZXRTZXJ2aWNlV29ya2VyRW5hYmxlZCh0cnVlKTsKLSAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENhY2hlQVBJRW5hYmxlZChzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNhY2hlQVBJRW5hYmxlZEtleSgpKSk7
Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQ
SUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmZXRj
aEFQSUVuYWJsZWRLZXkoKSkpOwotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0VXNlclRpbWluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5Ojp1c2VyVGltaW5nRW5hYmxlZEtleSgpKSk7Ci0gICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXNvdXJjZVRpbWlu
Z0VuYWJsZWRLZXkoKSkpOwotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0RmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6ZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkS2V5KCkpKTsKLSAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFJlc3RyaWN0ZWRI
VFRQUmVzcG9uc2VBY2Nlc3Moc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpyZXN0cmljdGVkSFRUUFJlc3BvbnNlQWNjZXNzS2V5KCkpKTsKLSAgICBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNlcnZlclRpbWluZ0VuYWJsZWQoc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzZXJ2ZXJUaW1pbmdFbmFi
bGVkS2V5KCkpKTsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNldElzU2VjdXJlQ29udGV4dEF0dHJpYnV0ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojppc1NlY3VyZUNvbnRleHRBdHRyaWJ1dGVFbmFibGVkS2V5
KCkpKTsKLQotICAgIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID0gc3RhdGljX2Nhc3Q8U2VjdXJp
dHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpKSk7Ci19Ci0K
LXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2Vy
KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU2Vzc2lvbklEIHNlc3Npb25J
RCkKLXsKLSAgICBMT0coU2VydmljZVdvcmtlciwgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjppbnN0YWxsU2VydmljZVdvcmtlciBmb3Igd29ya2VyICVzIiwgZGF0YS5zZXJ2aWNlV29y
a2VySWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7Ci0gICAgICAgIGNyZWF0ZUVtcHR5RWRp
dG9yQ2xpZW50KCksCi0gICAgICAgIFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSwKLSAgICAg
ICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZSgpLAotICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpCi0gICAgfTsKLQotICAgIGZp
bGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VDb25maWd1cmF0aW9uKTsKLQotI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQotICAgIHBhZ2VDb25maWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBX
ZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0ZShtX3BhZ2VHcm91cElEKTsKLSNlbmRpZgot
Ci0gICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBX
ZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCi0gICAgLy8gSWYgaXQgd2VyZW4n
dCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJE
b2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4KLSAgICBhdXRvIGZyYW1l
TG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJD
bGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29y
a2VySUQsIG1fdXNlckFnZW50KTsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKLSAgICBtX2xvYWRlcnMuYWRk
KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKLQotICAgIGF1dG8gc2VydmljZVdvcmtlclRo
cmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbiksIGRhdGEsIHNlc3Npb25JRCwgU3RyaW5nIHsgbV91c2VyQWdlbnQgfSwg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSwgbV9zdG9yYWdl
QmxvY2tpbmdQb2xpY3kpOwotICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnJlZ2lz
dGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3RhbGwoV1RGTW92ZShzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkpKTsKLQotICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ29udGV4dCBwcm9jZXNzIFBJ
RDogJWkgY3JlYXRlZCB3b3JrZXIgdGhyZWFkXG4iLCBnZXRDdXJyZW50UHJvY2Vzc0lEKCkpOwot
fQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzZXRVc2VyQWdlbnQoU3Ry
aW5nJiYgdXNlckFnZW50KQotewotICAgIG1fdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQp
OwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpyZW1vdmVGcmFtZUxv
YWRlckNsaWVudChTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQmIGNsaWVudCkKLXsKLSAg
ICBhdXRvIHJlc3VsdCA9IG1fbG9hZGVycy5yZW1vdmUoJmNsaWVudCk7Ci0gICAgQVNTRVJUX1VO
VVNFRChyZXN1bHQsIHJlc3VsdCk7Ci19Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OnNlcnZpY2VXb3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNl
cHRpb25NZXNzYWdlKQotewotICAgIGlmIChleGNlcHRpb25NZXNzYWdlLmlzRW1wdHkoKSkKLSAg
ICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTY3JpcHRDb250ZXh0U3RhcnRlZChqb2JEYXRhSWRl
bnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCAwKTsKLSAgICBlbHNlCi0gICAgICAg
IG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjo6U2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoam9iRGF0YUlk
ZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBleGNlcHRpb25NZXNzYWdlKSwgMCk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkRmV0Y2goY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBGZXRjaE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFVSTCYgc2Vy
dmljZVdvcmtlclVSTCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKLXsKLSAgICAvLyBGb3IgZXhv
dGljIHNlcnZpY2Ugd29ya2VycywgZG8gbm90IGVuZm9yY2UgY2hlY2tzLgotICAgIGlmICghc2Vy
dmljZVdvcmtlclVSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmln
YXRlKSB7Ci0gICAgICAgIGlmICghcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHJlcXVlc3Qu
dXJsKCksIHNlcnZpY2VXb3JrZXJVUkwpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihTZXJ2aWNlV29ya2VyLCAiU2hvdWxkIG5vdCBpbnRlcmNlcHQgYSBuYXZpZ2F0aW9uIGxvYWQg
dGhhdCBpcyBub3Qgc2FtZS1vcmlnaW4gYXMgdGhlIHNlcnZpY2Ugd29ya2VyIFVSTCIpOwotICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHJlcXVlc3QudXJsKCkuaG9zdCgp
ID09IHNlcnZpY2VXb3JrZXJVUkwuaG9zdCgpLCAiSG9zdHMgZG8gbm90IG1hdGNoIik7Ci0gICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UocmVxdWVzdC51cmwoKS5wcm90b2Nv
bCgpID09IHNlcnZpY2VXb3JrZXJVUkwucHJvdG9jb2woKSwgIlByb3RvY29scyBkbyBub3QgbWF0
Y2giKTsKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShyZXF1ZXN0LnVy
bCgpLnBvcnQoKSA9PSBzZXJ2aWNlV29ya2VyVVJMLnBvcnQoKSwgIlBvcnRzIGRvIG5vdCBtYXRj
aCIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLQotICAgIFN0cmluZyBvcmlnaW4gPSByZXF1ZXN0Lmh0dHBPcmlnaW4o
KTsKLSAgICBVUkwgdXJsIHsgVVJMKCksIG9yaWdpbi5pc0VtcHR5KCkgPyByZWZlcnJlciA6IG9y
aWdpbiB9OwotICAgIGlmICh1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFwcm90b2Nv
bEhvc3RBbmRQb3J0QXJlRXF1YWwodXJsLCBzZXJ2aWNlV29ya2VyVVJMKSkgewotICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiU2hvdWxkIG5vdCBpbnRlcmNlcHQgYSBu
b24gbmF2aWdhdGlvbiBsb2FkIHRoYXQgaXMgbm90IG9yaWdpbmF0aW5nIGZyb20gYSBzYW1lLW9y
aWdpbiBjb250ZXh0IGFzIHRoZSBzZXJ2aWNlIHdvcmtlciBVUkwiKTsKLSAgICAgICAgQVNTRVJU
KHVybC5ob3N0KCkgPT0gc2VydmljZVdvcmtlclVSTC5ob3N0KCkpOwotICAgICAgICBBU1NFUlQo
dXJsLnByb3RvY29sKCkgPT0gc2VydmljZVdvcmtlclVSTC5wcm90b2NvbCgpKTsKLSAgICAgICAg
QVNTRVJUKHVybC5wb3J0KCkgPT0gc2VydmljZVdvcmtlclVSTC5wb3J0KCkpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
cikKLXsKLSAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0
TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSkKLSAgICAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5jYW5jZWxG
ZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQot
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZl
dGNoSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYg
b3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZl
cnJlcikKLXsKLSAgICBhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRN
YW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOwotICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFByb3h5KSB7Ci0gICAg
ICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBm
ZXRjaElkZW50aWZpZXIgfSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
IWlzVmFsaWRGZXRjaChyZXF1ZXN0LCBvcHRpb25zLCBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkt
PnNjcmlwdFVSTCgpLCByZWZlcnJlcikpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3Jr
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNo
IHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9LCAwKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6Y3JlYXRlKG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MuY29w
eVJlZigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGZldGNoSWRlbnRpZmllcik7Ci0gICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcj4gY2xpZW50SWQ7Ci0gICAgaWYgKG9wdGlvbnMuY2xpZW50SWRlbnRpZmll
cikKLSAgICAgICAgY2xpZW50SWQgPSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBvcHRpb25zLmNsaWVudElkZW50aWZpZXIudmFsdWUo
KSB9OwotCi0gICAgcmVxdWVzdC5zZXRIVFRQQm9keShmb3JtRGF0YS50YWtlRGF0YSgpKTsKLSAg
ICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnN0YXJ0RmV0Y2goc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVu
dElkKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9u
cykpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50
aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9y
Q2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCi17Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xl
dG9uKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25JZGVudGlmaWVyLCBX
VEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKLX0KLQotdm9pZCBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyKQotewotICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigp
LmZpcmVJbnN0YWxsRXZlbnQoaWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCi17Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuZmlyZUFj
dGl2YXRlRXZlbnQoaWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlm
aWVyKQotewotICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVdvcmtl
cihpZGVudGlmaWVyLCBhc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgbnVsbHB0cik7Ci19
Ci0KLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3Jr
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKLXsKLSAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVX
b3JrZXIoaWRlbnRpZmllciwgc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCwgV1RGTW92ZShy
ZXBseSkpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1l
c3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlT3JpZ2luKQotewotICAgIC8vIEZJWE1FOiBUZW1wb3JhcmlseSBwaXBlIHRo
ZSBTVyBwb3N0TWVzc2FnZSBtZXNzYWdlcyB2aWEgdGhlIFVJUHJvY2VzcyBzaW5jZSB0aGlzIGlz
IHdoZXJlIHRoZSBNZXNzYWdlUG9ydCByZWdpc3RyeSBsaXZlcwotICAgIC8vIGFuZCB0aGlzIGF2
b2lkcyByYWNlcy4KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUG9vbDo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRp
b25JZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VP
cmlnaW4pLCAwKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlk
RmluaXNoSW5zdGFsbChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
cj4gam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpCi17Ci0gICAgbV9jb25uZWN0aW9uVG9O
ZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpEaWRGaW5pc2hJbnN0YWxsKGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgd2FzU3VjY2Vzc2Z1bCksIDApOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hBY3RpdmF0aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQotewotICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6RGlk
RmluaXNoQWN0aXZhdGlvbihzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIDApOwotfQotCi12b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGlu
Z0V2ZW50cyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Ym9vbCBoYXNQZW5kaW5nRXZlbnRzKQotewotICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2V0U2Vy
dmljZVdvcmtlckhhc1BlbmRpbmdFdmVudHMoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGhhc1Bl
bmRpbmdFdmVudHMpLCAwKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6c2tpcFdhaXRpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQotewotICAgIGF1dG8gY2Fs
bGJhY2tJRCA9ICsrbV9wcmV2aW91c1JlcXVlc3RJZGVudGlmaWVyOwotICAgIG1fc2tpcFdhaXRp
bmdSZXF1ZXN0cy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgIG1fY29u
bmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6U2tpcFdhaXRpbmcoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNhbGxi
YWNrSUQpLCAwKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0
U2NyaXB0UmVzb3VyY2UoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6Oklt
cG9ydGVkU2NyaXB0JiBzY3JpcHQpCi17Ci0gICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTZXRTY3Jp
cHRSZXNvdXJjZSB7IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB1cmwsIHNjcmlwdC5zY3JpcHQs
IHNjcmlwdC5yZXNwb25zZVVSTCwgc2NyaXB0Lm1pbWVUeXBlIH0sIDApOwotfQotCi12b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQotewotICAgIG1fY29ubmVjdGlv
blRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6V29ya2VyVGVybWluYXRlZChzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIDApOwot
fQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVu
dGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBG
aW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJiBjYWxsYmFjaykKLXsKLSAgICBhdXRvIHJl
cXVlc3RJZGVudGlmaWVyID0gKyttX3ByZXZpb3VzUmVxdWVzdElkZW50aWZpZXI7Ci0gICAgbV9m
aW5kQ2xpZW50QnlJZGVudGlmaWVyUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7Ci0gICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpGaW5kQ2xpZW50QnlJZGVu
dGlmaWVyIHsgcmVxdWVzdElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjbGll
bnRJZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmIGNsaWVudERh
dGEsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikKLXsKLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1f
ZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzLnRha2UocmVxdWVzdElkZW50aWZpZXIpKSB7
Ci0gICAgICAgIGlmIChoYXNTZWN1cml0eUVycm9yKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhF
eGNlcHRpb24geyBTZWN1cml0eUVycm9yIH0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIGNhbGxiYWNrKFdURk1vdmUoY2xpZW50RGF0YSkpOwotICAgIH0KLX0KLQot
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0Y2hBbGwoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZp
Y2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmIG9wdGlvbnMsIFNlcnZpY2VXb3JrZXJDbGllbnRz
TWF0Y2hBbGxDYWxsYmFjayYmIGNhbGxiYWNrKQotewotICAgIGF1dG8gcmVxdWVzdElkZW50aWZp
ZXIgPSArK21fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllcjsKLSAgICBtX21hdGNoQWxsUmVxdWVz
dHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgbV9jb25u
ZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpNYXRjaEFsbCB7IHJlcXVlc3RJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgb3B0aW9ucyB9LCAwKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiBjbGllbnRzRGF0YSkKLXsKLSAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fbWF0Y2hBbGxSZXF1ZXN0cy50YWtlKHJlcXVlc3RJZGVudGlm
aWVyKSkKLSAgICAgICAgY2FsbGJhY2soV1RGTW92ZShjbGllbnRzRGF0YSkpOwotfQotCi12b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjbGFpbShXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQotewotICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSArK21f
cHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllcjsKLSAgICBtX2NsYWltUmVxdWVzdHMuYWRkKHJlcXVl
c3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgbV9jb25uZWN0aW9uVG9OZXR3
b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpDbGFpbSB7IHJlcXVlc3RJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciB9LCAw
KTsKLX0KLQotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW1Db21wbGV0
ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcikKLXsKLSAgICBpZiAoYXV0byBjYWxs
YmFjayA9IG1fY2xhaW1SZXF1ZXN0cy50YWtlKGNsYWltUmVxdWVzdElkZW50aWZpZXIpKQotICAg
ICAgICBjYWxsYmFjaygpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKQotewotICAgIGlmIChh
dXRvIGNhbGxiYWNrID0gbV9za2lwV2FpdGluZ1JlcXVlc3RzLnRha2UoY2FsbGJhY2tJRCkpCi0g
ICAgICAgIGNhbGxiYWNrKCk7Ci19Ci0KLU5PX1JFVFVSTiB2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjp0ZXJtaW5hdGVQcm9jZXNzKCkKLXsKLSAgICBSRUxFQVNFX0xPRyhTZXJ2
aWNlV29ya2VyLCAiU2VydmljZSB3b3JrZXIgcHJvY2VzcyBpcyBleGl0aW5nIGJlY2F1c2UgaXQg
aXMgbm8gbG9uZ2VyIG5lZWRlZCIpOwotICAgIF9leGl0KEVYSVRfU1VDQ0VTUyk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlODczZmZmZDJhOGM3MDFhZTg2OTA1Y2U5ZTU3MDRmMWE3YjljOWI0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBGb3Jt
RGF0YVJlZmVyZW5jZTsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IEZldGNoT3B0
aW9uczsKLWNsYXNzIFJlc291cmNlUmVxdWVzdDsKLXN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBTZXJ2aWNlV29ya2VyRnJh
bWVMb2FkZXJDbGllbnQ7Ci1zdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKLQotY2xhc3MgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U1dDb250
ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKLXB1
YmxpYzoKLSAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCB1aW50NjRfdCBwYWdlR3JvdXBJRCwgdWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJik7Ci0gICAgfldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKCk7
Ci0KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmlu
YWw7Ci0KLSAgICB2b2lkIHJlbW92ZUZyYW1lTG9hZGVyQ2xpZW50KFNlcnZpY2VXb3JrZXJGcmFt
ZUxvYWRlckNsaWVudCYpOwotCi1wcml2YXRlOgotICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXNT
dG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7Ci0KLSAgICAvLyBXZWJDb3JlOjpTV0Nv
bnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uLgotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIm
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMm
JiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pIGZpbmFsOwotICAgIHZvaWQgZGlkRmluaXNoSW5zdGFs
bChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4s
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpIGZp
bmFsOwotICAgIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2
ZW50cyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCkgZmluYWw7Ci0gICAg
dm9pZCB3b3JrZXJUZXJtaW5hdGVkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBm
aW5hbDsKLSAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBG
aW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBtYXRjaEFs
bChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRz
TWF0Y2hBbGxDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwot
ICAgIHZvaWQgc2tpcFdhaXRpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZ1
bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9pZCBzZXRTY3JpcHRSZXNvdXJjZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCYpIGZpbmFs
OwotCi0gICAgLy8gSVBDIG1lc3NhZ2VzLgotICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRX
aXRoTWVzc2FnZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRl
bnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwotICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIo
Y29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQp
OwotICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIpOwotICAgIHZv
aWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7
Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3Vy
Y2VEYXRhKTsKLSAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIpOwotICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKLSAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4m
JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKTsKLSAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVp
bnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YT4mJik7Ci0gICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBj
bGFpbVJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJB
Z2VudCk7Ci0gICAgdm9pZCB0ZXJtaW5hdGVQcm9jZXNzKCk7Ci0KLSAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzOwotICAgIHVpbnQ2NF90IG1fcGFn
ZUdyb3VwSUQ7Ci0gICAgdWludDY0X3QgbV9wYWdlSUQgeyAwIH07Ci0gICAgdWludDY0X3QgbV9w
cmV2aW91c1NlcnZpY2VXb3JrZXJJRCB7IDAgfTsKLQotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgeyBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbFN0b3Jh
Z2UgfTsKLQotICAgIEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGcmFtZUxv
YWRlckNsaWVudD4+IG1fbG9hZGVyczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50
QnlJZGVudGlmaWVyQ2FsbGJhY2s+IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwot
ICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hB
bGxDYWxsYmFjaz4gbV9tYXRjaEFsbFJlcXVlc3RzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9jbGFpbVJlcXVlc3RzOwotICAgIEhhc2hN
YXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9za2lwV2FpdGluZ1JlcXVlc3Rz
OwotICAgIHVpbnQ2NF90IG1fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllciB7IDAgfTsKLSAgICBT
dHJpbmcgbV91c2VyQWdlbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlMGQ1
OTNhNjhhNzkxZjE0NTg2ZjZmOTUwYzJkNjc5ZWJlNWUwMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVs
bApAQCAtMSw0MyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoK
LSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLW1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uIHsKLSAgICBJbnN0YWxsU2VydmljZVdvcmtlcihzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCi0gICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSByZXF1ZXN0Qm9keSwgU3RyaW5nIHJlZmVycmVyKQotICAgIENhbmNlbEZldGNoKFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQotICAgIFBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBv
cnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEgc291cmNlRGF0
YSkKLSAgICBGaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCi0gICAgRmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBTeW5jVGVybWluYXRlV29ya2Vy
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpIERlbGF5
ZWQKLSAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElk
UmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudERhdGE+IGRhdGEsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikKLSAgICBNYXRjaEFsbENvbXBs
ZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE+IGNsaWVudHNEYXRhKQotICAgIENsYWltQ29tcGxldGVk
KHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZpZXIpCi0gICAgRGlkRmluaXNoU2tpcFdhaXRp
bmcodWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBTZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJBZ2Vu
dCkKLSAgICBVcGRhdGVQcmVmZXJlbmNlc1N0b3JlKHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVu
Y2VzU3RvcmUgc3RvcmUpCi0gICAgVGVybWluYXRlUHJvY2VzcygpCi19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxl
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY4MTE4OWE0YTVjNDE2MDY3MjA3
ZGMyOTBiYjkzOWNkMWNlNjdlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRh
YmxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0jaW5jbHVkZSAi
V2ViU1dPcmlnaW5UYWJsZS5oIgotCi0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1ib29s
IFdlYlNXT3JpZ2luVGFibGU6OmNvbnRhaW5zKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3Jp
Z2luKSBjb25zdAotewotICAgIHJldHVybiBtX3NlcnZpY2VXb3JrZXJPcmlnaW5UYWJsZS5jb250
YWlucyhjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4udG9TdHJpbmcoKSkpOwotfQotCi12
b2lkIFdlYlNXT3JpZ2luVGFibGU6OnNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYgaGFuZGxlKQotewotICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5
OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBp
ZiAoIXNoYXJlZE1lbW9yeSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zZXJ2aWNlV29ya2Vy
T3JpZ2luVGFibGUuc2V0U2hhcmVkTWVtb3J5KHNoYXJlZE1lbW9yeS5yZWxlYXNlTm9uTnVsbCgp
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV09yaWdpblRhYmxlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V09yaWdpblRhYmxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyMGRlZDA0MGNl
NTYxODMzOTlmNmM5M2I4MmViMzZkZjczMDQ5NmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dPcmlnaW5UYWJsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVk
ZSAiU2hhcmVkTWVtb3J5LmgiCi0jaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9u
bHkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsK
LX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlNXT3JpZ2luVGFibGUgewotcHVi
bGljOgotICAgIFdlYlNXT3JpZ2luVGFibGUoKSA9IGRlZmF1bHQ7Ci0KLSAgICBib29sIGlzSW1w
b3J0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW1wb3J0ZWQ7IH0KLSAgICB2b2lkIHNldElzSW1w
b3J0ZWQoKSB7IG1faXNJbXBvcnRlZCA9IHRydWU7IH0KLSAgICBib29sIGNvbnRhaW5zKGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0OwotICAgIHZvaWQgc2V0U2hhcmVk
TWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7Ci0KLXByaXZhdGU6Ci0gICAgU2hh
cmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgbV9zZXJ2aWNlV29ya2VyT3JpZ2luVGFibGU7Ci0g
ICAgYm9vbCBtX2lzSW1wb3J0ZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDM3
MDU0OTM5MTRmYTE3OWE0ZWY1NGU1MGZmNjkzNTRkNjgwOWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgotCi0jaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQotCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIkZvcm1E
YXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFcnJvcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KLSNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojp+V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudCgpCi17Ci0gICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFtjb25uZWN0aW9uID0gV1RGTW92ZShtX2Nvbm5lY3Rpb24pXSB7IH0p
OwotfQotCi1XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb24o
V1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAsIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIo
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCi0gICAgLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQotICAgICwgbV9mZXRjaElkZW50aWZpZXIoZmV0
Y2hJZGVudGlmaWVyKQotewotfQotCi12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuOwotICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJl
c3BvbnNlIH0sIDApOwotfQotCi12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQotewotICAgIGlmICgh
bV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRGF0YSB7IG1fc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCB7IGJ1ZmZlciB9LCBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgMCk7Ci19Ci0KLXZvaWQgV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxG
b3JtRGF0YT4mJiBmb3JtRGF0YSkKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBzZW5kIHRoaXMgZm9ybSBkYXRhIHRv
IHRoZSBvdGhlciBwcm9jZXNzIGFuZCBjb25zdW1lIGl0IHRoZXJlLgotICAgIC8vIEZvciBub3cg
YW5kIGZvciB0aGUgY2FzZSBvZiBibG9icywgd2UgcmVhZCBpdCB0aGVyZSBhbmQgc2VuZCB0aGUg
ZGF0YSB0aHJvdWdoIElQQy4KLSAgICBVUkwgYmxvYlVSTCA9IGZvcm1EYXRhLT5hc0Jsb2JVUkwo
KTsKLSAgICBpZiAoYmxvYlVSTC5pc051bGwoKSkgewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSB7IG1f
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCAwKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgYmxvYlVSTCA9IGJsb2JVUkwuaXNvbGF0ZWRDb3B5KCldICgpIHsKLSAg
ICAgICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50
aWZpZXIpOwotICAgICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewotICAgICAg
ICAgICAgZGlkRmFpbChpbnRlcm5hbEVycm9yKGJsb2JVUkwpKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIG1fYmxvYkxvYWRlci5lbXBsYWNlKCp0aGlzKTsKLSAg
ICAgICAgYXV0byBsb2FkZXIgPSBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmNyZWF0ZUJsb2JM
b2FkZXIoKm1fYmxvYkxvYWRlciwgYmxvYlVSTCk7Ci0gICAgICAgIGlmICghbG9hZGVyKSB7Ci0g
ICAgICAgICAgICBtX2Jsb2JMb2FkZXIgPSBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgICAgICBkaWRG
YWlsKGludGVybmFsRXJyb3IoYmxvYlVSTCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgbV9ibG9iTG9hZGVyLT5sb2FkZXIgPSBXVEZNb3ZlKGxvYWRlcik7Ci0g
ICAgfSk7Ci19Ci0KLXZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVj
ZWl2ZUJsb2JDaHVuayhjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAo
IW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRGF0YSB7IG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNp
emUpIH0sIDApOwotfQotCi12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZEZpbmlzaEJsb2JMb2FkaW5nKCkKLXsKLSAgICBkaWRGaW5pc2goKTsKLQotICAgIHN0ZDo6ZXhj
aGFuZ2UobV9ibG9iTG9hZGVyLCBzdGQ6Om51bGxvcHQpOwotfQotCi12b2lkIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
Ci17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZEZhaWxGZXRjaCB7IG1f
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBlcnJvciB9LCAw
KTsKLQotICAgIGNsZWFudXAoKTsKLX0KLQotdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGaW5pc2goKQotewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpEaWRGaW5pc2hGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJ
ZGVudGlmaWVyIH0sIDApOwotCi0gICAgY2xlYW51cCgpOwotfQotCi12b2lkIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZE5vdEhhbmRsZSgpCi17Ci0gICAgaWYgKCFtX2Nvbm5l
Y3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSwgMCk7Ci0KLSAgICBjbGVhbnVwKCk7Ci19
Ci0KLXZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y2FuY2VsKCkKLXsKLSAg
ICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwotfQotCi12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmNsZWFudXAoKQotewotICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7Ci0K
LSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkgewotICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+Y2xlYW51cCgpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZiAoYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50
aWZpZXIpKQotICAgICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnJlbW92ZUZldGNoKG1f
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM2ZTA1YWM5N2IxMDI0MTc1N2FjZDdjNGVhMjU1NWExM2Q4ZjU5NTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCisrKyAvZGV2
L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GZXRjaExv
YWRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hMb2FkZXJDbGllbnQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclR5cGVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJGZXRjaDo6Q2xpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQ+IGNyZWF0ZShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoVGFza0lkZW50aWZp
ZXIpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29ubmVjdGlvbiksIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOwot
ICAgIH0KLQotICAgIH5XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KCk7Ci0KLXByaXZh
dGU6Ci0gICAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKLQotICAg
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+JiYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxX
ZWJDb3JlOjpGb3JtRGF0YT4mJikgZmluYWw7Ci0gICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKLSAgICB2b2lkIGRpZEZpbmlzaCgpIGZpbmFsOwot
ICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7Ci0gICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsK
LQotICAgIHZvaWQgY2xlYW51cCgpOwotICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZUJsb2JDaHVu
ayhjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSk7Ci0gICAgdm9pZCBkaWRGaW5pc2hCbG9i
TG9hZGluZygpOwotCi0gICAgc3RydWN0IEJsb2JMb2FkZXIgZmluYWwgOiBXZWJDb3JlOjpGZXRj
aExvYWRlckNsaWVudCB7Ci0gICAgICAgIGV4cGxpY2l0IEJsb2JMb2FkZXIoV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudCYgY2xpZW50KSA6IGNsaWVudChjbGllbnQpIHsgfQotCi0gICAg
ICAgIC8vIEZldGNoTG9hZGVyQ2xpZW50IEFQSQotICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9Ci0gICAgICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpIGZpbmFs
IHsgY2xpZW50LT5kaWRSZWNlaXZlQmxvYkNodW5rKGRhdGEsIHNpemUpOyB9Ci0gICAgICAgIHZv
aWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikgZmluYWwgeyBj
bGllbnQtPmRpZEZhaWwoZXJyb3IpOyB9Ci0gICAgICAgIHZvaWQgZGlkU3VjY2VlZCgpIGZpbmFs
IHsgY2xpZW50LT5kaWRGaW5pc2hCbG9iTG9hZGluZygpOyB9Ci0KLSAgICAgICAgUmVmPFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ+IGNsaWVudDsKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkZldGNoTG9hZGVyPiBsb2FkZXI7Ci0gICAgfTsKLQotICAgIFJlZlB0cjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7Ci0gICAgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcjsKLSAg
ICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9mZXRjaElkZW50aWZpZXI7Ci0gICAgc3RkOjpv
cHRpb25hbDxCbG9iTG9hZGVyPiBtX2Jsb2JMb2FkZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJv
dmlkZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTllNmNhODNjNjU2YzEw
YjBkYmU4ZGZkY2M1ZDljZGVhZjRiYzY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2Vy
UHJvdmlkZXIuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNs
dWRlICJXZWJTV0NsaWVudENvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5l
Y3Rpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291cmNlLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9FeGNlcHRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkNvZGUuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VySm9iLmg+Ci0jaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotV2ViU2VydmljZVdvcmtlclBy
b3ZpZGVyJiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpCi17Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcj4gcHJvdmlkZXI7Ci0g
ICAgcmV0dXJuIHByb3ZpZGVyOwotfQotCi1XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OldlYlNl
cnZpY2VXb3JrZXJQcm92aWRlcigpCi17Ci19Ci0KLVdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlv
biYgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNl
c3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzZXNz
aW9uSUQpOwotfQotCi1XZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24qIFdlYlNlcnZpY2VXb3Jr
ZXJQcm92aWRlcjo6ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oU2Vz
c2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0g
ICAgYXV0byogbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLSAgICBpZiAoIW5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIG5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi0+ZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZv
clNlc3Npb24oc2Vzc2lvbklEKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIHNob3VsZEhhbmRs
ZUZldGNoKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKLXsKLSAgICBpZiAo
b3B0aW9ucy5zZXJ2aWNlV29ya2Vyc01vZGUgPT0gU2VydmljZVdvcmtlcnNNb2RlOjpOb25lKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoaXNQb3RlbnRpYWxOYXZpZ2F0aW9uT3JT
dWJyZXNvdXJjZVJlcXVlc3Qob3B0aW9ucy5kZXN0aW5hdGlvbikpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIHJldHVybiAhIW9wdGlvbnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXI7Ci19Ci0KLXZvaWQgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpoYW5kbGVGZXRj
aChSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkNhbGxiYWNrJiYgY2FsbGJhY2sp
Ci17Ci0gICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6Y2FuU2VydmljZVdvcmtlcnNIYW5kbGVVUkxT
Y2hlbWUobG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENv
cHlpbmcoKSkgfHwgIXNob3VsZEhhbmRsZUZldGNoKGxvYWRlci5vcHRpb25zKCkpKSB7Ci0gICAg
ICAgIGNhbGxiYWNrKFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0OjpVbmhhbmRsZWQp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzZXNzaW9uSUQpOwotICAgIGF1dG8gZmV0Y2hJ
ZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8RmV0Y2hJZGVudGlmaWVyVHlwZT4obG9h
ZGVyLmlkZW50aWZpZXIoKSk7Ci0gICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy5hZGQoZmV0Y2hJZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNyZWF0ZSgqdGhpcywgbG9hZGVyLCBm
ZXRjaElkZW50aWZpZXIsIGNvbm5lY3Rpb24sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIFdURk1vdmUoY2FsbGJhY2spKSk7Ci19Ci0KLWJvb2wgV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyOjpjYW5jZWxGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
KQotewotICAgIGF1dG8gZmV0Y2ggPSBtX29uZ29pbmdGZXRjaFRhc2tzLnRha2UoZmV0Y2hJZGVu
dGlmaWVyKTsKLSAgICBpZiAoZmV0Y2gpCi0gICAgICAgICgqZmV0Y2gpLT5jYW5jZWwoKTsKLSAg
ICByZXR1cm4gISFmZXRjaDsKLX0KLQotdm9pZCBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OmZl
dGNoRmluaXNoZWQoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLXsKLSAgICBtX29u
Z29pbmdGZXRjaFRhc2tzLnRha2UoZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBXZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXI6OmRpZFJlY2VpdmVTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIGlmIChhdXRvIGZldGNoID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy5nZXQobWFrZU9iamVj
dElkZW50aWZpZXI8RmV0Y2hJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
KSkKLSAgICAgICAgZmV0Y2gtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI3MWMzMzJkOWI3YWQzYWE3MzEwZDFhNDBjNGYzMzBhYTA0NGJhNDEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCi0KLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJQcm92aWRlci5oPgotI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDYWNoZWRSZXNv
dXJjZTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlNlcnZpY2VXb3JrZXJQ
cm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUHJvdmlkZXIgewot
cHVibGljOgotICAgIHN0YXRpYyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXImIHNpbmdsZXRvbigp
OwotCi0gICAgdm9pZCBoYW5kbGVGZXRjaChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlKiwgUEFMOjpTZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpDYWxs
YmFjayYmKTsKLSAgICBib29sIGNhbmNlbEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7
Ci0gICAgdm9pZCBmZXRjaEZpbmlzaGVkKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0KLSAg
ICB2b2lkIGRpZFJlY2VpdmVTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZpY2VXb3Jr
ZXJDbGllbnRSZWdpc3RyYXRpb25NYXRjaChJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8V2ViU2VydmljZVdvcmtl
clByb3ZpZGVyPjsKLSAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIoKTsKLQotICAgIFdlYkNv
cmU6OlNXQ2xpZW50Q29ubmVjdGlvbiogZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZv
clNlc3Npb24oUEFMOjpTZXNzaW9uSUQpIGZpbmFsOwotICAgIFdlYkNvcmU6OlNXQ2xpZW50Q29u
bmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
KSBmaW5hbDsKLQotICAgIEhhc2hNYXA8V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBSZWY8U2Vy
dmljZVdvcmtlckNsaWVudEZldGNoPj4gbV9vbmdvaW5nRmV0Y2hUYXNrczsKLX07IC8vIGNsYXNz
IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcgotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCA2OWMyMzM1Zjc5MWQyODhmOTVlYzAwYWI4ZjMxNzdlYTI1YjUwNDBh
Li4yNWYyYzg1ZjE2OGE3ZGQyYTRhZjMxMWViYWE5MTEwNjkwMDljNTI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2ICs0Myw5IEBACiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNr
ZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJv
dmlkZXIuaCIKQEAgLTY5LDYgKzcyLDkgQEAKICNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0U3RyZWFtLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYnNpdGVE
YXRhVHlwZS5oIgpAQCAtNjc0LDcgKzY4MCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiY+KCpj
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24pLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogCiAgICAgTE9HX0VSUk9SKCJVbmhhbmRsZWQgd2ViIHByb2Nlc3Mg
bWVzc2FnZSAnJXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmco
KS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSk7CiB9CkBA
IC0xMjE3LDYgKzEyMjMsNTAgQEAgV2ViTG9hZGVyU3RyYXRlZ3kmIFdlYlByb2Nlc3M6OndlYkxv
YWRlclN0cmF0ZWd5KCkKIHsKICAgICByZXR1cm4gbV93ZWJMb2FkZXJTdHJhdGVneTsKIH0KKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiogY29u
bmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik7
CisgICAgQVNTRVJUKG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlv
bik7CisKKyAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKK30K
KworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZVdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQp
Cit7CisgICAgaWYgKCFtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKSB7CisgICAgICAg
IElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXI7CisKKyAgICAgICAg
aWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oaW5pdGlhbFNlc3Npb25JRCks
IE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpIHsKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKKyAgICAgICAgICAgIC8vIEdUSysgYW5kIFdQRSBwb3J0cyBk
b24ndCBleGl0IG9uIHNlbmQgc3luYyBtZXNzYWdlIGZhaWx1cmUuCisgICAgICAgICAgICAvLyBJ
biB0aGlzIHBhcnRpY3VsYXIgY2FzZSwgdGhlIHBheW1lbnQgcHJvY2VzcyBjYW4gYmUgdGVybWlu
YXRlZCBieSB0aGUgVUkgcHJvY2VzcyB3aGlsZSB0aGUKKyAgICAgICAgICAgIC8vIGNvbm5lY3Rp
b24gaXMgYmVpbmcgZG9uZSwgc28gd2UgYWx3YXlzIHdhbnQgdG8gZXhpdCBpbnN0ZWFkIG9mIGNy
YXNoaW5nLgorICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMzNDguCisgICAgICAgICAgICBleGl0KDApOworI2Vsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CisjZW5kaWYKKyAgICAgICAgfQorCisjaWYgVVNFKFVOSVhfRE9NQUlOX1NP
Q0tFVFMpCisgICAgICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllciA9IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURlc2NyaXB0
b3IoKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0
KCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5k
bGUoKSk7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAg
ICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklk
ZW50aWZpZXIpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBtX3dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0
ZShjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB9CisgICAgcmV0dXJuICptX3dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxh
ZykKIHsKQEAgLTE2NzgsOSArMTcyOCw5IEBAIExpYldlYlJUQ05ldHdvcmsmIFdlYlByb2Nlc3M6
OmxpYldlYlJUQ05ldHdvcmsoKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIHZvaWQgV2Vi
UHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNz
KHVpbnQ2NF90IHBhZ2VHcm91cElELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlLCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKQogewotICAg
IC8vIFdlIGFyZSBpbiB0aGUgU2VydmljZSBXb3JrZXIgY29udGV4dCBwcm9jZXNzIGFuZCB0aGUg
Y2FsbCBiZWxvdyBlc3RhYmxpc2hlcyBvdXIgY29ubmVjdGlvbiB0byB0aGUgTmV0d29yayBQcm9j
ZXNzCi0gICAgLy8gYnkgY2FsbGluZyBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uIFNX
Q29udGV4dE1hbmFnZXIgbmVlZHMgdG8gdXNlIHRoZSBzYW1lIHVuZGVybHlpbmcgSVBDOjpDb25u
ZWN0aW9uIGFzIHRoZQotICAgIC8vIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBmb3Igc3luY2hy
b25pemF0aW9uIHB1cnBvc2VzLgorICAgIC8vIFdlIGFyZSBpbiB0aGUgU2VydmljZSBXb3JrZXIg
Y29udGV4dCBwcm9jZXNzIGFuZCB0aGUgY2FsbCBiZWxvdyBlc3RhYmxpc2hlcyBvdXIgY29ubmVj
dGlvbiB0byB0aGUgUGF5bWVudCBQcm9jZXNzCisgICAgLy8gYnkgY2FsbGluZyB3ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi4gU1dDb250ZXh0TWFuYWdlciBuZWVkcyB0byB1c2UgdGhlIHNh
bWUgdW5kZXJseWluZyBJUEM6OkNvbm5lY3Rpb24gYXMgdGhlCisgICAgLy8gV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24gZm9yIHN5bmNocm9uaXphdGlvbiBwdXJwb3Nlcy4KICAgICBhdXRv
JiBpcGNDb25uZWN0aW9uID0gZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpOwogICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNldENvbm5lY3Rpb24o
c3RkOjptYWtlX3VuaXF1ZTxXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbj4oaXBjQ29ubmVj
dGlvbiwgcGFnZUdyb3VwSUQsIHBhZ2VJRCwgc3RvcmUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IDNkMjFjYzg4M2E1MjY0MWE0MGFjMTM5OWMxYTJmOTljZDQ3
YmQ1N2QuLjQ1NGE5MWI2ZDFlOTA3NzNhZDE3MzIwMDg0MDg5OTAwMTYzZjA3OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtOTgsNiArOTgsOSBAQCBjbGFzcyBXZWJM
b2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsK
IGNsYXNzIFdlYlByb2Nlc3NTdXBwbGVtZW50OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQYWdlR3JvdXBEYXRhOwpAQCAtMTc1
LDYgKzE3OCwxMSBAQCBwdWJsaWM6CiAKICAgICBMaWJXZWJSVENOZXR3b3JrJiBsaWJXZWJSVENO
ZXR3b3JrKCk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgd2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24qKTsKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJlV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCk7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZvaWQgc2V0Q2FjaGVNb2Rl
bCh1aW50MzJfdCk7CiAKICAgICB2b2lkIGVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Np
b25Jbk5ldHdvcmtQcm9jZXNzKCk7CkBAIC00MzAsNiArNDM4LDEwIEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eT4gbV9hdXRvbWF0aW9u
U2Vzc2lvblByb3h5OwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBSZWZQdHI8
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+IG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYy
YTI0OTczM2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAxNzRhNmI5MDdlYzg1YmU1MmRmNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03NCw2ICs3NCw4IEBAIEVOQUJMRV9DT05URU5U
X0ZJTFRFUklOR19pcGhvbmVvcyA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklORzsKIEVOQUJMRV9D
T05URU5UX0ZJTFRFUklOR19pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
Tkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfbWFjb3N4ID0gRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOworCiBFTkFCTEVfQ1NTM19URVhU
ID0gOwogCiBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0gRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSzsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBjMzkzNTQ2YjgwNWY1YTFlMmQyM2E5ZGRkMTUzMjM0MTNmMzMzZmM4Li5j
YTg4NTUxNTcwMjE2YWNiYjNkZDAwYjY0YmRhYjU2NmYxMTllNDk1IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTgt
MTEtMDYgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVu
dCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzS2lsbElE
QkNsZWFudXAubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbToKKyAgICAgICAg
KFRFU1QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRl
UGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmln
dXJhdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkYXRhYmFzZVByb2Nlc3NO
YW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc0RpZENy
YXNoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKwogMjAxOC0xMC0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgSU9TIDEyIC0gU2VydmljZSB3b3JrZXIgY2FjaGUgbm90IHNoYXJlZCB3aGVu
IGFkZGVkIHRvIGhvbWVzY3JlZW4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIw
ZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0OTczM2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAxNzRhNmI5
MDdlYzg1YmU1MmRmNTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNzQsNiArNzQsOCBAQCBF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBob25lb3MgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
Tkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBob25lc2ltdWxhdG9yID0gRU5BQkxFX0NP
TlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX21hY29zeCA9IEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKKwogRU5B
QkxFX0NTUzNfVEVYVCA9IDsKIAogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
bW0KaW5kZXggM2YxYTYyODg2ODIxMDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4uYzM0NmFi
ZmQ2MjBmOTM1NTVmZDgwMDVjOGExYjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5tbQpAQCAtMTQ0LDYgKzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlZCBw
cm9jZXNzIHBvb2wgZXhpc3RzIHNvIHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2UncmUgYWJv
dXQgdG8gZG8gd29yayB3aXRoIGl0LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFByb2Nlc3NQ
b29sID0gW1dLUHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVYUEVDVF9F
USgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJd
KTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblBy
b2Nlc3NDb3VudF0pOwogCiAgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9y
ZSBkZWZhdWx0RGF0YVN0b3JlXTsKQEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBFQ1RfVFJV
RShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGFyZ2V0
VVJMLnBhdGhdKTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29s
IF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBb
c2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCmluZGV4IDRjYjhmYTk3YTY2YzhhN2ZkODQ1OWVlZDBhNDU4NDJiMmI4MWZhODMu
LjgzMDM0NDNlZmUzYzljZWU2OGIxM2YwNGVhZTc3NGY0YjBkMGZjMmUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCkBAIC05MTUsNyArOTE1LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU1dQcm9j
ZXNzQ29ubmVjdGlvbkNyZWF0aW9uKQogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFJl
dGFpblB0cjxXS1dlYlZpZXc+IG5ld1JlZ3VsYXJQYWdlV2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAKLSAgICAvLyBUZXN0IHRoYXQgYSBy
ZWd1bGFyIHBhZ2UgZG9lcyBub3QgdHJpZ2dlciBhIHNlcnZpY2Ugd29ya2VyIGNvbm5lY3Rpb24g
dG8gbmV0d29yayBwcm9jZXNzIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgc2VydmljZSB3b3Jr
ZXIuCisgICAgLy8gVGVzdCB0aGF0IGEgcmVndWxhciBwYWdlIGRvZXMgbm90IHRyaWdnZXIgYSBz
ZXJ2aWNlIHdvcmtlciBjb25uZWN0aW9uIHRvIHBheW1lbnQgcHJvY2VzcyBpZiB0aGVyZSBpcyBu
byByZWdpc3RlcmVkIHNlcnZpY2Ugd29ya2VyLgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzov
L2hvc3QvcmVndWxhclBhZ2VXaXRob3V0Q29ubmVjdGlvbi5odG1sIl1dOwogCiAgICAgW3JlZ3Vs
YXJQYWdlV2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKQEAgLTk1OSw2ICs5NTksNDcgQEAg
VEVTVChTZXJ2aWNlV29ya2VycywgU1dQcm9jZXNzQ29ubmVjdGlvbkNyZWF0aW9uKQogICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoU2VydmljZVdvcmtlcnMs
IFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNyZWF0aW9uKQoreworICAgIEFTU0VSVChtYWluQnl0
ZXMpOworICAgIEFTU0VSVChzY3JpcHRCeXRlcyk7CisKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3Jl
IF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgUmV0YWluUHRy
PFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgZG9uZSA9IGZhbHNlOworICAg
IFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tX
ZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0
ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRy
dWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CisKKyAgICBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBzZXRDb25maWd1cmF0aW9uSW5qZWN0ZWRC
dW5kbGVQYXRoKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworCisgICAgUmV0YWluUHRyPFJlZ3VsYXJQ
YWdlTWVzc2FnZUhhbmRsZXI+IHJlZ3VsYXJQYWdlTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtb
UmVndWxhclBhZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJh
dGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOnJlZ3Vs
YXJQYWdlTWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInJlZ3VsYXJQYWdlIl07CisKKyAgICBS
ZXRhaW5QdHI8U1dTY2hlbWVzPiBoYW5kbGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10g
aW5pdF0pOworICAgIGhhbmRsZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9zdC9yZWd1bGFyUGFn
ZVdpdGhvdXRDb25uZWN0aW9uLmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIHJl
Z3VsYXJQYWdlV2l0aG91dENvbm5lY3Rpb25CeXRlcyB9KTsKKyAgICBbY29uZmlndXJhdGlvbiBz
ZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKKwor
ICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0
KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsK
KworICAgIC8vIFRlc3QgdGhhdCBhIHJlZ3VsYXIgcGFnZSBkb2VzIG5vdCB0cmlnZ2VyIGEgcGF5
bWVudCBwcm9jZXNzIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgc2VydmljZSB3b3JrZXIuCisg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdpdGhvdXRDb25uZWN0
aW9uLmh0bWwiXV07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAg
IC8vIE1ha2Ugc3VyZSB0aGFuIGxvYWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRpZCBub3Qgc3RhcnQg
YSBwYXltZW50IHByb2Nlc3MuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmln
dXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKK30KKwogc3Rh
dGljIGNvbnN0IGNoYXIqIG1haW5CeXRlc1dpdGhTY29wZSA9IFIiU1dSRVNPVVJDRSgKIDxzY3Jp
cHQ+CiAKQEAgLTEwNDYsNiArMTA4Nyw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VX
b3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5bWVudCBwcm9jZXNz
IGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUg
c2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCku
Y29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50KTsKIApAQCAtMTEzMCw2
ICsxMTc0LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAorICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyBwYXltZW50IHByb2Nlc3MgY3Jl
YXRlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nl
c3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTGV0J3MgdXNlIHRo
ZSB3ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNlcnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEg
cGFnZS4KICAgICBuZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xl
YW51cC5tbQppbmRleCBhMzAyZTNmZTI1MDllYzRkNWM3ZWVjMTA3YzRhYjM1NDYyMjU5OWNmLi5h
OGMyMWEyYmY2ODc5YzA5YjFhNDU4ODg0ZjYwZDA1OGMxYmE1NjdlIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51
cC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nl
c3NLaWxsSURCQ2xlYW51cC5tbQpAQCAtNzIsNiArNzIsNyBAQCBURVNUKEluZGV4ZWREQiwgV2Vi
UHJvY2Vzc0tpbGxJREJDbGVhbnVwKQogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0
aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBh
ZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJd
OwogCisKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIldlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVE
YXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCmluZGV4IDQ2YTAyY2JhZDM3ZGVm
MTQ3MGRmMDMyMzlhNzAyMjU0YTRhOTYyM2EuLmUwYWE4YzA2YmRhNDQxYWVkN2RkNjM0YTk5NDZi
YTIyZmRjYmE1OTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBA
IC0zMDYsNyArMzA2LDYgQEAgVEVTVChXZWJLaXQsIEN1c3RvbURhdGFTdG9yZVBhdGhzVmVyc3Vz
Q29tcGxldGlvbkhhbmRsZXJzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlU
b0NvbnRpbnVlKTsKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKIAotICAgIC8vIFRoZSBy
ZWNvcmRzIHNob3VsZCBoYXZlIGJlZW4gZGVsZXRlZCwgYW5kIHRoZSBjYWxsYmFjayBzaG91bGQg
aGF2ZSBiZWVuIG1hZGUuCiAgICAgLy8gTm93IHJlZmV0Y2ggdGhlIHJlY29yZHMgdG8gdmVyaWZ5
IHRoZXkgYXJlIGdvbmUuCiAgICAgZGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5nZXQoKV0pOwogICAgIFtkYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6
d2Vic2l0ZURhdGFUeXBlcy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJz
aXRlRGF0YVJlY29yZCAqPiAqZGF0YVJlY29yZHMpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CmluZGV4IDFlZDRlZDRmNmU5NDdiOWJiZDQ1MzgwNTQ0NmZlNTYxY2RjZTVmNDEuLjcwMDlhMDNh
N2RkMjRhNGJlZWZhNDBlZmU2ZjE3MWM3MjIzNzRiNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbApAQCAtMzMwLDYgKzMzMCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIHZv
aWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VX
b3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IDQ1YWQ2NmIzNmJkYjk2MTE5OGI1YjBkMDc5MjcxMmNjNWNmNTRiYTguLjNh
MmY4OGFkOWViMWNlNmNmOWNjMTkwNzE1NmY0OGU0N2YxYTY5NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTI0
OCw2ICsxMjQ4LDEyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlU2VydmljZVdvcmtlclBy
b2Nlc3MoKQogICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5n
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUu
Z2V0KCksIG51bGxwdHIsIG51bGxwdHIpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0
ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2Fn
ZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzIikpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VG
b3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVz
c2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBzdGF0aWMgdW5zaWduZWQg
bmV4dFVJU2NyaXB0Q2FsbGJhY2tJRCgpCiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGNhbGxiYWNr
SUQgPSBGaXJzdFVJU2NyaXB0Q2FsbGJhY2tJRDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYmEwZDZhNjU3ZDU0NWQ5ZTYz
ZTA0YzA2N2JiMzQwOWNkM2JhZDVhOS4uOTdlMTk1N2Q5OTdiNTU2NWExZTlmNWVlODhhZjllMGVk
MjcwMjgxMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKQEAgLTQ0Myw2ICs0NDMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
UHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZv
aWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKEpTVmFsdWVSZWYpOwogICAgIHZvaWQgY2Fs
bERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQ0MTAwZjhmMzc5ZDM5Y2FjZWZiOGEy
OTRjZTE5ZTQ3NDkxMGRkNGIuLjIxMzZmN2Y5MTMyMTQzMzVlNDM4MGNlZTZlZjM0YTE1YjkxMTZk
YmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC00OTIs
NiArNDkyLDcgQEAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRy
b2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oV0sKICAgICAgICAgbmV0d29ya1Byb2Nl
c3NEaWRDcmFzaCwKICAgICAgICAgMCwgLy8gcGx1Z0luSW5mb3JtYXRpb25CZWNhbWVBdmFpbGFi
bGUKICAgICAgICAgMCwgLy8gY29weVdlYkNyeXB0b01hc3RlcktleQorICAgICAgICBkYXRhYmFz
ZVByb2Nlc3NEaWRDcmFzaCwKICAgICB9OwogICAgIFdLQ29udGV4dFNldENsaWVudChtX2NvbnRl
eHQuZ2V0KCksICZjb250ZXh0Q2xpZW50LmJhc2UpOwogCkBAIC0xMDYyLDYgKzEwNjMsMjYgQEAg
Y29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYK
IH0KIAorY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc05hbWUoKQor
eworICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIG5vdCBoYXJkY29kZSB0aGUgcHJvY2VzcyBu
YW1lLgorI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjaWYg
IVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKSAmJiBfX0lQSE9ORV9PU19W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDExMDMwMAorICAgIHJldHVybiAiY29tLmFwcGxlLldlYktp
dC5EYXRhYmFzZXMiOworI2Vsc2UKKyAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dCI7CisjZW5kaWYKKyNlbGlmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiAiY29tLmFwcGxl
LldlYktpdC5QYXltZW50LkRldmVsb3BtZW50IjsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICBy
ZXR1cm4gIldlYktpdFBheW1lbnRQcm9jZXNzIjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBy
ZXR1cm4gIldQRVBheW1lbnRQcm9jZXNzIjsKKyNlbHNlCisgICAgcmV0dXJuICJEYXRhYmFzZVBy
b2Nlc3MiOworI2VuZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNT
TENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93c0FueVNT
TENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dz
KTsKQEAgLTE0ODUsNiArMTUwNiwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAogICAgIHN0
YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
LT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRh
dGFiYXNlUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5kYXRhYmFzZVByb2Nlc3NEaWRDcmFzaCgpOworfQorCiB2
b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJv
bm91cykKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5IikpOwpAQCAtMTgxOCw2ICsxODQ0LDEz
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4
aXQoMSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc0RpZENyYXNo
KCkKK3sKKyAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXREYXRhYmFzZVByb2Nlc3NJZGVudGlm
aWVyKG1fY29udGV4dC5nZXQoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVz
IChwaWQgJWxkKVxuIiwgZGF0YWJhc2VQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihw
aWQpKTsKKyAgICBleGl0KDEpOworfQorCiAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdL
TmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCkBAIC0yNjE3LDYgKzI2NTAsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3Jr
ZXJQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6
dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9j
YXRpb24mKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDVj
M2ZlNTNkMTY3NDY4MGQ5NjZiYjIyOTRhNGVjNGU0NDgzYTFlZGYuLjgxODNlMGEwNWUyODI1MzE3
YzU2NjJjNjdhNWU4YTBlOTdmYjQ0MWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKQEAgLTIzMSw2ICsyMzEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0
ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vz
cygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVt
b3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7CiAKQEAgLTMyOCw2ICszMjksOCBAQCBwcml2YXRl
OgogICAgIC8vIFdLQ29udGV4dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNz
RGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBuZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKCk7CisgICAgc3RhdGljIHZvaWQgZGF0YWJhc2VQcm9jZXNzRGlkQ3Jhc2go
V0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBkYXRhYmFzZVByb2Nlc3NEaWRD
cmFzaCgpOwogCiAgICAgLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lk
IGRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAppbmRleCBjNGRkYzkyOGE0ZjU2MGIzNDA5YWM1YmNjMmU0Yzc0YmU5ZTZjNmRk
Li4zZTcyZGJlYzU4YzdhNjMwNjdmYjMwNGM1NjcxMTEzYmNlMjYyZTFhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQ0MCw2ICsxNDQwLDEyIEBAIFdL
UmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91
c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAor
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWlu
YXRlUGF5bWVudFByb2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3Mi
KSkgewogICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGVjZjcz
MDZhODU4MTk4NmJkY2VkZTM1ZTQ1M2ViMWI5NTEwNzU4Yy4uMmJiNDE2MWM5OGM3NGU3MjNhM2M3
ZTEwZTU4MDNmYjkxMDY1NWZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA2ICBa
YW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2Vz
cyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWlt
cG9ydFNjcmlwdHMuaHRtbDoKKwogMjAxOC0xMC0xMiAgRGF3ZWkgRmVudG9uICA8cmVhbGRhd2Vp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9qYXZlIFdrMl0gTGF5b3V0IFRlc3QgaHR0cC90ZXN0
cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFsaWRhdGlvbi1hdHRhY2htZW50Lmh0bWwg
aXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbAppbmRleCAwOGE5YTU5
NjIzMjEwNGI4NjVlM2FiMmRmODVhOWI5NDU3ZWM4NGU5Li4zYzc2ZDlhYjYwYzhjODMxNGQxNGU5
MzhjYTMyZTU2NjRhNDY3Yzg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1s
CkBAIC0zNyw3ICszNyw3IEBAIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKIAogICAgIGlmICgh
d2luZG93LmxvY2F0aW9uLmhhc2gubGVuZ3RoKSB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKICAgICAg
ICAgYXdhaXQgd2FpdEZvcigxMDApOwogICAgICAgICB3aW5kb3cubG9jYXRpb24gKz0gIj90ZXN0
IyIgKyByYW5kb21JZDsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvcGF0Y2guZGlmZiBi
L3BhdGNoLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRiZjhhNTQzODg3NzgyYThhZWVkNWQxODYwZDgwNzE3
ZGMyZjliMwotLS0gL2Rldi9udWxsCisrKyBiL3BhdGNoLmRpZmYKQEAgLTAsMCArMSwxMDMgQEAK
K2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagoraW5k
ZXggYzE5ODA0NjI5MDMuLjJhMDI2YjgyNjY4IDEwMDY0NAorLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorQEAgLTg0NSw2ICs4NDUsNyBAQAorIAkJMzdG
OTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgw
MDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07CisgCQkzN0ZDMTk0NzE4
NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4
NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKyAJCTM3RkMx
OTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1
MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsK
KysJCTM5MkRFQkE1MjE4QTk0QzAwMDQzQUYyOSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQu
c2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5MkRF
QkE0MjE4QTk0QzAwMDQzQUYyOSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2IgKi87IH07
CisgCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisgCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcw
MDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OworIAkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIx
NTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OworQEAgLTEyOTQsNyAr
MTI5NSw2IEBACisgCQlBNUMwRjBBNzIwMDA2NTREMDA1MzY1MzYgLyogX1dLTlNXaW5kb3dFeHRy
YXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QzBG
MEE2MjAwMDY1NDQwMDUzNjUzNiAvKiBfV0tOU1dpbmRvd0V4dHJhcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisgCQlBNUMwRjBBQjIwMDA2NTgyMDA1
MzY1MzYgLyogV0tJbnNwZWN0b3JXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE1QzBGMEFBMjAwMDY1NkUwMDUzNjUzNiAvKiBXS0luc3BlY3Rv
cldpbmRvdy5oICovOyB9OworIAkJQTVFRkQzOEMxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZp
c2liaWxpdHlUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTVFRkQzOEIxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZpc2liaWxpdHlUeXBlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CistCQlBNzhD
Q0REQTE5M0FDOUY0MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiIGluIENv
cHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhDQ0RENzE5M0FD
OUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovOyB9OworIAkJQTc4
Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiBp
biBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4Q0NERDgx
OTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLzsgfTsK
KyAJCUE3OENDRERDMTkzQUM5RkIwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQuc2IgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
OENDREQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Ig
Ki87IH07CisgCQlBN0Q3OTJEODE3NjdDQ0EzMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDc5MkQ0
MTc2N0NCMDkwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oICovOyB9OworQEAgLTE1NjYs
NyArMTU2Niw2IEBACisgCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9w
dXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
M0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07Cisg
CQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3
QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07CisgCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYg
LyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJ
T1MubW0gKi87IH07CistCQlFMTE1QzcxNjE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldl
YktpdC5TdG9yYWdlLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9y
YWdlLnNiICovOyB9OworIAkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2Ig
Ki87IH07CisgCQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oICovOyB9OworIAkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxk
UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCAqLzsg
fTsKK0BAIC0xODYyLDggKzE4NjEsOCBAQAorIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAwOworIAkJ
CWZpbGVzID0gKAorIAkJCQlBNzhDQ0REQjE5M0FDOUY4MDA1RUNDMjUgLyogY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLnNiIGluIENvcHlGaWxlcyAqLywKKy0JCQkJQTc4Q0NEREExOTNBQzlG
NDAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiBpbiBDb3B5RmlsZXMgKi8s
CisgCQkJCUE3OENDRERDMTkzQUM5RkIwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IgaW4gQ29weUZpbGVzICovLAorKwkJCQkzOTJERUJBNDIxOEE5NEMwMDA0M0FGMjkg
LyogY29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiIGluIENvcHlGaWxlcyAqLywKKyAJCQkpOwor
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworIAkJfTsKK0BAIC0y
OTkxLDYgKzI5OTAsNyBAQAorIAkJMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3Np
bmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCTM3RkMxOTQ4MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisgCQkzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworKwkJMzkyREVCQTQyMThBOTRDMDAwNDNBRjI5IC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQu
c2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1
RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCTNGNDE4RUY2MTg4
N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1
RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CitAQCAt
Mzg4Nyw3ICszODg3LDYgQEAKKyAJCUE1RDM1MDREMUQ3OEYwRDIwMDUxMjRBOSAvKiBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworIAkJQTVFRkQzOEIxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFnZVZpc2liaWxpdHlU
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VWaXNpYmlsaXR5
VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUE3MkQ1RDdGMTIzNkNCQTgw
MEE4OEIxNSAvKiBBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CistCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldl
YktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20u
YXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3Jr
aW5nLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworIAkJQTc4Q0NERDkxOTNBQzlFMzAw
NUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUu
V2ViS2l0LldlYkNvbnRlbnQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQlBN0JE
OTg2MzE5NDY1M0Q0MDBEMzU2OTggLyogRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhtbDsgcGF0aCA9ICJEYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cyI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CitAQCAtNDQwNiw3ICs0NDA1LDYgQEAKKyAJCURGNThDNjMx
MTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKyAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVl
bEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0
aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUUx
MDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CistCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9y
YWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5z
Yjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUUxMzNGRDg5MTQyM0REN0YwMEZDN0JG
QiAvKiBXZWJLaXQuaWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGltYWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9IFJlc291cmNl
cy9XZWJLaXQuaWNuczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUUxNEE5NTQ3MTZF
MDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQlFMTRBOTU0ODE2
RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKK0BAIC03MTI0LDcgKzcxMjIsNyBA
QAorIAkJCWlzYSA9IFBCWEdyb3VwOworIAkJCWNoaWxkcmVuID0gKAorIAkJCQlBNzhDQ0REODE5
M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAorLQkJ
CQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNi
ICovLAorKwkJCQkzOTJERUJBNDIxOEE5NEMwMDA0M0FGMjkgLyogY29tLmFwcGxlLldlYktpdC5Q
YXltZW50LnNiICovLAorIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiICovLAorIAkJCSk7CisgCQkJcGF0aCA9IGlvczsKK0BAIC04
Mzg3LDcgKzgzODUsNiBAQAorIAkJCQk1MUZBRUMzNzFCMDY1NzMxMDAwOUM0RTcgLyogQ2hpbGRQ
cm9jZXNzTWVzc2FnZXMuaCAqLywKKyAJCQkJRTE3QUUyQzIxNkI5QzYzQTAwMUM0MkYxIC8qIGNv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgKi8sCisgCQkJCTdBMTUwNjcyMURENTYy
OTgwMDFGNEI1OCAvKiBjb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IgKi8sCistCQkJ
CUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2Ig
Ki8sCisgCQkJCUUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYiAqLywKKyAJCQkJMUFCN0Q2MTcxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorIAkJCQkxQUI3RDYxODEyODhCOUQ5MDBDRkQwOEMgLyog
RG93bmxvYWRQcm94eU1lc3NhZ2VzLmggKi8sCitAQCAtMTAyMjgsMTMgKzEwMjI1LDEzIEBACisg
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKyAJCQlmaWxlcyA9ICgKKyAJCQkJRTE3
QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Mu
c2IgaW4gUmVzb3VyY2VzICovLAorLQkJCQlFMTE1QzcxNjE5MEY4QTI1MDBFQ0M1MTYgLyogY29t
LmFwcGxlLldlYktpdC5TdG9yYWdlLnNiIGluIFJlc291cmNlcyAqLywKKyAJCQkJRTExRDM1QUUx
NkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAq
LywKKyAJCQkJNDE0REQzNzkyMEJGNDNGNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVn
aW4uZ3BjNjQuc2IgaW4gUmVzb3VyY2VzICovLAorIAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0
ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLAorIAkJCQk4REMyRUY1
MzA0ODZBNjk0MDA5OEIyMTYgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAor
IAkJCQkzRkIwOEU0MzFGNjBCMjQwMDA1RTUzMTIgLyogaU9TLnhjYXNzZXRzIGluIFJlc291cmNl
cyAqLywKKyAJCQkJOTNBMkEzNDYxRDI0NjEyNTAwMkI1OUQzIC8qIG1lZGlhSWNvbi5wZGYgaW4g
UmVzb3VyY2VzICovLAorKwkJCQkzOTJERUJBNTIxOEE5NEMwMDA0M0FGMjkgLyogY29tLmFwcGxl
LldlYktpdC5QYXltZW50LnNiIGluIFJlc291cmNlcyAqLywKKyAJCQkpOworIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworIAkJfTsKK0BAIC0xMDQ0MSw3ICsxMDQz
OCw3IEBACisgCQkJZmlsZXMgPSAoCisgCQkJKTsKKyAJCQlpbnB1dFBhdGhzID0gKAorLQkJCQki
JChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2Uuc2IiLAorKwkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVz
L2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2IiLAorIAkJCQkiJChTUkNST09UKS9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2Ii
LAorIAkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBw
bGUuV2ViS2l0LldlYkNvbnRlbnQuc2IiLAorIAkJCSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354162</attachid>
            <date>2018-11-07 15:10:41 -0800</date>
            <delta_ts>2018-11-07 17:57:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181107151041.patch</filename>
            <type>text/plain</type>
            <size>201258</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDdhNDNlMDU1ZWEyZDU2NThlNDkwYTM0NDU5ZDA2YjZhYTUxM2YzLi42NTMzOGJhZWYxNzU0Yjdm
ZGQ3ODQ0YjU4Y2Y1ZDcxNDUxNGVlNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMC0xMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM3MDYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNlNmMxZTI0ZDRjODdiYmEwMTZhMTZjOTg3OTA5NjQxOGIz
MmUyYmEuLjUxNjcwZjk3ODc4Y2E0YThjNGZkYzQ4NzJhNmQ3MmUyN2FiNDgxMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFw
cGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3M6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvUGxheWJhY2tRdWFsaXR5TWV0
cmljcyk6CisKIDIwMTgtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyJ3MgcGFyZW50IHNob3VsZCBi
ZSBhIFdlYWtQdHIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyNzE0YWM3MWMxMWQ5ZTRjYWQ4ZDRkYWRkZGE0OGEw
MDQ3ZjYzYzIuLjEzMDM2MTBkMjY0N2QyMjNkZWYxMmNmYjUyOTUxY2FiZDQxNzRkZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTY5IEBACisyMDE4LTExLTA2ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVA
YXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEy
OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50
aXRsZW1lbnRzOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3gu
ZW50aXRsZW1lbnRzOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Rh
dGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1l
bnRTZXJ2aWNlLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnB1
dE9yQWRkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHA6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkTm90SGFu
ZGxlRmV0Y2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVucmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6
c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpwb3N0UGF5bWVudFRhc2spOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzczo6cGVyZm9ybU5leHRQYXltZW50VGFzayk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAg
ICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gu
bWVzc2FnZXMuaW4uCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5U
YWJsZS5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRi
b3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuUGF5bWVudC5zYjogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiLgorICAgICAgICAq
IFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0Ojpwcm9jZXNzU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdlYktpdDo6c2Fu
ZGJveERpcmVjdG9yeSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlUGF5
bWVudFByb2Nlc3NDYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRD
bG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRD
bGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xv
c2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzc0FuZFdlYnNpdGVE
YXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1l
bnRQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRB
bnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QYXltZW50L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2guY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9TZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2guaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVu
dC9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW46IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVz
c2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oLgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW46IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcC4KKyAgICAgICAgKFdl
YktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5z
dGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW46IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BheW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dPcmlnaW5UYWJsZS5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oLgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50L1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIuY3BwLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE4LTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWxsb3cgZW5jb2Rpbmcgb2Ygc21hbGwgZW51bSBjbGFzc2VzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJh
MjQ5NzMzYi4uN2EyODU3MjdlYjY1NzI5MmRkMDE3NGE2YjkwN2VjODViZTUyZGY1NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNzQsNiArNzQsOCBAQCBFTkFCTEVfQ09OVEVOVF9GSUxU
RVJJTkdfaXBob25lb3MgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkdfaXBob25lc2ltdWxhdG9yID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwog
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX21hY29zeCA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
RzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKKwogRU5BQkxFX0NTUzNfVEVYVCA9IDsK
IAogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBk
NGYyYTI0OTczM2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAxNzRhNmI5MDdlYzg1YmU1MmRmNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC03NCw2ICs3NCw4IEBAIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhv
bmVvcyA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
R19pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkdfbWFjb3N4ID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogCitFTkFC
TEVfUEFZTUVOVF9QUk9DRVNTID0gOworCiBFTkFCTEVfQ1NTM19URVhUID0gOwogCiBFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0gRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
cwppbmRleCBmMjZlOTZkNDJhMDg0YzNkNTNjMmMwOTcwOGNiMTIzZTA5NjI2ZGFiLi5kMjAxNjM1
YzA1YWM3MzQ2ZWJjMTY5MzFiNThjZDE1YjNmYjRlNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNv
cmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC00Myw2ICs0Myw5IEBACiAv
KiBWaXNpYmxlIG5hbWUgb2YgU2VydmljZSBXb3JrZXIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlz
IHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFNlcnZpY2UgV29ya2VyICglQCkiID0gIiVA
IFNlcnZpY2UgV29ya2VyICglQCkiOwogCisvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIHBheW1lbnQg
cHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLworIiVAIFBh
eW1lbnQiID0gIiVAIFBheW1lbnQiOworCiAvKiBWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9j
ZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgV2ViIENv
bnRlbnQiID0gIiVAIFdlYiBDb250ZW50IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVk
MDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0OTczM2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAx
NzRhNmI5MDdlYzg1YmU1MmRmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTc0LDYgKzc0LDgg
QEAgRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZW9zID0gRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZXNpbXVsYXRvciA9IEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19tYWNvc3ggPSBF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CisK
IEVOQUJMRV9DU1MzX1RFWFQgPSA7CiAKIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsg
PSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ZjE2MTU0MjczMjZkODhiYWFkYjVlOTNjMjNkY2E3NTQzYjE4MDRjNS4uN2I3NDFlMTBhNzJmMjJh
NzgwN2Q0ZTc3MzYzODc5YzJhNDAwZDlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0zMSw3ICsz
MSw5IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9
L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVn
aW5zL05ldHNjYXBlL3gxMSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlIgorICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QYXltZW50IgogICAgICIke1dFQktJVF9E
SVJ9L1NoYXJlZC9XZWJzaXRlRGF0YSIKKyAgICAiJHtXRUJLSVRfRElSfS9QYXltZW50UHJvY2Vz
cyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSSIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL0MiCkBAIC00Nyw2
ICs0OSw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUi
CisgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1BheW1lbnQiCiAgICAgIiR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbiIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vTW9jayIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNz
YWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3Nh
Z2VzLmluCiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgor
ICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5p
bgogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcs
OCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIxLDYg
KzIyOSwxMCBAQCBzZXQoTmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCiAK
K3NldChQYXltZW50UHJvY2Vzc19MSUJSQVJJRVMKKyAgICBXZWJLaXQKKykKKwogc2V0KFBsdWdp
blByb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCkBAIC00NDAsMTAgKzQ1MiwyMCBAQCBp
ZiAoV2ViS2l0X05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FKQogICAgIHNldF90YXJnZXRfcHJv
cGVydGllcyhOZXR3b3JrUHJvY2VzcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FICR7V2ViS2l0X05l
dHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FfSkKIGVuZGlmICgpCiAKK2FkZF9leGVjdXRhYmxlKFBh
eW1lbnRQcm9jZXNzICR7UGF5bWVudFByb2Nlc3NfU09VUkNFU30pCitBRERfV0VCS0lUX1BSRUZJ
WF9IRUFERVIoUGF5bWVudFByb2Nlc3MpCit0YXJnZXRfbGlua19saWJyYXJpZXMoUGF5bWVudFBy
b2Nlc3MgJHtQYXltZW50UHJvY2Vzc19MSUJSQVJJRVN9KQoraW5zdGFsbChUQVJHRVRTIFBheW1l
bnRQcm9jZXNzIERFU1RJTkFUSU9OICIke0xJQkVYRUNfSU5TVEFMTF9ESVJ9IikKKworaWYgKFdl
YktpdF9QYXltZW50UHJvY2Vzc19PVVRQVVRfTkFNRSkKKyAgICBzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoUGF5bWVudFByb2Nlc3MgUFJPUEVSVElFUyBPVVRQVVRfTkFNRSAke1dlYktpdF9QYXltZW50
UHJvY2Vzc19PVVRQVVRfTkFNRX0pCitlbmRpZiAoKQorCiBpZiAoQ09NUElMRVJfSVNfR0NDX09S
X0NMQU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhXZWJLaXQgLVduby11bnVz
ZWQtcGFyYW1ldGVyKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhXZWJQcm9jZXNz
IC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1Mo
TmV0d29ya1Byb2Nlc3MgLVduby11bnVzZWQtcGFyYW1ldGVyKQorICAgIFdFQktJVF9BRERfVEFS
R0VUX0NYWF9GTEFHUyhQYXltZW50UHJvY2VzcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCiBlbmRp
ZiAoKQogCiAjIEZJWE1FOiBNYWMgc2hvdWxkIGJ1aWxkIGEgcGx1Z2luIHByb2Nlc3MuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRs
ZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0
bGVtZW50cwppbmRleCAzNzQ3NWVlZTg4MmQ1MzYxMjgzZmEzMWEwZWY2MWI1YmQ4NDNhZWJiLi41
MTUwMWQ1ZmZkNDI1NjUxMjkzOTA2N2Y2MDM1NmRlM2VlODM4YWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMK
QEAgLTMsOSArMyw3IEBACiA8cGxpc3QgdmVyc2lvbj0iMS4wIj4KIDxkaWN0PgogCTxrZXk+c2Vh
dGJlbHQtcHJvZmlsZXM8L2tleT4KLQk8YXJyYXk+Ci0JCTxzdHJpbmc+Y29tLmFwcGxlLldlYktp
dC5TdG9yYWdlPC9zdHJpbmc+Ci0JPC9hcnJheT4KKwk8YXJyYXkvPgogCTxrZXk+Y29tLmFwcGxl
LnByaXZhdGUubWVtb3J5c3RhdHVzPC9rZXk+CiAJPHRydWUvPgogPC9kaWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJhMjQ5NzMzYi4uN2EyODU3MjdlYjY1
NzI5MmRkMDE3NGE2YjkwN2VjODViZTUyZGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03NCw2ICs3NCw4IEBA
IEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVvcyA9IEVOQUJMRV9DT05URU5UX0ZJTFRF
UklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVf
Q09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfbWFjb3N4ID0gRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOworCiBF
TkFCTEVfQ1NTM19URVhUID0gOwogCiBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0g
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE4NmFhNzE1YWUwZWYyZWQ4NDA3MTQzYzljZmViMGE2MjFmMTVjZTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NY
LXNhbmRib3guZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9E
VEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0
LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBs
ZS5yb290bGVzcy5wYXltZW50LldlYktpdFBheW1lbnRTYW5kYm94PC9rZXk+CisJPHRydWUvPgor
PC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNWUzYTcxZmUyMDMzMTYzZWVk
MDkyY2M5YTk5MzY1YzhjMGIyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCkBAIC0wLDAgKzEsMzYgQEAKKy8v
IENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8vIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisvLyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8gUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorLy8g
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJCYXNlWFBD
U2VydmljZS54Y2NvbmZpZyIKKworV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNF
ID0gRGF0YWJhc2VzLWlPUzsKKworV0tfU1RPUkFHRV9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF9O
TyA9IDsKK1dLX1NUT1JBR0VfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfWUVTID0gQ29uZmlndXJh
dGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHM7CisKK0NPREVfU0lHTl9FTlRJ
VExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1NUT1JBR0VfRU5USVRMRU1FTlRTX1JFU1RS
SUNURURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lH
Tl9GTEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BS
T0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNU
X0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSBQ
YXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlL0lu
Zm8ucGxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmU1NTFmNDk3MWU0MTAy
MDJjMzczYjg1ZTE3OGM1NTNhNmM3NTNjMS4uOGQzNWJlMzRkOTYxNzJlMDUzYzIzZTZkYWE0Njg3
Y2NlODNiNjE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzcsNiArMzcsNyBA
QCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BUEkvQ29jb2EgXAogICAgICQoV2Vi
S2l0MikvU2hhcmVkL0F1dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMg
XAorICAgICQoV2ViS2l0MikvUGF5bWVudFByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9BcHBsZVBheSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uIFwKQEAgLTczLDkgKzc0
LDkgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L1BheW1lbnQgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSBcCi0gICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvU3RvcmFnZSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQgXAogICAg
ICQoV2ViS2l0MikvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9XZWJTdG9yYWdlIFwKQEAgLTEzMSw2ICsxMzIsOSBAQCBNRVNTQUdFX1JFQ0VJ
VkVSUyA9IFwKICAgICBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyIFwKICAgICBTdG9yYWdl
QXJlYU1hcCBcCiAgICAgU3RvcmFnZU1hbmFnZXIgXAorICAgIFBheW1lbnRQcm9jZXNzIFwKKyAg
ICBQYXltZW50UHJvY2Vzc1Byb3h5IFwKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
biBcCiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgXAogICAgIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkgXAogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA0ZGQ5NTRlZTQ3ZWVmZGM1MjEwNDhkOGJjYzcw
YTM2ZWQwM2M3ZDk3Li4yM2M2MTFkNzUyZTA0ODk3OTBhZjE0MjM3OGY1ODUyODQ4MWMzMzM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTI4Nyw3ICsyODcsNiBA
QCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQgogICAgICAgICAmJiBvdmVyd3JpdGVNb2RlICE9IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6
T3ZlcndyaXRlKQogICAgICAgICAmJiBvdmVyd3JpdGVNb2RlICE9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6T3ZlcndyaXRlRm9yQ3Vy
c29yKSkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBtZXNzYWdlIGZyb20gdGhlIFdlYlByb2Nl
c3MgaXMgY29ycnVwdC4KLSAgICAgICAgLy8gVGhlIE5ldHdvcmsgUHJvY2VzcyBzaG91bGQgcmV0
dXJuIGVhcmx5IGF0IHRoaXMgcG9pbnQsIGJ1dCBjYW4gd2UgYWxzbyBraWxsIHRoZSBiYWQgV2Vi
UHJvY2Vzcz8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCAxYzk0MjI0MDQxOGZhMjJiMzNjNGY3YjMwNjEwMGUyMjBlNjVkMjg4Li5jYmY5
MTdiYjY2NWU2NWI5ZDA5YTRhNThjOTBiNjU1ZjUwYjg3NDE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcApAQCAtNzMyLDcgKzczMiw2IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlE
QkNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKQogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAg
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVJREJDb25uZWN0aW9uVG9TZXJ2
ZXJJZGVudGlmaWVyKCk7Ci0gICAgTE9HKEluZGV4ZWREQiwgIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIgLSAlIiBQUkl1NjQsIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBBU1NFUlQoIW1fd2ViSURCQ29ubmVjdGlv
bnMuY29udGFpbnMoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKTsKICAgICAKICAgICBtX3dl
YklEQkNvbm5lY3Rpb25zLnNldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoKnRoaXMsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBzZXNzaW9uSUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
UHJvY2Vzcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBlNGU0MTkxNGYyNGU3N2VlNTk0NzNlYmIxZjk0OWVm
YzFlOTJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFByb2Nlc3MuY3BwCkBAIC0wLDAgKzEsMjIyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dEVuY29kaW5nLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUg
PHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNr
Lmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2VzczsKKyAg
ICByZXR1cm4gcHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkK
KyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dFByb2Nlc3MiKSkKK3sKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGlu
ZyBhbmQgdGhlIHRleHQgZW5jb2RpbmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4g
dGhyZWFkIGJlZm9yZSBhIGJhY2tncm91bmQgdGhyZWFkIG5lZWRzIGl0LgorICAgIC8vIEZJWE1F
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBh
IG1vcmUgZXhwbGljaXQgd2F5IG9mIGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVU
RjhFbmNvZGluZy4KKyAgICBVVEY4RW5jb2RpbmcoKTsKK30KKworUGF5bWVudFByb2Nlc3M6On5Q
YXltZW50UHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nl
c3M6OmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQ
cm9jZXNzOjpzaG91bGRUZXJtaW5hdGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVy
TWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
OlBheW1lbnRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVj
ZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAg
ICAgQ2hpbGRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYnNpdGVEYXRhU3RvcmUoY29uc3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmVuc3VyZVBhdGhF
eGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOworCisgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMocGF0aCkpCisg
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIG1ha2UgYWxsIGRpcmVjdG9yaWVzIGZvciBwYXRo
ICclcyciLCBwYXRoLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpw
b3N0UGF5bWVudFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKK3sKKyAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOworCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wYXltZW50VGFza011
dGV4KTsKKworICAgIG1fcGF5bWVudFRhc2tzLmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKKworICAg
IG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzXSB7CisgICAgICAgIHBlcmZvcm1OZXh0UGF5bWVudFRh
c2soKTsKKyAgICB9KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6cGVyZm9ybU5leHRQYXlt
ZW50VGFzaygpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBDcm9z
c1RocmVhZFRhc2sgdGFzazsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGF5
bWVudFRhc2tNdXRleCk7CisgICAgICAgIEFTU0VSVCghbV9wYXltZW50VGFza3MuaXNFbXB0eSgp
KTsKKyAgICAgICAgdGFzayA9IG1fcGF5bWVudFRhc2tzLnRha2VGaXJzdCgpOworICAgIH0KKwor
ICAgIHRhc2sucGVyZm9ybVRhc2soKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNz
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK3sKKyNpZiBV
U0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIg
c29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7
CisgICAgbV9wYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoc29ja2V0UGFpci5zZXJ2ZXIpKTsKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5
OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQo
c29ja2V0UGFpci5jbGllbnQpKSwgMCk7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgLy8gQ3JlYXRl
IHRoZSBsaXN0ZW5pbmcgcG9ydC4KKyAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0ID0gTUFD
SF9QT1JUX05VTEw7CisgICAgYXV0byBrciA9IG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tf
c2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOworICAgIGlm
IChrciAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgYWxs
b2NhdGUgbWFjaCBwb3J0LCBlcnJvciAleCIsIGtyKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9
CisKKyAgICAvLyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29ubmVjdGlvbi4KKyAgICBtX3BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIobGlzdGVuaW5nUG9ydCkpKTsK
KworICAgIElQQzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNH
X1RZUEVfTUFLRV9TRU5EKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihjbGllbnRQb3J0KSwgMCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBzZXJ2ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVy
OworICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlm
aWVycyhzZXJ2ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2VydmVyIGFuZCBjbGllbnQgaWRlbnRpZmllcnMiKTsK
KyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKHNlcnZlcklkZW50aWZpZXIpOworICAgIG1f
cGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChXVEZNb3ZlKGNvbm5lY3Rpb24p
KTsKKworICAgIElQQzo6QXR0YWNobWVudCBjbGllbnRTb2NrZXQoY2xpZW50SWRlbnRpZmllcik7
CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFBy
b2Nlc3NQcm94eTo6RGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY2xpZW50
U29ja2V0KSwgMCk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwor
dm9pZCBQYXltZW50UHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIHdlYnNpdGVEYXRhID0g
c3RkOjptYWtlX3VuaXF1ZTxXZWJzaXRlRGF0YT4oKTsKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVn
YXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCB3ZWJzaXRlRGF0YSA9IFdU
Rk1vdmUod2Vic2l0ZURhdGEpLCBjYWxsYmFja0lEXSgpIHsKKyAgICAgICAgcGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6RGlkRmV0
Y2hXZWJzaXRlRGF0YShjYWxsYmFja0lELCAqd2Vic2l0ZURhdGEpLCAwKTsKKyAgICB9KTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBX
YWxsVGltZSBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8g
Y2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMsIGNh
bGxiYWNrSURdIHsKKyAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6RGlkRGVsZXRlV2Vic2l0ZURhdGEoY2FsbGJhY2tJ
RCksIDApOworICAgIH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiYgc2VjdXJpdHlPcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8g
Y2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMsIGNh
bGxiYWNrSURdKCkgeworICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjpEaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMoY2FsbGJhY2tJRCksIDApOworICAgIH0pOworfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQor
dm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKKyNpZiBPUyhMSU5VWCkKKyAgICBhdXRvJiBt
ZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigp
OworICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAo
Q3JpdGljYWwsIFN5bmNocm9ub3VzKSB7CisgICAgICAgIC8vIEZJWE1FOiBubyBsb3dNZW1vcnlI
YW5kbGVyKCkgaW1wbGVtZW50ZWQgZm9yIFBheW1lbnRQcm9jZXNzIGN1cnJlbnRseS4KKyAgICAg
ICAgLy8gQnV0IGF0IGxlYXN0IGRlZmluZSB0aGlzIHNldExvd01lbW9yeUhhbmRsZXIoKSBlbXB0
eSBzbyBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkgaXMgY2FsbGVkLgorICAgIH0pOworICAgIG1lbW9y
eVByZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7CisjZW5kaWYKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVT
YW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRi
b3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorI2VuZGlmIC8vICFQTEFURk9STShD
T0NPQSkKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2YyNDQ3YmNkMDE5YzZjOTZiYjBmN2ZhZTI1NGNhMDE2MzBmMWIw
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFByb2Nlc3MuaApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3Qg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCitjbGFzcyBXZWJTV09yaWdpblN0b3JlOworI2VuZGlmCisKK2NsYXNzIFBheW1lbnRQ
cm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
UGF5bWVudFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vz
cz47CitwdWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6
OlBheW1lbnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgcG9zdFBheW1l
bnRUYXNrKENyb3NzVGhyZWFkVGFzayYmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQ
cm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworcHJpdmF0
ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdm9p
ZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBD
aGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAg
IGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXNzYWdlIEhhbmRsZXJzCisgICAg
dm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYpOworICAgIHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJik7CisKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKKyAg
ICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZv
aWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CisKKyAgICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdvcmsgcXVldWUgdGhy
ZWFkIG9ubHkKKyAgICB2b2lkIHBlcmZvcm1OZXh0UGF5bWVudFRhc2soKTsKKyAgICB2b2lkIGVu
c3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJik7CisKKyAgICBWZWN0b3I8UmVmPFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uPj4gbV9wYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnM7
CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworCisgICAgRGVxdWU8Q3Jvc3NUaHJlYWRU
YXNrPiBtX3BheW1lbnRUYXNrczsKKyAgICBMb2NrIG1fcGF5bWVudFRhc2tNdXRleDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFkOTI3ZTFlMTkwZDA5YzZmMDk2ZjI4Y2I5
MTU0NDUxNGZiNjBiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgeworICAg
ICMgSW5pdGlhbGl6ZXMgYSBXZWJzaXRlRGF0YVN0b3JlL1Nlc3Npb24gaW4gdGhlIFBheW1lbnRQ
cm9jZXNzIHdpdGggdGhlIGNvcnJlY3QgcGFyYW1ldGVycworICAgIEluaXRpYWxpemVXZWJzaXRl
RGF0YVN0b3JlKHN0cnVjdCBXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
IHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCisKKyAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9u
IGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCisgICAgQ3JlYXRlUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikKKworICAgIEZldGNoV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGVsZXRl
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2Us
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBv
cmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKQorCisgICAgRGVzdHJveVNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTI2ODk2MjBhZjI0N2U1
NmU3YTc4N2VkNDVmNGEyODZlMGQ5OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworfQor
CitQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQor
ICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlv
bihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIC8vIFVzZSB0aGlzIGZsYWcg
dG8gZm9yY2Ugc3luY2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hyb25v
dXMgbWVzc2FnZXMgaW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUgV2Vi
UHJvY2VzcyB3b3VsZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3YWl0
aW5nIGZvciBhIHN5bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1lbnQg
cHJvY2Vzcywgd2hpY2ggd291bGQgYmUgdW5zYWZlLgorICAgIG1fY29ubmVjdGlvbi0+c2V0T25s
eVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNz
aW5nU3VjaEFNZXNzYWdlKHRydWUpOworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24o
KS5kaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJB
TShjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VO
YW1lKQoreworCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1F
TlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
YmMwMWZhZjg1YTVlNTUxY2FkYmU2NzhlOTMxYjhjNGJkYmYyZjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNs
dWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIp
OworICAgIH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3By
aXZhdGU6CisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5h
bWUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
Jik7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0
cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk4NDMyMjU5NjYyNjkzNTkzOTE2ZTNkOTRjYTk1NGZkNTA5NzlhNmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CittZXNzYWdlcyAtPiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZl
ciB7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
aW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9p
b3MvUGF5bWVudFByb2Nlc3NJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJjYWYzMjE2ODU3YTNhM2M3Yjdj
NGZlMGZhY2U4ZTg3OTQ3YjhkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiUGF5bWVudFByb2Nlc3MuaCIKKworI2lt
cG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgorCisjZGVmaW5lIEVOQUJM
RV9NQU5VQUxfREFUQUJBU0VfU0FOREJPWElORyAwCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2
b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpp
bml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFs
aXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0
ZXJzKQoreworI2lmIEVOQUJMRV9NQU5VQUxfREFUQUJBU0VfU0FOREJPWElORworICAgIC8vIE5l
ZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJl
bnQgYnVuZGxlIElELgorICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1
bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3IildOworICAgIHNhbmRi
b3hQYXJhbWV0ZXJzLnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxl
IHBhdGhGb3JSZXNvdXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudCIgb2ZUeXBlOkAic2Ii
XSk7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5k
Ym94UGFyYW1ldGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMv
aW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudC5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2Vz
L1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEwYzdjYmZmOGNkYjc4OTY0Yzc2NGU0ZTJlNGRmZmQ2MTAzMjg1OWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudC5zYgpAQCAtMCwwICsxLDQ3IEBACis7IENvcHlyaWdodCAoQykg
MjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KzsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3
aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVh
ZC1tZXRhZGF0YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1sb29rdXAg
KHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVuKQorCisoYWxsb3cg
ZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gu
cmVhZC13cml0ZSIpKQorCisoZGVueSBzeXNjdGwqKQorKGFsbG93IHN5c2N0bC1yZWFkCisgICAg
KHN5c2N0bC1uYW1lCisgICAgICAgICJody5hdmFpbGNwdSIKKyAgICAgICAgImh3Lm5jcHUiCisg
ICAgICAgICJody5tb2RlbCIKKyAgICAgICAgImtlcm4ubWVtb3J5c3RhdHVzX2xldmVsIgorICAg
ICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkKKworOzsgVmFyaW91cyBzZXJ2aWNlcyByZXF1
aXJlZCBieSBzeXN0ZW0gZnJhbWV3b3JrcworKGFsbG93IG1hY2gtbG9va3VwCisgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5z
YiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5TdG9yYWdlLnNiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMGM3Y2Jm
ZjhjZGI3ODk2NGM3NjRlNGUyZTRkZmZkNjEwMzI4NTliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiCisrKyAvZGV2L251bGwKQEAg
LTEsNDcgKzAsMCBAQAotOyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoK
LTsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotOyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi07Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLTsgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi07IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLTsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi07IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi07IENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi07IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLTsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0odmVyc2lvbiAxKQotKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24p
KQotKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCi0KLShpbXBvcnQgImNv
bW1vbi5zYiIpCi0KLShkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAi
IikpCi0KLShkZW55IGxzb3BlbikKLQotKGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKGV4
dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKLQotKGRlbnkgc3lz
Y3RsKikKLShhbGxvdyBzeXNjdGwtcmVhZAotICAgIChzeXNjdGwtbmFtZQotICAgICAgICAiaHcu
YXZhaWxjcHUiCi0gICAgICAgICJody5uY3B1IgotICAgICAgICAiaHcubW9kZWwiCi0gICAgICAg
ICJrZXJuLm1lbW9yeXN0YXR1c19sZXZlbCIKLSAgICAgICAgInZtLmZvb3RwcmludF9zdXNwZW5k
IikpCi0KLTs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQgYnkgc3lzdGVtIGZyYW1ld29ya3MK
LShhbGxvdyBtYWNoLWxvb2t1cAotICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYW5hbHl0aWNz
ZCIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAppbmRleCA1NDc4YTlkZDlmYzU5MmIx
ODc2NjNmOTU0ZWZhNTkxY2YwMjA0ZmQxLi4wN2Y4N2I5NDJkMzcxMjdjMTcyNTVlODQ3NjY4Y2Jh
Mjc3OGE2NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtNDgsOCArNDgs
MTAgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgUHJvY2Vzc1R5cGUgOiB1aW50OF90IHsKICAg
ICAgICAgV2ViQ29udGVudCwKICAgICAgICAgTmV0d29yaywKLSAgICAgICAgU3RvcmFnZSwKLSAg
ICAgICAgUGx1Z2luCisgICAgICAgIFBsdWdpbiwKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAg
ICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NzM3MDk3MzQwM2Q0NjM0MDhlZDYzYmJjZWY0NTYzYmQwMDk5ODFmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29k
ZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQoreworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOworfQorCitib29sIFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQoreworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJhYzg2M2MwMGE4YTQwNzAxMzUxMmNhMjMxYzA1NTgzNTE3YjllZWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CisKKyAgICB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDJjZTcxNmU0YzcyZTU4MmFiZTMwZjQ4
NzlkMmM2ZWI5ZTQ5OWE5N2IuLjYyYjU0NzRlZmFhNzI0ZWFiNTI4YjRmNjcwMTc5MWYwY2U5YWFk
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0
aC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCkBA
IC0zMiw1ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGV4ZWN1dGFibGVQYXRo
T2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKTsK
IFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQYXltZW50UHJvY2VzcygpOwor
I2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQppbmRleCAyMWUzYWQ0MzMzZDdjNmE4OThkNmY4
OTgxNjI5MzYyNDY3NTYyNTZmLi5jZTIwMTVkODlkNjRkY2UwMTY4YjViNzU0YWUyOWRiOGE0N2I2
ZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAg
LTIyNCw3ICsyMjQsNiBAQCBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvY2Vzc1N0b3JhZ2VDbGFz
cyhDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiAiV2ViS2l0
V2ViQ29udGVudFNhbmRib3giOwogICAgIGNhc2UgQ2hpbGRQcm9jZXNzOjpQcm9jZXNzVHlwZTo6
TmV0d29yazoKICAgICAgICAgcmV0dXJuICJXZWJLaXROZXR3b3JraW5nU2FuZGJveCI7Ci0gICAg
Y2FzZSBDaGlsZFByb2Nlc3M6OlByb2Nlc3NUeXBlOjpTdG9yYWdlOgogICAgICAgICByZXR1cm4g
IldlYktpdFN0b3JhZ2VTYW5kYm94IjsKICAgICBjYXNlIENoaWxkUHJvY2Vzczo6UHJvY2Vzc1R5
cGU6OlBsdWdpbjoKICAgICAgICAgcmV0dXJuICJXZWJLaXRQbHVnaW5TYW5kYm94IjsKQEAgLTI4
NSw4ICsyODQsNiBAQCBzdGF0aWMgU3RyaW5nIHNhbmRib3hEaXJlY3RvcnkoQ2hpbGRQcm9jZXNz
OjpQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgY29uc3QgU3RyaQogICAgIGNhc2UgQ2hpbGRQcm9j
ZXNzOjpQcm9jZXNzVHlwZTo6TmV0d29yazoKICAgICAgICAgZGlyZWN0b3J5LmFwcGVuZCgiL2Nv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5TYW5kYm94Iik7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ2hpbGRQcm9jZXNzOjpQcm9jZXNzVHlwZTo6U3RvcmFnZToKLSAgICAgICAgZGlyZWN0
b3J5LmFwcGVuZCgiL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5TYW5kYm94Iik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ2hpbGRQcm9jZXNzOjpQcm9jZXNzVHlwZTo6UGx1Z2luOgogICAg
ICAgICBkaXJlY3RvcnkuYXBwZW5kKCIvY29tLmFwcGxlLldlYktpdC5QbHVnaW4uU2FuZGJveCIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggYjcxYWQ0OTgzNDVlZDljYTQyOGIwYTM0YzRiYWU5YjgzYjk1YjBk
My4uOTBlYjA4ZTNiMWI5MTEyYWQ3NmIzMTNmMGM2YzE0OTI4ZTY1MjcwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC0yMTksOCArMjE5LDEzIEBAIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwIEBuby11bmlmeQogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5Nb2R1bGUuY3BwICBAbm8tdW5pZnkKIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1Bs
dWdpbkluZm9ybWF0aW9uLmNwcCBAbm8tdW5pZnkKIAorU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YS5jcHAKIAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIEBuby11bmlmeQor
UGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIEBuby11bmlm
eQorCiBVSVByb2Nlc3MvQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcAog
VUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuY3BwCkBAIC0zODEsNiArMzg2LDggQEAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0
b3JlLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50
L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlci5jcHAKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5jcHAKIApAQCAtNDkzLDYgKzUwMCw3IEBAIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV09yaWdpblRhYmxlLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyLmNwcAorV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmNwcAogCiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDU5NGJmOTBkZDVmMDhiZmRjNDM0
YjlmNWRjNTllNDhjM2FhMmQ3MWUuLjBlNDIwZWY2ODg3MGYxNjg1MmQwZjNhNmQ5ZTUzNTYxNGZk
NTMxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE5NCw2ICsxOTQsOSBAQCBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQogU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQogU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAog
CisKK1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbSBAbm8tdW5pZnkKKwog
VUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQogVUlQcm9jZXNzL0FwcGxpY2F0
aW9uU3RhdGVUcmFja2VyLm1tCiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAppbmRleCAxOTY1MjhjYmU1MTI3ZjRiNTk3ZWY2NzFjOGIxMDM4OGMyMGNjOTc0Li44M2Q2Y2Fk
MjM0MzcxZDRjNDU2YzM3MTg2MDYzMDc4OTYzMDE1M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSw2ICs2MjEsMTMgQEAgdm9pZCBXS0Nv
bnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkK
ICAgICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsK
IH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYg
Y29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHRvSW1wbChjb250
ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQ
cm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4g
dG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggYzJkZTNhZmJjM2U4OWNhNjQ5
YzRmYTEzOGM1OTUxMTVmMzNjYjg5ZC4uZGMwZmUzODk3ZjM1ZjJlOWQ1ZTVjNzljODdlOTc1Yzhl
ZDQyM2MxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAg
LTUwLDYgKzUwLDcgQEAgdHlwZWRlZiBXS0RhdGFSZWYgKCpXS0NvbnRleHRDb3B5V2ViQ3J5cHRv
TWFzdGVyS2V5Q2FsbGJhY2spKFdLQ29udGV4dFJlZiBjb250ZXgKIAogdHlwZWRlZiB2b2lkICgq
V0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiBXS0NvbnRleHRDaGlsZFByb2Nl
c3NEaWRDcmFzaENhbGxiYWNrIFdLQ29udGV4dE5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFj
azsKK3R5cGVkZWYgV0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjayBXS0NvbnRl
eHREYXRhYmFzZVByb2Nlc3NEaWRDcmFzaENhbGxiYWNrOwogCiB0eXBlZGVmIHN0cnVjdCBXS0Nv
bnRleHRDbGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC04OCw2ICs4OSw4
IEBAIHR5cGVkZWYgc3RydWN0IFdLQ29udGV4dENsaWVudFYyIHsKICAgICAvLyBWZXJzaW9uIDEu
CiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoKmNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlfdW5hdmFpbGFibGUpKHZv
aWQpOwogCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLQ29udGV4dERhdGFiYXNlUHJvY2Vzc0Rp
ZENyYXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VQcm9jZXNz
RGlkQ3Jhc2g7CiB9IFdLQ29udGV4dENsaWVudFYyOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNl
IG9uY2Ugc3VwcG9ydCBmb3IgTWF2ZXJpY2tzIGhhcyBiZWVuIGRyb3BwZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggZWM2Yzg2
M2I2ZTQ4YTZhYmMyOTg1MTczYzMzZDc0ZWQxM2E1OGI1My4uMTU5MDcxYmRiYTU4NjZlNzU5YTI3
OGQ0MTczNTIwNzg1ZjNmN2Y1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTIsNiArOTIsOCBAQCBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsKIAogV0tf
RVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVm
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
KFdLQ29udGV4dFJlZik7CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZ
TUVOVF9QUk9DRVNTIGlzIEVOQUJMRUQKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0
ZVBheW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4
dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhXS0NvbnRleHRS
ZWYsIGJvb2wpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JTZXJ2aWNlV29ya2VyVGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRl
eCAyODc2MzE2NWM2NGEyNjJhMTMxYWQ0ODU3MTI2MjI1ODg2YWIyZDUwLi40OWMwNmRhMGY4OTJm
MzNhMTUwYTg5ZDM4ZDZlOTc2ODI5NTQ4ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDI0LDYgKzQyNCwxMyBAQCAt
ICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMKICAgICBfcHJvY2Vzc1Bvb2wtPmNsZWFyU3Vw
cG9ydGVkUGx1Z2lucygpOwogfQogCistICh2b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2Vzcwor
eworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5h
dGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcwogewogICAgIF9w
cm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQ0NCw2ICs0NTEsMTUg
QEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllcgogICAgIHJldHVybiBfcHJvY2Vz
c1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCistIChwaWRfdClfcGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBy
ZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisg
ICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9
CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bv
b2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggN2Q0
YjYxNWFkODAyNDg0MzhhZmExZmFlYjNhODQwNGU4ZmRhZmNmOS4uZmY3OWZkYjY4NWNjYjE4M2M4
YzBlZTM2MzVjMTk4YTU2YjBjYTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTg0LDEyICs4NCwx
NiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICop
cmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJl
IGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4K
Ky8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMg
RU5BQkxFRAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3M7CiAtICh2b2lkKV90ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9p
ZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBp
ZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBB
WU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjMpKTsKIAogLy8gVGVzdCBvbmx5LgogLSAoc2l6
ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3Mo
MTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNz
TGF1bmNoZXIuaAppbmRleCA1YzRiYjNiOWUxMTY0MWQ5ODc4MTFkYTY2Nzk0NjViNmUzMTg0MGE1
Li5mNTA4Zjc5Y2NhYjUxMGEyZmIyYzRkYThlYzk2MzE2MDg2ZjA0NjU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNTcs
NyArNTcsMTAgQEAgcHVibGljOgogICAgICAgICBQbHVnaW42NCwKICNlbmRpZgogICAgICAgICBO
ZXR3b3JrLAotICAgICAgICBTdG9yYWdlLAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgICAgIFBheW1lbnQsCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAg
IH07CiAKICAgICBzdHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRl
eCBlZTBlYjkzNWE2ZTVjOWY0MDcyMDVkMDZjMzQ0YjlhYmZlMWRiMDhjLi4xNjAzZDZhMDBiNTli
MmVkMmMwYTAyMDY1ZWE5MGU3MDUzNTlmYmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTU2
LDE4ICs1NiwxNyBAQCBzdGF0aWMgY29uc3QgY2hhciogc2VydmljZU5hbWUoY29uc3QgUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpbwogICAgICAgICByZXR1cm4gbGF1
bmNoT3B0aW9ucy5ub25WYWxpZEluamVjdGVkQ29kZUFsbG93ZWQgPyAiY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LkRldmVsb3BtZW50IiA6ICJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQi
OwogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6TmV0d29yazoKICAgICAg
ICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmciOwotICAgIGNhc2UgUHJvY2Vz
c0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6U3RvcmFnZToKLSNpZiBQTEFURk9STShJT1MpICYmICFQ
TEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKElPU19T
SU1VTEFUT1IpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTEwMzAwCi0g
ICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMiOwotI2Vsc2UKLSAgICAg
ICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2UiOwotI2VuZGlmCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NU
eXBlOjpQbHVnaW4zMjoKICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4z
MiI7CiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQbHVnaW42NDoKICAg
ICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NCI7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNz
VHlwZTo6UGF5bWVudDoKKyAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQi
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgZGVmYXVsdDogcmV0dXJu
IG5pbDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ODNjNWMzYTNiZTAy
YmM4ZTU2ZDljNTdlOGQ3ZTM0ODI2MTdiMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCkBAIC0wLDAgKzEs
MjMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHkuaCIKKwor
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJh
Y2tJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQ7CisKKyAgICByZXR1cm4g
KytjYWxsYmFja0lEOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1By
b3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENoaWxkUHJvY2Vzc1Byb3h5
KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQorICAgICwgbV9w
cm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1
ZXN0cygwKQoreworICAgIGNvbm5lY3QoKTsKK30KKworUGF5bWVudFByb2Nlc3NQcm94eTo6flBh
eW1lbnRQcm9jZXNzUHJveHkoKQoreworICAgIEFTU0VSVChtX3BlbmRpbmdGZXRjaFdlYnNpdGVE
YXRhQ2FsbGJhY2tzLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdlYnNp
dGVEYXRhQ2FsbGJhY2tzLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5pc0VtcHR5KCkpOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIGZvciAoYXV0byYg
Y2FsbGJhY2sgOiBtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLnZhbHVlcygpKQor
ICAgICAgICBjYWxsYmFjayh7IH0pOworCisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IG1fcGVu
ZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLnZhbHVlcygpKQorICAgICAgICBjYWxsYmFj
aygpOworCisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2luc0NhbGxiYWNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soKTsKKyAg
ICAKKyAgICBtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLmNsZWFyKCk7CisgICAg
bV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuY2xlYXIoKTsKKyAgICBtX3BlbmRp
bmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuY2xlYXIoKTsKKyAgICAKKyAg
ICB0ZXJtaW5hdGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hP
cHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sK
KyAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNz
VHlwZTo6UGF5bWVudDsKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhs
YXVuY2hPcHRpb25zKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2ls
bFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlw
ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKKworICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBnZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJRCgpOworICAgIG1fcGVu
ZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpG
ZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBjYWxsYmFja0lEKSwgMCk7Cit9
CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdh
bGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5lcmF0ZVBheW1lbnRQcm9j
ZXNzQ2FsbGJhY2tJRCgpOworCisgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFj
a3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBk
YXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKGNhblNl
bmRNZXNzYWdlKCkpOworCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlUGF5bWVu
dFByb2Nlc3NDYWxsYmFja0lEKCk7CisgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURh
dGFGb3JPcmlnaW5zKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBvcmlnaW5zLCBjYWxsYmFja0lEKSwg
MCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQoreworICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJl
cGx5KSk7CisKKyAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAg
IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdv
cmtlclByb2Nlc3MsIHNlY3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRj
aE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRQcm9jZXNzUG9vbCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBUaGUg
cGF5bWVudCBwcm9jZXNzIG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkg
cGVuZGluZyBzeW5jIHJlcGxpZXMgd2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVuZGlu
Z0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0gbV9w
ZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5JWF9ET01B
SU5fU09DS0VUUykKKyAgICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KCkpOworI2VsaWYgT1Mo
REFSV0lOKQorICAgICAgICByZXBseShJUEM6OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9N
T1ZFX1NFTkQpKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNo
bWVudCgpKTsKKyNlbHNlCisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKKyAgICB9
CisKKyAgICB3aGlsZSAoIW1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuaXNFbXB0
eSgpKQorICAgICAgICBtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLnRha2UobV9w
ZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5iZWdpbigpLT5rZXkpKFdlYnNpdGVEYXRh
IHsgfSk7CisKKyAgICB3aGlsZSAoIW1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tz
LmlzRW1wdHkoKSkKKyAgICAgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3Mu
dGFrZShtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5iZWdpbigpLT5rZXkpKCk7
CisKKyAgICB3aGlsZSAoIW1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxi
YWNrcy5pc0VtcHR5KCkpCisgICAgICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2luc0NhbGxiYWNrcy50YWtlKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0Nh
bGxiYWNrcy5iZWdpbigpLT5rZXkpKCk7CisKKyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZv
cmdldCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUg
ZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29u
c3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQo
IW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSk7CisKKyAgICBhdXRvIHJlcGx5
ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5J
WF9ET01BSU5fU09DS0VUUykKKyAgICByZXBseShjb25uZWN0aW9uSWRlbnRpZmllcik7CisjZWxp
ZiBPUyhEQVJXSU4pCisgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KGNvbm5lY3Rpb25JZGVudGlm
aWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbGlmIE9TKFdJTkRPV1Mp
CisgICAgcmVwbHkoY29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCkpOworI2Vsc2UKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0
YSYgd2Vic2l0ZURhdGEpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0ZldGNoV2Vi
c2l0ZURhdGFDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBjYWxsYmFjayh3ZWJzaXRl
RGF0YSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRGVsZXRlV2Vic2l0ZURh
dGEodWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5n
RGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBjYWxsYmFj
aygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBt
X3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MudGFrZShjYWxsYmFj
a0lEKTsKKyAgICBjYWxsYmFjaygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQcm9jZXNz
UHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIp
OworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rp
b25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFudXAgaGVy
ZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKKyAgICAgICAgc2VuZChNZXNz
YWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVz
dHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50
L1BheW1lbnRQcm9jZXNzUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWNjYWZmZjNkYTFiODc3NTdlMDIx
ZGVjM2I5NzM1ZjhlNjUwMjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCArMSw5NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFBBTCB7CitjbGFz
cyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3Jp
Z2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworZW51bSBj
bGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2NsYXNzIFBheW1l
bnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAg
ICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworCisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFM
OjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2RpZmll
ZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisKKyAgICB2b2lkIHRlcm1p
bmF0ZUZvclRlc3RpbmcoKTsKKworcHJpdmF0ZToKKyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQor
ICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMm
KSBvdmVycmlkZTsKKyAgICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9u
Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworICAgIC8vIE1l
c3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIGRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOworICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRl
RGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOworICAgIHZvaWQg
ZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWRE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CisKKyAgICAv
LyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFBy
b2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CisK
KyAgICBXZWJQcm9jZXNzUG9vbCYgbV9wcm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVkIG1fbnVt
UGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5k
aW5nQ29ubmVjdGlvblJlcGxpZXM7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhKT4+IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxs
YmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4g
bV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRf
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zQ2FsbGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MDg4ZTBjMzcwYTE5NGI3OWQ5MGJiODI3MjVlYzViMTIyZjVkNDJiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNz
YWdlcyAtPiBQYXltZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKKyAgICBEaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bklkZW50aWZpZXIpCisKKyAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQorICAgIERpZERlbGV0
ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGlkRGVsZXRlV2Vic2l0ZURh
dGFGb3JPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit9CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHAKaW5kZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uYmVj
NzliNTRjYmY2YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQgKzQ2LDExIEBAIHZvaWQg
V2ViQ29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCog
cHJvY2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShw
cm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2
ZDRlZThkNzc4ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFi
OWVkY2M4NDUzOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5oCkBAIC00NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQ
STo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lk
IG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNz
UG9vbCopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5
MzRmYTYuLjJjNmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiAr
MjksMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQ
b29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikK
ICAgICB7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmly
dHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7Cisg
ICAgfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNz
UG9vbCogcHJvY2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAg
dm9pZCBjbGVhclByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGE3MmI1NzEyZTFm
NjYyMzY2ZjQ0NGFlNDk2ZjJiMzViYzdjNDk5NmIuLjI1NDhmYzI2MGQyNjUzNTZlYmNlMTE5MGI1
NmE4NDg2MDMwMTA4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0
aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBh
ZFByb3ZpZGVyLmgiCkBAIC00NDAsNiArNDQ0LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2Vu
ZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFBy
b2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVF
dmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6
OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkp
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3Mo
TWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXND
cml0aWNhbCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRv
bigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MDQs
NiArNjExLDQ4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShy
ZXBseSkpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzQW5kV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0
YVN0b3JlKiByZWxldmFudERhdGFTdG9yZSkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3Mp
IHsKKyAgICAgICAgYXV0byBwYXJhbWV0ZXJzID0gbV93ZWJzaXRlRGF0YVN0b3JlID8gbV93ZWJz
aXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJz
KCkgOiAocmVsZXZhbnREYXRhU3RvcmUgPyByZWxldmFudERhdGFTdG9yZS0+cGF5bWVudFByb2Nl
c3NQYXJhbWV0ZXJzKCkgOiBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUo
KS0+d2Vic2l0ZURhdGFTdG9yZSgpLnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpKTsKKworICAg
ICAgICBBU1NFUlQocGFyYW1ldGVycy5zZXNzaW9uSUQuaXNWYWxpZCgpKTsKKworICAgICAgICBt
X3BheW1lbnRQcm9jZXNzID0gc3RkOjptYWtlX3VuaXF1ZTxQYXltZW50UHJvY2Vzc1Byb3h5Pigq
dGhpcyk7CisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQ
cm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShwYXJhbWV0ZXJzKSwgMCk7CisgICAg
fQorCisgICAgaWYgKCFyZWxldmFudERhdGFTdG9yZSB8fCAhbV93ZWJzaXRlRGF0YVN0b3JlIHx8
IHJlbGV2YW50RGF0YVN0b3JlID09ICZtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3Rv
cmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6UGF5bWVudFByb2Nlc3M6OkluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHJlbGV2YW50
RGF0YVN0b3JlLT5wYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKSksIDApOworfQorICAgIAordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQ
cm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzQW5kV2Vic2l0
ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ05vbkRlZmF1bHREYXRhU3RvcmVG
b3JTZXNzaW9uSUQoaW5pdGlhbFNlc3Npb25JRCkpOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+
Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBs
eSkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5
bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3NQcm94eSkKK3sKKyAgICBBU1NFUlQobV9w
YXltZW50UHJvY2Vzcyk7CisgICAgQVNTRVJUKHBheW1lbnRQcm9jZXNzUHJveHkgPT0gbV9wYXlt
ZW50UHJvY2Vzcy5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBs
ZW1lbnRzLnZhbHVlcygpKQorICAgICAgICBzdXBwbGVtZW50LT5wcm9jZXNzRGlkQ2xvc2UocGF5
bWVudFByb2Nlc3NQcm94eSk7CisKKyAgICBtX2NsaWVudC5wYXltZW50UHJvY2Vzc0RpZENyYXNo
KHRoaXMpOworCisgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCisgICAgICAgIG1fYXV0b21h
dGlvblNlc3Npb24tPnRlcm1pbmF0ZSgpOworCisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxw
dHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwg
U2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9uYWw8UEFMOjpT
ZXNzaW9uSUQ+IHNlc3Npb25JRCkKIHsKQEAgLTY4MCw2ICs3MjksOSBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJv
b2wgcHJpdmF0ZQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uUGFyYW1ldGVycygpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbmV0
d29ya1Byb2Nlc3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBzZW5k
VG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC0xMzE4LDYgKzEzNzAsMTYgQEAgUHJvY2Vz
c0lEIFdlYlByb2Nlc3NQb29sOjpuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKQogICAgIHJldHVy
biBtX25ldHdvcmtQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOwogfQogCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nl
c3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VD
b21wbGV4VGV4dCkKIHsKICAgICBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoID0gYWx3
YXlzVXNlQ29tcGxleFRleHQ7CkBAIC0xNTczLDYgKzE2MzUsMTcgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3Mp
CiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDApOwogfQorICAgIAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vz
c0ZvclRlc3RpbmcoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+dGVybWluYXRlRm9yVGVzdGluZygpOworICAg
IG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGZmOGVi
MTU3ZmVlMDM0YzVlYWU2ZjE2YTQ0MWNhNTU4ZDNiY2M5N2MuLmQ0MDVkM2E3OTg1ZWVkMGQxOGYw
ZWJkMzA0YmQ5NzI4YWRmZDlhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlz
dGljc1JlcXVlc3QuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzUHJveHkuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKQEAgLTE3Myw2ICsx
NzYsMTIgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHZv
aWQgc2VuZFN5bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlLCBVJiYgcmVwbHkpOwog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxh
dW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJvY2VzcyBvciBQYXltZW50
UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4KKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdl
KTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzUmVs
YXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKwogICAgIHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9j
ZXNzUHJveHkqKTsKIAogICAgIC8vIERpc2Nvbm5lY3QgdGhlIHByb2Nlc3MgZnJvbSB0aGUgY29u
dGV4dC4KQEAgLTIxNSw2ICsyMjQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclN1cHBvcnRl
ZFBsdWdpbnMoKTsKIAogICAgIFByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFByb2Nlc3NJRCBwYXltZW50UHJvY2Vz
c0lkZW50aWZpZXIoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAg
V2ViUGFnZUdyb3VwJiBkZWZhdWx0UGFnZUdyb3VwKCkgeyByZXR1cm4gbV9kZWZhdWx0UGFnZUdy
b3VwLmdldCgpOyB9CiAKQEAgLTI3NCw2ICsyODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sKTsKIAogICAgIHZvaWQgY2xl
YXJDYWNoZWRDcmVkZW50aWFscygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
dm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsK
ICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKICAgICB2b2lkIGRp
c2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsKQEAgLTMzOCw2ICsz
NTMsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
V2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIHZvaWQgZW5zdXJlUGF5bWVudFByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3Jl
KFdlYnNpdGVEYXRhU3RvcmUqIHJlbGV2YW50RGF0YVN0b3JlKTsKKyAgICBQYXltZW50UHJvY2Vz
c1Byb3h5KiBwYXltZW50UHJvY2VzcygpIHsgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MuZ2V0KCk7
IH0KKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkm
LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2
b2lkIHBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5Kik7CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAg
ICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3Mo
TmV0d29ya1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBzdGQ6
Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPik7CiAgICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eSogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQodWludDY0X3QgcGFnZUlEKSBj
b25zdDsKQEAgLTYyMyw2ICs2NDQsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5IYW5kbGVI
VFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbiB7IHRydWUgfTsKICAgICBib29sIG1fZGlkTmV0d29y
a1Byb2Nlc3NDcmFzaCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtQcm9j
ZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudFByb2Nlc3NQcm94eT4gbV9wYXltZW50UHJvY2Vz
czsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4+IG1fZGljdGlvbmFyeUNhbGxiYWNrczsK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+PiBtX3N0YXRp
c3RpY3NSZXF1ZXN0czsKQEAgLTcxOCw2ICs3NDIsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdl
KQogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAw
KTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
Pgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2Up
Cit7CisgICAgaWYgKG1fcGF5bWVudFByb2Nlc3MgJiYgbV9wYXltZW50UHJvY2Vzcy0+Y2FuU2Vu
ZE1lc3NhZ2UoKSkKKyAgICAgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8
VD4obWVzc2FnZSksIDApOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBt
ZXNzYWdlKQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzQW5kV2Vic2l0ZURhdGFTdG9yZShu
dWxscHRyKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNz
YWdlKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogdGVtcGxh
dGU8dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb0FsbFByb2Nlc3Nlcyhj
b25zdCBUJiBtZXNzYWdlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggYzk5NDdkYmRiMTUyYWM3ZWUyZDFjMzI0MzZhMDIxOTViZDM2ZGQ5ZC4u
NWY5NmEwZTFmMjYwNTNkZDVlMjZiMDA4NmJmNTgwODFiMTU1N2MwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02MzksNiArNjM5LDEyIEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0CiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiBy
ZXBseSkKK3sKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KnRoaXMsIGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUocmVwbHkpKTsKK30KKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogYm9vbCBXZWJQ
cm9jZXNzUHJveHk6OnBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMzMyNzRkZjVkNjFlMGJkODYzMmNl
MzA5OTM0OWE5NzYzY2ZiMzk0OC4uNDhiOThlNDAyNTkwM2QzNmE2MjcyNWQxM2UyMGFlYzk1NDJk
YmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI3
Nyw3ICsyNzcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAg
ICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7Ci0KKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgYm9vbCBwbGF0Zm9ybUlzQmVp
bmdEZWJ1Z2dlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVk
Q29kZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzJmZGE4YjBhZGNkY2FiOTUxMjhmMjY0M2IzOTk2
ZGUxM2I2ZWFjMS4uYTU1YmU1ZTIyNjVlMWU5YWQ5OGViM2EyMDU4ZjFiZTdmMDI0MTE2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMzcsNiArMzcsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2ZXIgewogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdp
blByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29s
IHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIERlbGF5ZWQKICNlbmRpZgogICAg
IEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVj
dGlvbkhhbmRsZSkgRGVsYXllZAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgR2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQp
IC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAg
ICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZjQw
NzQ2Yzk0MWY4OGUxMGNkMDYyZWE3ODNkZGZkYWQ3YmYxMTk2My4uMWEyYWExYWVkNmQyMjkzMTJk
ZDZiM2RiZDI2NDgzNjdjNTJiNzdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTM0LDYgKzM0LDEw
IEBACiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NQb29sLmgiCkBAIC0xMzUsNiArMTM5LDkgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNp
dGVEYXRhU3RvcmUoKQogICAgICAgICBBU1NFUlQobm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQo
bV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAgICBub25EZWZhdWx0RGF0YVN0b3JlcygpLnJl
bW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQ
cm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3Nh
Z2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24obV9zZXNzaW9uSUQpKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdv
cmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAgICAgICAg
ICAgbmV0d29ya1Byb2Nlc3MtPnJlbW92ZVNlc3Npb24obV9zZXNzaW9uSUQpOwogICAgICAgICB9
CkBAIC0xNjI0LDYgKzE2MzEsMTkgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbGVhclJlc291
cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGwKICAgICBjYWxs
YmFjaygpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1BheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFyYW1l
dGVycygpCit7CisgICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKKworICAgIFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisKKyAgICBwYXJhbWV0
ZXJzLnNlc3Npb25JRCA9IG1fc2Vzc2lvbklEOworCisgICAgcmV0dXJuIHBhcmFtZXRlcnM7Cit9
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gV2Vic2l0ZURhdGFTdG9yZTo6cGVuZGluZ0Nvb2tpZXMoKSBjb25zdAogewogICAgIHJl
dHVybiBjb3B5VG9WZWN0b3IobV9wZW5kaW5nQ29va2llcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOTE2
M2Q5ODk0NTExNjRjZmJiZDNhNzgwOWUyMjRhOTg2MWZmNzk3OC4uOGQxMjQwMjZmYThiOWQ3ZDAx
NWQ2YmExZGE1Yjk1OThhOWMxNTcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjIsNiArNjIsOSBAQCBj
bGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNpdGVE
YXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29yZDsKIHN0cnVj
dCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIApAQCAtMTY5LDYgKzE3Miw5IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlByb2Nlc3NQb29sJikgY29u
c3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJzKCk7CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyBwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcGVuZGluZ0Nvb2tpZXMo
KSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2ll
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmNjJlNjA0MzFiZWZiNTJhOGUwMDAxMmE3NTQ5NDY4MGE1ZmM5OTVlLi5mN2FlZTQ4ZDZh
YTc1NjM3ODY3MzY0ZjQ2M2RmY2I2NTc2NTM3OWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4NSw3ICs4ODUsNiBAQAogCQk0NjBG
NDg5MDFGOTk2RjcxMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYw
RjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVz
c2FnZXMuaCAqLzsgfTsKIAkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFF
Qjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IH07Ci0JCTQ2
NkJDMDNDMUZBMjY2REEwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY2QkMwMzkx
RkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi87IH07
CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNp
dmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNp
dmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNDZERjA2M0MxRjM5MDVGODAwMTk4MEJCIC8qIE5ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDZERjA2M0ExRjM5MDVFNTAwMTk4MEJCIC8qIE5ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlci5oICovOyB9OwogCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OwpAQCAtOTAyLDYg
KzkwMSwxMSBAQAogCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUMwQzk3OTFEREQ3ODU0MDAzMkNBRDMgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRkJCOUIxMjg4
Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAv
KiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJCTUxMTBBRTBEMTMzQzE2Q0IwMDcy
NzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTEx
OEU5QTExRjI5NTMyNjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTk5
RjFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAq
LzsgfTsKKwkJNTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CisJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5o
ICovOyB9OworCQk1MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTExRjdENDExRUIxQkNGNTAwRTQ3Qjgz
IC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0
IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGli
cmFyeS5oICovOyB9OwogCQk1MTFGOEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogU2VjSXRlbVNoaW1M
aWJyYXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSAqLzsgfTsK
QEAgLTk1Myw2ICs5NTcsNyBAQAogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdD
RjBFMzE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUw
RSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8q
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTUxN0RENUJGMTgw
REE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyog
UGF5bWVudFByb2Nlc3NQcm94eS5oICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIg
LyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICov
OyB9OwogCQk1MThBQ0FFQTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNB
RTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MThBQ0YxMTEyQjAxNUY4
MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDRjEwMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRl
bnRpYWxUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC05NjcsNyArOTcyLDYgQEAKIAkJNTFBQ0JCODIxMjdBOEJBRDAwRDIwM0I5IC8qIFdl
YkNvbnRleHRNZW51UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxQUNCQjgxMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5
LmggKi87IH07CiAJCTUxQUNCQkEwMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVBy
b3h5TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUFDQkI5RTEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oICovOyB9
OwogCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjE1QTgzMTM4
NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUxQkVCNjJDMUYzQTVBRDcwMDUwMjlC
OSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQkVCNjJBMUYzQTVBQ0QwMDUwMjlCOSAvKiBXZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIuaCAqLzsgfTsKIAkJNTFDMEM5NzQxRERENzYwMDAwMzJDQUQzIC8q
IEljb25Mb2FkaW5nRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxQzBDOTcyMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVn
YXRlLmggKi87IH07CiAJCTUxQ0QxQzVFMUIzNDkzQjQwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3Jp
Z2luUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUNEMUM1QTFCMzQ5M0E5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpblJlZi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQ0QxQzY1MUIzNEI5
RDQwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUNEMUM1RjFCMzRCOUM5MDAxNDJDQTUgLyogV0tTZWN1
cml0eU9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKQEAgLTk4MCw2ICs5ODQsOCBAQAogCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjYxNjM2N0RBMjAwMTU3
OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAv
KiBJREJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLzsgfTsK
KwkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZBMTgwRjVEMEIw
MEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi87IH07CisJCTUxRTM1MjAwMTgwRjVEMEYw
MEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MUU2QzE2
NDFGMjkzNUREMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUU2
QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlLmggKi87IH07CiAJCTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURP
TVdpbmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERF
MTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CkBA
IC0xMTg1LDcgKzExOTEsNiBAQAogCQk4M0IzQ0IxMDIwRTJBQjAxMDA0NDFFOUIgLyogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzY4MURDQTIwRTI5MDRBMDBDMjQ5Q0QgLyogUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggKi87IH07CiAJCTgzRDQ1NEQ3MUJFOUQzQzQwMDZD
OTNCRCAvKiBOZXR3b3JrTG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNENDU0RDYxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtMb2Fk
Q2xpZW50LmggKi87IH07CiAJCTgzRUU1NzVDMURCN0Q2MTEwMEM3NEM1MCAvKiBXZWJWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFRTU3NUExREI3RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50LmggKi87IH07Ci0JCTgzRjFBMDdBMUY5NkU3NzkwMDQ1Qjk0RSAvKiBXZWJTV09yaWdp
blRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0YxQTA3ODFGOTZFNzcxMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovOyB9OwogCQk4
M0Y5NjQ0RTFGQTBGNzZFMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjk2NDRD
MUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oICovOyB9
OwogCQk4NDQ3Nzg1MzE3NkZDQzA4MDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVz
dWx0TWVkaWFUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDQ3Nzg1MTE3NkZDQUMxMDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVz
dWx0TWVkaWFUeXBlLmggKi87IH07CiAJCTg2RTY3QTI1MTkxMEI5RDEwMDAwNEFCNyAvKiBQcm9j
ZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkU2N0EyMTE5MEY0MTE4MDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oICovOyB9
OwpAQCAtMTE5OCw3ICsxMjAzLDYgQEAKIAkJOTMyNjExNjEyMTQwNTRGNDAwMDgwNkU3IC8qIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5Mjg4REQyMTQwNEQ2QzAwRUJCQTMzIC8qIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oICovOyB9OwogCQk5MzNERjgyRTFCM0JDMDkwMDBBRUE5RTMgLyogV0tJbWFn
ZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMzREY4MkQxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3
Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdL
QWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1U
eXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0Nzkz
QjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQy
MTUyQjZGNjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVG
IC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJERTIxNTJCNzEwMDBF
NkQ1REYgLyogV2ViU1dPcmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2lu
U3RvcmUuaCAqLzsgfTsKIAkJOTM1NkYyREYyMTUyQjcyMzAwRTZENURGIC8qIFdlYlNXT3JpZ2lu
U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNCQTA0REYyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwICovOyB9OwpA
QCAtMTU0OSw2ICsxNTUzLDcgQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5
NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJC
MzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhG
NTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAq
LzsgfTsKKwkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMx
OTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovOyB9OwogCQlFMTFEMzVB
RTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3RTM3MTUwQUI1RTIwMEM3
MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJRTE0QTk1NEExNkUwMTZB
NDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0MDA2
OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJRTE1
MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NTE2NkVBQkIyMDAxNDlG
Q0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCAqLzsgfTsKQEAgLTI5NTEsNiArMjk1NiwyMyBAQAog
CQkzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzN0ZDMTk0ODE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
N0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwMjIxOTM3
NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDAzMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0Ns
aWVudENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dD
bGllbnRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDA0
MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDA1MjE5Mzc2MDgwMDU2NDkyQSAvKiBTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VydmljZVdvcmtlckNsaWVudEZldGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM5MTM2MDA2MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkx
MzYwMDcyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2
MDA4MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luVGFibGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwOTIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGll
bnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzkxMzYwMEEyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwQjIx
OTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwQzIxOTM3NjA4
MDA1NjQ5MkEgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEQyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNXT3JpZ2luVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dP
cmlnaW5UYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwRTIxOTM3
NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBGMjE5Mzc2MDgwMDU2NDkyQSAvKiBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDEwMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzOTEzNjAxMTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYw
MTIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1
RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y0MThFRjYxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZE
IC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjk5
NSwxMCArMzAxNyw2IEBACiAJCTQxMzA3NUE2MURFODVFRTcwMDM5RUM2OSAvKiBMaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJU
Q1NvY2tldEZhY3RvcnkuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1QTcxREU4NUVFNzAw
MzlFQzY5IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbGluZUVuZGluZyA9IDA7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5jcHA7IHBhdGgg
PSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3Bw
OyB9OwogCQk0MTMwNzVBODFERTg1RUU3MDAzOUVDNjkgLyogTGliV2ViUlRDUHJvdmlkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgbmFtZSA9IExpYldlYlJU
Q1Byb3ZpZGVyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKLQkJNDEzMUYzQ0UxRjk2QTQ5NTAwNTk5OTVBIC8qIFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNDEzMUYzQ0YxRjk2QTkzNjAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2gubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMzFGM0QwMUY5
NkJDQzgwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEzMUYzRTAxRjk4NzEyQzAwNTk5OTVBIC8q
IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzVGQkNGMUY0RkI3RjIwMDc0QzQ3QiAvKiBD
YWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEzNUZCRDAxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2lu
ZUNhY2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VF
bmdpbmVDYWNoZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzQ0NENEYyMERF
QkMyRjAwNjVBMjFBIC8qIGNvbS5nb29nbGUuZ29vZ2xldGFsa2Jyb3dzZXJwbHVnaW4uc2IgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5nb29nbGV0YWxrYnJvd3NlcnBsdWdpbi5z
Yjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMTEsNiArMzAyOSw3IEBACiAJCTQx
NTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2Ig
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1NDIxMTM3NzcwMDAxMkFCQ0QgLyog
cHJvY2Vzcy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQuc2g7IHBhdGggPSAicHJvY2Vzcy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNo
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTYyMTEzNzdFODAwMTJBQkNE
IC8qIHByb2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBw
YXRoID0gInByb2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxODhDMTU3MjExMzc4NTIwMDEyQUJDRCAvKiBQYXlt
ZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRs
ZW1lbnRzOyBwYXRoID0gIlBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTgyMTEzNzg1MjAwMTJBQkNEIC8qIFdlYkNv
bnRlbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRp
dGxlbWVudHM7IHBhdGggPSAiV2ViQ29udGVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VDQjFGNDE1RDVDMDAxNkZBNDIgLyog
V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTg5N0VDQzFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzAyMSw3ICszMDQwLDYgQEAKIAkJNDE4OTdFRDQxRjQxNUQ4
NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTg5N0VENTFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENjFGNDE1RDg2
MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENh
Y2hlU3RvcmFnZUVuZ2luZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOUFD
RjlCMUY5ODFEMjYwMDlGMUE4MyAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBQzg2ODExRTA0MkU1
MzAwMzAzMDc0IC8qIFdlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bGluZUVuZGluZyA9IDA7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbjsgcGF0aCA9
IE5ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSAiPG5vbmU+Ijsg
fTsKIAkJNDFCMjhCMDgxRjgzQUQzRTAwRkI1MkFDIC8qIFJUQ1BhY2tldE9wdGlvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUGFja2V0T3B0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUIyOEIwOTFGODNBRDNFMDBGQjUyQUMgLyogUlRDUGFj
a2V0T3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENQ
YWNrZXRPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTcsOSAr
MzA3NSw2IEBACiAJCTQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNGRDQ4
MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjUyNTBFNTFFQ0Y1MkNEMDAyMDI1Q0IgLyogV2Vi
S2l0MkluaXRpYWxpemVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYktpdDJJbml0aWFsaXplQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NjZCQzAzQTFGQTI2
NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA2MUU1Njc1QTIw
MEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNwb25z
aXZlbmVzc1RpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDcx
RTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3Bv
bnNpdmVuZXNzVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2Mzkx
RjM5MDVFNTAwMTk4MEJCIC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA3Nyw2ICszMDkyLDcgQEAK
IAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2Vj
SXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMDMyRjFBMTgwRjc0
RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNEY1QTExRjE5RDdDRjAwNENGODIxIC8qIENvb2tpZVN0
b3JhZ2VVdGlsc0NGLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q29va2llU3RvcmFnZVV0aWxzQ0YubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MDUyMzcxMUM3M0QyMkIwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MjFDNzNEMzdC
MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MDk5LDEyICszMTE1LDEyIEBACiAJCTUxMEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bnRleHRNZW51SXRlbURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEFF
MEExMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVByb2Nl
c3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUEz
MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUx
MThFOUE0MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTUxRjI5NTk2MzAw
M0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNz
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3Rv
cmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTExOEU5OUUxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5
OUYxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE1MUYy
OTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDNGMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGOEE3NzEzOEI0
NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFNlY0l0ZW1TaGltTGlicmFyeS5oOyBwYXRoID0gLi4vLi4vV2ViUHJvY2Vz
cy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zMTIyLDYgKzMxMzgsNyBAQAogCQk1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29u
dGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRl
eHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEyODhE
OTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVF
MjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYx
ODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEyRjU4OEUxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MkY1ODhGMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OTAxMkE4ODM4ODAw
NjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE4MywxNSArMzIwMCwxNCBAQAog
CQk1MTdBMzNCNDEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MkQ2MUY0M0E5QjYwMERD
REMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNTJENzFGNDNBOUI2MDBEQ0RDMEEgLyogV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViU1dDbGllbnRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTUxN0E1MzAzMUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE3QTUzMEMxRjQ3OUU5NzAwRENE
QzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxN0E1MzBEMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENv
bm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
V0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNX
Q2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRCAvKiBXZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMw
MEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3
REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
eW1lbnRQcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0Iz
OTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gU2hpbS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRl
eHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjExLDYgKzMyMjcsNyBAQAogCQk1
MUE1NTYwMDEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBX
ZWJJREJSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
SURCUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFD
NENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJJREJSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFB
NjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUE3MjhEQzFCMUJBRDJEMDAxMDJFRUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9u
UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5hdmln
YXRpb25BY3Rpb25Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdG
MkYyMTI1QkY4MjAwMDhBRUIxRCAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0Yy
RjQxMjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zMjI4LDggKzMyNDUsNiBAQAogCQk1MUFDQzkzNTE2MjgwNjQ4MDAzNDI1NTAgLyogTmV0d29y
a1Byb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjE1
QTgyMTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnZpcm9ubWVudFV0aWxpdGllcy5jcHA7IHBh
dGggPSB1bml4L0Vudmlyb25tZW50VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFCMTVBODMxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEVudmlyb25tZW50VXRpbGl0aWVz
Lmg7IHBhdGggPSB1bml4L0Vudmlyb25tZW50VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTUxQkVCNjI5MUYzQTVBQ0QwMDUwMjlCOSAvKiBXZWJTZXJ2aWNlV29ya2Vy
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFCRUI2MkExRjNBNUFDRDAwNTAy
OUI5IC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDMEM5
NzIxRERENzRGMDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUMwQzk3MzFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdE
ZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEljb25M
b2FkaW5nRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQzBDOTc5
MURERDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLTGlua0ljb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zMjcwLDYgKzMyODUsMTEgQEAKIAkJNTFERDlGMjcxNjM2N0RB
MjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzNTFDODE4MEYy
Q0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IElEQlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vz
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZF
MTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJv
dmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJ
R2FtZXBhZFByb3ZpZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTZDMTVGMUYyOTM1NTEwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHBhdGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNp
c3RlbnRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJz
aXN0ZW50U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY1Myw4ICsz
NjczLDYgQEAKIAkJODNENDU0RDYxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1NzU5MURCN0Q2MDYwMEM3NEM1MCAv
KiBXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1NzVBMURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
M0YxQTA3NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNX
T3JpZ2luVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dPcmln
aW5UYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Y5NjQ0QjFGQTBGNzYy
MDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3
NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM4MzAsNyArMzg0OCw2IEBACiAJCUE1RDM1MDREMUQ3OEYw
RDIwMDUxMjRBOSAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUVGRDM4QjE2QjBFODhDMDBCMkYwRTgg
LyogV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLUGFnZVZpc2liaWxpdHlUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUgLyogQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUND
MjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQu
U3RvcmFnZS5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4Q0NERDgxOTNBQzlF
MzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBw
bGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
OENDREQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Ig
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBN0JEOTg2MzE5NDY1M0Q0MDBEMzU2OTggLyogRGF0YWJhc2VzLWlPUy5lbnRp
dGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0aCA9ICJEYXRhYmFzZXMtaU9TLmVudGl0
bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MzQ5LDcgKzQzNjYsNiBA
QAogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBO
YXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nUmFuZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5X
ZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2Uuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMzNGRDg5MTQyM0RE
N0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGltYWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9
IFJlc291cmNlcy9XZWJLaXQuaWNuczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0
QTk1NDcxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0
QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00Mzk0LDYgKzQ0
MTAsNyBAQAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFG
OENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYzOUMxOTBGNzkx
QzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRy
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUzNjAg
LyogTmV0d29ya0NhY2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTmV0d29ya0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDU2OCw2ICs0NTg1LDcgQEAKIAkJCQkxQUFE
REY0QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYw
MDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8q
IFdlYlByb2Nlc3MgKi8sCisJCQkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQ
cm9jZXNzICovLAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vz
cyAqLywKIAkJCQkxQTBFQzZCMDEyNEJCRDM2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2VzcyAqLywK
IAkJCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLApAQCAt
NDc2OSw2ICs0Nzg3LDggQEAKIAkJCQk3QzBCQjlBOTE4RENERjVBMDAwNkMwODYgLyogTmV0d29y
ay1pT1MuZW50aXRsZW1lbnRzICovLAogCQkJCTQxRDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAvKiBO
ZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyAqLywKIAkJCQlCQzgyODNBQjE2QjRCRUFE
MDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2UueGNjb25maWcgKi8sCisJCQkJNDE4OEMxNTcyMTEz
Nzg1MjAwMTJBQkNEIC8qIFBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAorCQkJ
CTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywK
IAkJCQlBMUVERDJEQjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25m
aWcgKi8sCiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIu
eGNjb25maWcgKi8sCiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZp
Y2UuNjQueGNjb25maWcgKi8sCkBAIC00OTI2LDYgKzQ5NDYsNyBAQAogCQkJCTUxNUJFMUFFMUQ1
OTAwMzQwMEREN0M2OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZE
QiAvKiBpb3MgKi8sCiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJ
CQk1MTE4RTk5RDFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEy
NzlEQ0Q0MDA4NTI0MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1
RUQgLyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAv
KiBXZWJzaXRlRGF0YSAqLywKQEAgLTYyMDAsNiArNjIyMSwzMCBAQAogCQkJcGF0aCA9IFJlc291
cmNlcy9tYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEzNjAwMTIx
OTM3NjA4MDA1NjQ5MkEgLyogU3RvcmFnZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMzkxMzYwMEUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaC5jcHAgKi8sCisJCQkJMzkxMzYwMDUyMTkzNzYwODAwNTY0OTJBIC8qIFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oICovLAorCQkJCTM5MTM2MDExMjE5Mzc2MDgwMDU2NDky
QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYw
MDcyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3Bw
ICovLAorCQkJCTM5MTM2MDBBMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50LmggKi8sCisJCQkJMzkxMzYwMTIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5jcHAgKi8sCisJCQkJMzkxMzYwMDQyMTkzNzYwODAwNTY0OTJB
IC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oICovLAorCQkJCTM5MTM2MDAyMjE5Mzc2MDgw
MDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MTM2MDAzMjE5
Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLywKKwkJCQkzOTEzNjAw
OTIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICov
LAorCQkJCTM5MTM2MDBCMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAgKi8sCisJCQkJMzkxMzYwMTAyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8sCisJCQkJMzkxMzYwMDYyMTkzNzYwODAwNTY0OTJB
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTM5
MTM2MDA4MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLywKKwkJCQkz
OTEzNjAwRDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovLAorCQkJCTM5
MTM2MDBGMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5j
cHAgKi8sCisJCQkJMzkxMzYwMEMyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFN0b3JhZ2U7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyogd2Vi
cnRjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTYzOTQs
MjYgKzY0MzksMTMgQEAKIAkJCXBhdGggPSBOZXR3b3JrOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKLQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8gPSB7
CisJCTUxMThFOTlEMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTMxRjNEMDFGOTZCQ0M4MDA1OTk5NUEg
LyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLywKLQkJCQk0MTMxRjNDRTFGOTZBNDk1
MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmggKi8sCi0JCQkJNDEzMUYzQ0Yx
Rjk2QTkzNjAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbiAq
LywKLQkJCQk0MTMxRjNFMDFGOTg3MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudC5jcHAgKi8sCi0JCQkJNDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLywKLQkJCQk1MUJFQjYyOTFGM0E1QUNEMDA1
MDI5QjkgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCAqLywKLQkJCQk1MUJFQjYyQTFG
M0E1QUNEMDA1MDI5QjkgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggKi8sCi0JCQkJNTE3
QTUzMDMxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgKi8sCi0J
CQkJNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICov
LAotCQkJCTUxN0E1MzBDMUY0NzlFOTcwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gKi8sCi0JCQkJNDY2QkMwMzgxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLywKLQkJCQk0NjZCQzAzOTFGQTI2NkM5MDAyRkE5
QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLywKLQkJCQk0NjZCQzAzQTFG
QTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCi0JCQkJODNGMUEwNzcxRjk2RTc3MDAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUu
Y3BwICovLAotCQkJCTgzRjFBMDc4MUY5NkU3NzEwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxl
LmggKi8sCisJCQkJNTExOEU5OUUxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKKwkJCQk1MTE4RTk5RjFGMjk1MzFGMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJCSk7Ci0JCQlwYXRoID0g
U3RvcmFnZTsKKwkJCXBhdGggPSBQYXltZW50OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKIAkJNTExRjhFREExODA4ODE2NjAwNDdEQTk2IC8qIEluZGV4ZWREQiAqLyA9IHsKQEAg
LTY1MTksNiArNjU1MSwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50ICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdERDVCQzE4MERB
N0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8sCisJCQkJNTE3REQ1QkQx
ODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLywKKwkJCQk1MTJBOTc2
NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLywK
KwkJCSk7CisJCQlwYXRoID0gUGF5bWVudDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NTc1LDYgKzY2MTcsMjAg
QEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1
MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1
OCAvKiBpb3MgKi8sCisJCQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9j
ZXNzLmNwcCAqLywKKwkJCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nl
c3MuaCAqLywKKwkJCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3Mu
bWVzc2FnZXMuaW4gKi8sCisJCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCQk1MTAzMkYxQTE4
MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRQcm9jZXNzOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTM5QkQ1QjIxREFEQjBCQTAwRjJFNEUxIC8qIGNhcHR1cmUg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjk3OCw3ICs3
MDM0LDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTc4Q0NE
RDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLywK
LQkJCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
LnNiICovLAogCQkJCUE3OENDREQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0
LldlYkNvbnRlbnQuc2IgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKQEAgLTcwMjcsNyArNzA4
Miw3IEBACiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJ
MzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJ
CTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAotCQkJCTUxMThFOTk4MUYy
OTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAorCQkJCTM5MTM2MDAxMjE5Mzc2MDgwMDU2NDky
QSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29u
dGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRp
b24gKi8sCiAJCQkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICov
LApAQCAtNzE4Miw2ICs3MjM3LDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBDNjUwQzUgLyog
bWFjICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3b3JrICovLAogCQkJ
CTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovLAorCQkJCTUxN0RE
NUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50ICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQw
MDgyMTlEMyAvKiBQbHVnaW5zICovLAogCQkJCTJEMTU1MUE5MUY1QTlCNDIwMDA2RTNGRSAvKiBS
ZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFBRjA4OUUxOTI2ODFBQzAwQjYzOTBDIC8qIFVzZXJD
b250ZW50ICovLApAQCAtODI0MCw3ICs4Mjk2LDYgQEAKIAkJCQk1MUZBRUMzNzFCMDY1NzMxMDAw
OUM0RTcgLyogQ2hpbGRQcm9jZXNzTWVzc2FnZXMuaCAqLywKIAkJCQlFMTdBRTJDMjE2QjlDNjNB
MDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiAqLywKIAkJCQk3
QTE1MDY3MjFERDU2Mjk4MDAxRjRCNTggLyogY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9u
LnNiICovLAotCQkJCUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBs
ZS5XZWJQcm9jZXNzLnNiICovLAogCQkJCTFBQjdENjE3MTI4OEI5RDkwMENGRDA4QyAvKiBEb3du
bG9hZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUI3RDYxODEyODhCOUQ5MDBD
RkQwOEMgLyogRG93bmxvYWRQcm94eU1lc3NhZ2VzLmggKi8sCkBAIC04MjczLDYgKzgzMjgsMTAg
QEAKIAkJCQk1QzBCMTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VzLmggKi8sCiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1
MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUx
MThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNC
RUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKIAkJCQlDREEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFu
YWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04MzA3LDEy
ICs4MzY2LDYgQEAKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFN
YXBNZXNzYWdlcy5oICovLAogCQkJCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCMzFBOTUxNkJDNjg4MTAwRjZE
QkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKLQkJCQk1MTE4RTlBNTFGMjk1OTYz
MDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAotCQkJCTUx
MThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8sCi0J
CQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAotCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdl
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKLQkJCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUg
LyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAot
CQkJCTUxMThFOUE0MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDRDQ5MUIwQzFF
NzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovLAog
CQkJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg1OTEsNiArODY0NCwxNCBAQAogCQkJbmFt
ZSA9IFBERjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxRkVGMzlCMTkw
Rjc5MUMwMDczMTY1OCAvKiBpb3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lP
Uy5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJRTQ4OUQyODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkwNTYsNiArOTExNywxMCBAQAog
CQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFz
dGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBMTFGMjk1MzI2MDAzRUY5
RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFBy
b2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzFF
MTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5o
IGluIEhlYWRlcnMgKi8sCkBAIC05Mzg1LDcgKzk0NTAsNiBAQAogCQkJCTQxREM0NTlGMUUzREJE
QTUwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMzYxRDcz
MTkyN0ZBMzYwMDM2QTU5RCAvKiBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNTFCRUI2MkMxRjNBNUFENzAwNTAyOUI5IC8qIFdlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM4REQzODAxRkU0NTIxNjAw
RjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0
ODMyRDcxQTlDREY5NjAwOEI0REZFIC8qIFdlYnNpdGVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTQ4MzJEMTFBOUJEQzJGMDA4QjRERkUgLyogV2Vic2l0ZURhdGFSZWNvcmQuaCBpbiBIZWFk
ZXJzICovLApAQCAtOTM5NCwxMyArOTQ1OCwxMCBAQAogCQkJCTBFREU4NTAzMjAwNEU3NUQwMDAz
MDU2MCAvKiBXZWJzaXRlUG9wVXBQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNjAzNEEw
MUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdlTmFtZXNwYWNl
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVERiAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzEwMUY0
N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjBGNDg5MDFGOTk2RjcxMDBDRjRC
ODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzExQTlFQ0MyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3aXRjaGluZ0dQVUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NkYyREUyMTUyQjcxMDAwRTZENURGIC8qIFdlYlNX
T3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzRjFBMDdBMUY5NkU3NzkwMDQ1Qjk0
RSAvKiBXZWJTV09yaWdpblRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzU2RjJERDIxNTJC
NkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTdBNTJEOTFGNDNBOURBMDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNTI2MkJDMUZCOTUxNUQwMDcwRTU3OSAvKiBXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MDI1NSw3ICsxMDMxNiw2IEBACiAJCQlmaWxlcyA9ICgKIAkJCSk7CiAJCQlpbnB1dFBhdGhzID0g
KAotCQkJCSIkKFNSQ1JPT1QpL1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuU3RvcmFnZS5zYiIsCiAJCQkJIiQoU1JDUk9PVCkvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIiwKIAkJCQkiJChTUkNS
T09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IiLAogCQkJKTsKQEAgLTEwNjQ1LDYgKzEwNzA1LDExIEBACiAJCQkJMkQ5MTM0NDcy
MTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZhcmlhbnRE
YXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQ
YXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBF
Q0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlB
ODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDAx
ODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJB
MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8q
IFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmgKaW5kZXggOGZlOWNiOWMwYzA0MDI4MzFjOThlMGY2ZDBjZTY3ZjBlYjE0
NDIwMC4uNDAyM2RjMzU2Y2Y2OWUxMzQ3MGJlOTA4MWRjZTgzNmY1YjcwNTY0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTc5LDcgKzc5LDYgQEAg
cHVibGljOgogICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcj46OnJlZigpOyB9CiAgICAgdm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgUmVm
Q291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+OjpkZXJlZigpOyB9CiAKLSAgICAvLyBN
ZXNzYWdlcyByZWNlaXZlZCBmcm9tIE5ldHdvcmsgUHJvY2VzcwogICAgIHZvaWQgZGlkRGVsZXRl
RGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkT3Bl
bkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEFi
b3J0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmNwcAppbmRleCA5OTc4NmQ1MTNiMTI4OTQ2NzE3ZGJjMjgxY2E0NzQ5MGRkMWFh
ODQzLi4yZGM0NTM3MDQ1NmNiYjZiNjg5YmY0M2RmODE0MmYxN2ExNGY0MmUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24mPigqY29udGV4dE1hbmFnZXJDb25uZWN0aW9uKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgorI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogICAgIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApp
bmRleCAyYmZhZWU0NzZlMWY0YmNjY2RiMjY2MGZlNWQ4ZTY2YmQ2NzRhM2Q3Li43Mjk5NzE1OTNj
NzI1MTllODZlYTZiZmEyZGY4MTNhMDhhNWFmZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtODks
NyArODksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJv
bWlzZShjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JikgZmluYWw7
CiAKLSAgICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySm9iRGF0YSYpOworICAgIHZvaWQgc2NoZWR1bGVQYXltZW50Sm9iKGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKICAgICB2b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1w
b3J0KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKaW5kZXggYWZkYjQzNjUwYjM0M2IyNWQxNDMzMmQwMGNhYjc1YTEzNjg0
NDBlNS4uYjM3MWVjMDdhNzVmNTU1NTVlNzBjNTA4YjQ3OWNjOGY2NDBiOTNhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMTMyLDM0ICsxMzIsMzQgQEAgdm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6dXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25z
dCBXZWJQcmVmZXJlbmNlc1MKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFNlcnZlclRpbWluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpzZXJ2ZXJUaW1pbmdFbmFibGVkS2V5KCkpKTsKICAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldElzU2VjdXJlQ29udGV4dEF0dHJp
YnV0ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpp
c1NlY3VyZUNvbnRleHRBdHRyaWJ1dGVFbmFibGVkS2V5KCkpKTsKIAotICAgIG1fc3RvcmFnZUJs
b2NraW5nUG9saWN5ID0gc3RhdGljX2Nhc3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeT4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0
b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpKSk7CisvLyAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGlj
eSA9IHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0
b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptX3N0b3JhZ2VCbG9j
a2luZ1BvbGljeSgpKSk7CiB9CiAKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0
YSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBMT0coU2VydmljZVdvcmtlciwgIldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlciBmb3Igd29ya2Vy
ICVzIiwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7Ci0g
ICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCi0gICAgICAgIFdlYlNvY2tldFByb3Zp
ZGVyOjpjcmVhdGUoKSwKLSAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZSgpLAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRl
cigpCi0gICAgfTsKKy8vICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uIHsK
Ky8vICAgICAgICBjcmVhdGVFbXB0eUVkaXRvckNsaWVudCgpLAorLy8gICAgICAgIFdlYlNvY2tl
dFByb3ZpZGVyOjpjcmVhdGUoKSwKKy8vICAgICAgICBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRl
cjo6Y3JlYXRlKCksCisvLyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9y
YWdlUHJvdmlkZXIoKQorLy8gICAgfTsKIAotICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VD
b25maWd1cmF0aW9uKTsKKy8vICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VDb25maWd1cmF0
aW9uKTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIHBhZ2VDb25maWd1cmF0
aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0ZSht
X3BhZ2VHcm91cElEKTsKKy8vICAgIHBhZ2VDb25maWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIg
PSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0ZShtX3BhZ2VHcm91cElEKTsKICNlbmRp
ZgogCiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0
byBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAgICAgLy8gSWYgaXQgd2Vy
ZW4ndCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5jZSBvbiBX
ZWJEb2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4KICAgICBhdXRvIGZy
YW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNl
V29ya2VySUQsIG1fdXNlckFnZW50KTsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGll
bnRGb3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKKy8vICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50Lmdl
dCgpOwogICAgIG1fbG9hZGVycy5hZGQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpOwogCi0g
ICAgYXV0byBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OmNyZWF0ZShXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc2Vzc2lvbklELCBT
dHJpbmcgeyBtX3VzZXJBZ2VudCB9LCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3Jh
Z2VQcm92aWRlcigpLCBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSk7Ci0gICAgU1dDb250ZXh0TWFu
YWdlcjo6c2luZ2xldG9uKCkucmVnaXN0ZXJTZXJ2aWNlV29ya2VyVGhyZWFkRm9ySW5zdGFsbChX
VEZNb3ZlKHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkpOworLy8gICAgYXV0byBzZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkgPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZShXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc2Vzc2lvbklELCBTdHJpbmcgeyBtX3VzZXJBZ2Vu
dCB9LCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVBheW1lbnRQcm92aWRlcigpLCBtX3Bh
eW1lbnRCbG9ja2luZ1BvbGljeSk7CisvLyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24o
KS5yZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFdURk1vdmUoc2VydmljZVdv
cmtlclRocmVhZFByb3h5KSk7CiAKICAgICBMT0coU2VydmljZVdvcmtlciwgIkNvbnRleHQgcHJv
Y2VzcyBQSUQ6ICVpIGNyZWF0ZWQgd29ya2VyIHRocmVhZFxuIiwgZ2V0Q3VycmVudFByb2Nlc3NJ
RCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IGU4NzNmZmZkMmE4
YzcwMWFlODY5MDVjZTllNTcwNGYxYTdiOWM5YjQuLjNhMjAzMGQ1ZjcxMmU4MzkyZGQ0ZDhiZjBm
ZjQ5MjBiYmRkZTRlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtOTYs
NyArOTYsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OwogICAgIHVp
bnQ2NF90IG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgeyAwIH07CiAKLSAgICBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5IHsgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxs
b3dBbGxTdG9yYWdlIH07CisvLyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6UGF5bWVudEJs
b2NraW5nUG9saWN5IG1fcGF5bWVudEJsb2NraW5nUG9saWN5IHsgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OlBheW1lbnRCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGxQYXltZW50IH07CiAKICAgICBI
YXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+PiBt
X2xvYWRlcnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgRmluZENsaWVudEJ5SWRlbnRpZmllckNh
bGxiYWNrPiBtX2ZpbmRDbGllbnRCeUlkZW50aWZpZXJSZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJv
dmlkZXIuY3BwCmluZGV4IDBlOWU2Y2E4M2M2NTZjMTBiMGRiZThkZmRjYzVkOWNkZWFmNGJjNjku
LjYyZDk5OTNlOGMyOTdjODRiOTAyMGY3MmZkZmJkNTA4M2Y5ZDBhMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIldlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIm4K
ICNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nh
Y2hlZFJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb24uaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VlNzg4OTY0ODc5YjliOTc2
ZGI0OWFlMDNlYTJkNWJhMGQ0NjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0w
LDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgor
ICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisKKworI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNs
aWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPm9wZW4oKTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246On5X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZh
bGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpOworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiYmUyMGFiZjZiZDM0NmM2YjFkYzJlNzE1ZTMxMGVkM2Q1ZjMyNTMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgor
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbigpOworICAgIAorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJu
IG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6
OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6
TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRf
dCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjljMjMzNWY3OTFkMjg4Zjk1ZWMwMGFi
OGYzMTc3ZWEyNWI1MDQwYS4uMjVmMmM4NWYxNjhhN2RkMmE0YWYzMTFlYmFhOTExMDY5MDA5YzUy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiArNDMs
OSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMu
aCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlVzZXJEYXRh
LmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldl
YkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAjaW5jbHVkZSAiV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldl
YnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTY3NCw3ICs2ODAsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24mPigqY29udGV4dE1hbmFnZXJDb25uZWN0aW9uKS5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgor
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogICAgIExPR19FUlJPUigiVW5oYW5k
bGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmco
KS5kYXRhKCkpOwogfQpAQCAtMTIxNyw2ICsxMjIzLDUwIEBAIFdlYkxvYWRlclN0cmF0ZWd5JiBX
ZWJQcm9jZXNzOjp3ZWJMb2FkZXJTdHJhdGVneSgpCiB7CiAgICAgcmV0dXJuIG1fd2ViTG9hZGVy
U3RyYXRlZ3k7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vz
czo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKG1fd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24pOworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uID09IGNvbm5lY3Rpb24pOworCisgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
biA9IG51bGxwdHI7Cit9CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9j
ZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBp
bml0aWFsU2Vzc2lvbklEKQoreworICAgIGlmICghbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbikgeworICAgICAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlm
aWVyOworCisgICAgICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGlu
aXRpYWxTZXNzaW9uSUQpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllciksIDApKSB7
CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgICAgICAgICAvLyBHVEsr
IGFuZCBXUEUgcG9ydHMgZG9uJ3QgZXhpdCBvbiBzZW5kIHN5bmMgbWVzc2FnZSBmYWlsdXJlLgor
ICAgICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRoZSBwYXltZW50IHByb2Nl
c3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hpbGUgdGhlCisgICAgICAg
ICAgICAvLyBjb25uZWN0aW9uIGlzIGJlaW5nIGRvbmUsIHNvIHdlIGFsd2F5cyB3YW50IHRvIGV4
aXQgaW5zdGVhZCBvZiBjcmFzaGluZy4KKyAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMzQ4LgorICAgICAgICAgICAgZXhpdCgwKTsK
KyNlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworI2VuZGlmCisgICAgICAgIH0KKworI2lmIFVT
RShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucmVs
ZWFzZUZpbGVEZXNjcmlwdG9yKCk7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgICAgIElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXIucG9ydCgpKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXIuaGFuZGxlKCkpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisjZW5kaWYKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAg
ICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJl
dHVybiAqbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNz
aWJpbGl0eShib29sIGZsYWcpCiB7CkBAIC0xNjc4LDkgKzE3MjgsOSBAQCBMaWJXZWJSVENOZXR3
b3JrJiBXZWJQcm9jZXNzOjpsaWJXZWJSVENOZXR3b3JrKCkKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiB2b2lkIFdlYlByb2Nlc3M6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9u
VG9OZXR3b3JrUHJvY2Vzcyh1aW50NjRfdCBwYWdlR3JvdXBJRCwgdWludDY0X3QgcGFnZUlELCBj
b25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNl
c3Npb25JRCkKIHsKLSAgICAvLyBXZSBhcmUgaW4gdGhlIFNlcnZpY2UgV29ya2VyIGNvbnRleHQg
cHJvY2VzcyBhbmQgdGhlIGNhbGwgYmVsb3cgZXN0YWJsaXNoZXMgb3VyIGNvbm5lY3Rpb24gdG8g
dGhlIE5ldHdvcmsgUHJvY2VzcwotICAgIC8vIGJ5IGNhbGxpbmcgZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLiBTV0NvbnRleHRNYW5hZ2VyIG5lZWRzIHRvIHVzZSB0aGUgc2FtZSB1bmRl
cmx5aW5nIElQQzo6Q29ubmVjdGlvbiBhcyB0aGUKLSAgICAvLyBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24gZm9yIHN5bmNocm9uaXphdGlvbiBwdXJwb3Nlcy4KKyAgICAvLyBXZSBhcmUgaW4gdGhl
IFNlcnZpY2UgV29ya2VyIGNvbnRleHQgcHJvY2VzcyBhbmQgdGhlIGNhbGwgYmVsb3cgZXN0YWJs
aXNoZXMgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIFBheW1lbnQgUHJvY2VzcworICAgIC8vIGJ5IGNh
bGxpbmcgd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uIFNXQ29udGV4dE1hbmFnZXIgbmVl
ZHMgdG8gdXNlIHRoZSBzYW1lIHVuZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uIGFzIHRoZQorICAg
IC8vIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIGZvciBzeW5jaHJvbml6YXRpb24gcHVy
cG9zZXMuCiAgICAgYXV0byYgaXBjQ29ubmVjdGlvbiA9IGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24o
KS5zZXRDb25uZWN0aW9uKHN0ZDo6bWFrZV91bmlxdWU8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24+KGlwY0Nvbm5lY3Rpb24sIHBhZ2VHcm91cElELCBwYWdlSUQsIHN0b3JlKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAzZDIxY2M4ODNhNTI2NDFhNDBh
YzEzOTljMWEyZjk5Y2Q0N2JkNTdkLi40NTRhOTFiNmQxZTkwNzczYWQxNzMyMDA4NDA4OTkwMDE2
M2YwNzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4LDYgKzk4
LDkgQEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2Vi
UGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFU
eXBlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdy
b3VwRGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2ViUlRDTmV0
d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24m
IGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRp
YWxTZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2
b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2
YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDMwLDYgKzQzOCwxMCBA
QCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk+IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA2ODllZDAwYmRiMGY1ZTU5
YWJlZmE3NzI2NWMwZDRmMmEyNDk3MzNiLi43YTI4NTcyN2ViNjU3MjkyZGQwMTc0YTZiOTA3ZWM4
NWJlNTJkZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNzQsNiArNzQsOCBA
QCBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBob25lb3MgPSBFTkFCTEVfQ09OVEVOVF9GSUxU
RVJJTkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBob25lc2ltdWxhdG9yID0gRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX21hY29zeCA9IEVO
QUJMRV9DT05URU5UX0ZJTFRFUklORzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKKwog
RU5BQkxFX0NTUzNfVEVYVCA9IDsKIAogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9
IEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzM5MzU0NmI4MDVmNWExZTJkMjNhOWRkZDE1
MzIzNDEzZjMzM2ZjOC4uY2E4ODU1MTU3MDIxNmFjYmIzZGQwMGI2NGJkYWI1NjZmMTE5ZTQ5NSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMwIEBACisyMDE4LTExLTA2ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgor
CisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Omdl
bmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
ZGF0YWJhc2VQcm9jZXNzTmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkYXRh
YmFzZVByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp0ZXJt
aW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTgtMTAtMTEgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29ya2VyIGNhY2hl
IG5vdCBzaGFyZWQgd2hlbiBhZGRlZCB0byBob21lc2NyZWVuCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpp
bmRleCA2ODllZDAwYmRiMGY1ZTU5YWJlZmE3NzI2NWMwZDRmMmEyNDk3MzNiLi43YTI4NTcyN2Vi
NjU3MjkyZGQwMTc0YTZiOTA3ZWM4NWJlNTJkZjU3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAg
LTc0LDYgKzc0LDggQEAgRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZW9zID0gRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZXNpbXVs
YXRvciA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
R19tYWNvc3ggPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiAKK0VOQUJMRV9QQVlNRU5UX1BS
T0NFU1MgPSA7CisKIEVOQUJMRV9DU1MzX1RFWFQgPSA7CiAKIEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUsgPSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IDNmMWE2Mjg4NjgyMTAyYTU4OTJhMGVlZjMyYTk0NDJh
MGNhZjUwODQuLmMzNDZhYmZkNjIwZjkzNTU1ZmQ4MDA1YzhhMWI0MGQ4YTljMDQ3YjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0NCw2ICsxNDQsNyBAQCBURVNUKFJlc291
cmNlTG9hZFN0YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAgICAgLy8gRW5z
dXJlIHRoZSBzaGFyZWQgcHJvY2VzcyBwb29sIGV4aXN0cyBzbyB0aGUgZGF0YSBzdG9yZSBvcGVy
YXRpb25zIHdlJ3JlIGFib3V0IHRvIGRvIHdvcmsgd2l0aCBpdC4KICAgICBXS1Byb2Nlc3NQb29s
ICpzaGFyZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNzUG9vbF07
CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nl
c3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIAogICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtX
S1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CkBAIC0xNjgsNiArMTY5LDcgQEAg
VEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQog
CiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhp
c3RzQXRQYXRoOnRhcmdldFVSTC5wYXRoXSk7CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtz
aGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNU
X0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsK
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCA0Y2I4ZmE5N2E2NmM4YTdmZDg0NTllZWQw
YTQ1ODQyYjJiODFmYTgzLi44MzAzNDQzZWZlM2M5Y2VlNjhiMTNmMDRlYWU3NzRmNGIwZDBmYzJl
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtOTE1LDcgKzkxNSw3IEBAIFRFU1QoU2Vydmlj
ZVdvcmtlcnMsIFNXUHJvY2Vzc0Nvbm5lY3Rpb25DcmVhdGlvbikKICAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiBuZXdSZWd1bGFyUGFnZVdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogCi0gICAg
Ly8gVGVzdCB0aGF0IGEgcmVndWxhciBwYWdlIGRvZXMgbm90IHRyaWdnZXIgYSBzZXJ2aWNlIHdv
cmtlciBjb25uZWN0aW9uIHRvIG5ldHdvcmsgcHJvY2VzcyBpZiB0aGVyZSBpcyBubyByZWdpc3Rl
cmVkIHNlcnZpY2Ugd29ya2VyLgorICAgIC8vIFRlc3QgdGhhdCBhIHJlZ3VsYXIgcGFnZSBkb2Vz
IG5vdCB0cmlnZ2VyIGEgc2VydmljZSB3b3JrZXIgY29ubmVjdGlvbiB0byBwYXltZW50IHByb2Nl
c3MgaWYgdGhlcmUgaXMgbm8gcmVnaXN0ZXJlZCBzZXJ2aWNlIHdvcmtlci4KICAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlV2l0aG91dENvbm5lY3Rpb24uaHRtbCJd
XTsKIAogICAgIFtyZWd1bGFyUGFnZVdlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CkBAIC05
NTksNiArOTU5LDQ3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNXUHJvY2Vzc0Nvbm5lY3Rpb25D
cmVhdGlvbikKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQogCitURVNU
KFNlcnZpY2VXb3JrZXJzLCBQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DcmVhdGlvbikKK3sKKyAg
ICBBU1NFUlQobWFpbkJ5dGVzKTsKKyAgICBBU1NFUlQoc2NyaXB0Qnl0ZXMpOworCisgICAgW1dL
V2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsK
KworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3Zl
RGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2Rp
ZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgc2V0Q29uZmln
dXJhdGlvbkluamVjdGVkQnVuZGxlUGF0aChjb25maWd1cmF0aW9uLmdldCgpKTsKKworICAgIFJl
dGFpblB0cjxSZWd1bGFyUGFnZU1lc3NhZ2VIYW5kbGVyPiByZWd1bGFyUGFnZU1lc3NhZ2VIYW5k
bGVyID0gYWRvcHROUyhbW1JlZ3VsYXJQYWdlTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjpyZWd1bGFyUGFnZU1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJyZWd1bGFy
UGFnZSJdOworCisgICAgUmV0YWluUHRyPFNXU2NoZW1lcz4gaGFuZGxlciA9IGFkb3B0TlMoW1tT
V1NjaGVtZXMgYWxsb2NdIGluaXRdKTsKKyAgICBoYW5kbGVyLT5yZXNvdXJjZXMuc2V0KCJzdzov
L2hvc3QvcmVndWxhclBhZ2VXaXRob3V0Q29ubmVjdGlvbi5odG1sIiwgUmVzb3VyY2VJbmZvIHsg
QCJ0ZXh0L2h0bWwiLCByZWd1bGFyUGFnZVdpdGhvdXRDb25uZWN0aW9uQnl0ZXMgfSk7CisgICAg
W2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNj
aGVtZTpAIlNXIl07CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIEVYUEVDVF9F
USgwLCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9j
ZXNzSWRlbnRpZmllcik7CisKKyAgICAvLyBUZXN0IHRoYXQgYSByZWd1bGFyIHBhZ2UgZG9lcyBu
b3QgdHJpZ2dlciBhIHBheW1lbnQgcHJvY2VzcyBpZiB0aGVyZSBpcyBubyByZWdpc3RlcmVkIHNl
cnZpY2Ugd29ya2VyLgorICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvcmVndWxhclBh
Z2VXaXRob3V0Q29ubmVjdGlvbi5odG1sIl1dOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25l
ID0gZmFsc2U7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhhbiBsb2FkaW5nIHRoZSBzaW1wbGUgcGFn
ZSBkaWQgbm90IHN0YXJ0IGEgcGF5bWVudCBwcm9jZXNzLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJW
aWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRp
Zmllcik7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyKiBtYWluQnl0ZXNXaXRoU2NvcGUgPSBSIlNX
UkVTT1VSQ0UoCiA8c2NyaXB0PgogCkBAIC0xMDQ2LDYgKzEwODcsOSBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBTZXJ2aWNlV29ya2VyUHJvY2Vzc0NyZWF0aW9uKQogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gTWFrZSBzdXJl
IHBheW1lbnQgcHJvY2VzcyBpcyBub3QgbGF1bmNoZWQuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZp
ZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyKTsKKwogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGxvYWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRp
ZCBub3Qgc3RhcnQgdGhlIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MuCiAgICAgRVhQRUNUX0VRKDF1
LCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3dlYlByb2Nlc3NDb3Vu
dCk7CiAKQEAgLTExMzAsNiArMTE3NCw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEhhc1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25CaXQpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gcGF5
bWVudCBwcm9jZXNzIGNyZWF0ZWQuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29u
ZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAg
IC8vIExldCdzIHVzZSB0aGUgd2ViIHNpdGUgZGF0YSBzdG9yZSB0aGF0IGhhcyBzZXJ2aWNlIHdv
cmtlciBhbmQgbG9hZCBhIHBhZ2UuCiAgICAgbmV3Q29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRl
RGF0YVN0b3JlID0gW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV07CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc0tpbGxJ
REJDbGVhbnVwLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQ
cm9jZXNzS2lsbElEQkNsZWFudXAubW0KaW5kZXggYTMwMmUzZmUyNTA5ZWM0ZDVjN2VlYzEwN2M0
YWIzNTQ2MjI1OTljZi4uYThjMjFhMmJmNjg3OWMwOWIxYTQ1ODg4NGY2MGQwNThjMWJhNTY3ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9j
ZXNzS2lsbElEQkNsZWFudXAubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0KQEAgLTcyLDYgKzcyLDcgQEAgVEVT
VChJbmRleGVkREIsIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cCkKICAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250
ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1l
OkAidGVzdEhhbmRsZXIiXTsKIAorCiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9
IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJXZWJQcm9jZXNzS2lsbElEQkNsZWFu
dXAtMSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQppbmRl
eCA0NmEwMmNiYWQzN2RlZjE0NzBkZjAzMjM5YTcwMjI1NGE0YTk2MjNhLi5lMGFhOGMwNmJkYTQ0
MWFlZDdkZDYzNGE5OTQ2YmEyMmZkY2JhNTk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocy5tbQpAQCAtMzA2LDcgKzMwNiw2IEBAIFRFU1QoV2ViS2l0LCBDdXN0b21EYXRh
U3RvcmVQYXRoc1ZlcnN1c0NvbXBsZXRpb25IYW5kbGVycykKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7
CiAKLSAgICAvLyBUaGUgcmVjb3JkcyBzaG91bGQgaGF2ZSBiZWVuIGRlbGV0ZWQsIGFuZCB0aGUg
Y2FsbGJhY2sgc2hvdWxkIGhhdmUgYmVlbiBtYWRlLgogICAgIC8vIE5vdyByZWZldGNoIHRoZSBy
ZWNvcmRzIHRvIHZlcmlmeSB0aGV5IGFyZSBnb25lLgogICAgIGRhdGFTdG9yZSA9IGFkb3B0TlMo
W1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbZGF0YVN0b3JlIGZldGNoRGF0
YVJlY29yZHNPZlR5cGVzOndlYnNpdGVEYXRhVHlwZXMuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6
XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKmRhdGFSZWNvcmRzKSB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAppbmRleCAxZWQ0ZWQ0ZjZlOTQ3YjliYmQ0NTM4MDU0NDZmZTU2MWNk
Y2U1ZjQxLi43MDA5YTAzYTdkZDI0YTRiZWVmYTQwZWZlNmYxNzFjNzIyMzc0Yjc5IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMzMCw2ICszMzAsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1
bm5lciB7CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVu
dFByb2Nlc3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZENhbmNlbENs
aWVudFJlZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA0NWFkNjZiMzZiZGI5NjExOThiNWIwZDA3OTI3
MTJjYzVjZjU0YmE4Li4zYTJmODhhZDllYjFjZTZjZjljYzE5MDcxNTZmNDhlNDdmMWE2OTYxIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKQEAgLTEyNDgsNiArMTI0OCwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNN
ZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFn
ZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwog
c3RhdGljIHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1
bnNpZ25lZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGJh
MGQ2YTY1N2Q1NDVkOWU2M2UwNGMwNjdiYjM0MDljZDNiYWQ1YTkuLjk3ZTE5NTdkOTk3YjU1NjVh
MWU5ZjVlZTg4YWY5ZTBlZDI3MDI4MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDMsNiArNDQzLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWlu
YXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVlUmVm
KTsKICAgICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjaygp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkNDEwMGY4
ZjM3OWQzOWNhY2VmYjhhMjk0Y2UxOWU0NzQ5MTBkZDRiLi4yMTM2ZjdmOTEzMjE0MzM1ZTQzODBj
ZWU2ZWYzNGExNWI5MTE2ZGJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcApAQCAtNDkyLDYgKzQ5Miw3IEBAIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWY+IFRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKFdLCiAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2gsCiAgICAgICAgIDAsIC8vIHBsdWdJbkluZm9ybWF0
aW9uQmVjYW1lQXZhaWxhYmxlCiAgICAgICAgIDAsIC8vIGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXkK
KyAgICAgICAgZGF0YWJhc2VQcm9jZXNzRGlkQ3Jhc2gsCiAgICAgfTsKICAgICBXS0NvbnRleHRT
ZXRDbGllbnQobV9jb250ZXh0LmdldCgpLCAmY29udGV4dENsaWVudC5iYXNlKTsKIApAQCAtMTA2
Miw2ICsxMDYzLDI2IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vz
c05hbWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpkYXRhYmFz
ZVByb2Nlc3NOYW1lKCkKK3sKKyAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBub3QgaGFyZGNv
ZGUgdGhlIHByb2Nlc3MgbmFtZS4KKyNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1Nf
U0lNVUxBVE9SKQorI2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMTAzMDAKKyAgICByZXR1cm4g
ImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzIjsKKyNlbHNlCisgICAgcmV0dXJuICJjb20uYXBw
bGUuV2ViS2l0LlBheW1lbnQiOworI2VuZGlmCisjZWxpZiBQTEFURk9STShDT0NPQSkKKyAgICBy
ZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudC5EZXZlbG9wbWVudCI7CisjZWxpZiBQTEFU
Rk9STShHVEspCisgICAgcmV0dXJuICJXZWJLaXRQYXltZW50UHJvY2VzcyI7CisjZWxpZiBQTEFU
Rk9STShXUEUpCisgICAgcmV0dXJuICJXUEVQYXltZW50UHJvY2VzcyI7CisjZWxzZQorICAgIHJl
dHVybiAiRGF0YWJhc2VQcm9jZXNzIjsKKyNlbmRpZgorfQorCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykKIHsKICAgICBXS0NvbnRl
eHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcocGxhdGZvcm1D
b250ZXh0KCksIGFsbG93cyk7CkBAIC0xNDg1LDYgKzE1MDYsMTEgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qg
dm9pZCAqY2wKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwogfQogCit2b2lkIFRl
c3RDb250cm9sbGVyOjpkYXRhYmFzZVByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4
dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJv
bGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGF0YWJhc2VQcm9jZXNzRGlk
Q3Jhc2goKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25h
cnksIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtl
eUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAg
LTE4MTgsNiArMTg0NCwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0Rp
ZENyYXNoKCkKICAgICBleGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkYXRhYmFz
ZVByb2Nlc3NEaWRDcmFzaCgpCit7CisgICAgcGlkX3QgcGlkID0gV0tDb250ZXh0R2V0RGF0YWJh
c2VQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOworICAgIGZwcmludGYoc3RkZXJy
LCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClcbiIsIGRhdGFiYXNlUHJvY2Vzc05hbWUoKSwgc3Rh
dGljX2Nhc3Q8bG9uZz4ocGlkKSk7CisgICAgZXhpdCgxKTsKK30KKwogLy8gV0tQYWdlTmF2aWdh
dGlvbkNsaWVudAogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21taXROYXZpZ2F0aW9uKFdL
UGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMjYxNyw2ICsyNjUwLDExIEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0NvbnRleHRUZXJt
aW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS0NvbnRl
eHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7Cit9CisKICNpZiAh
UExBVEZPUk0oQ09DT0EpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0
KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAppbmRleCA1YzNmZTUzZDE2NzQ2ODBkOTY2YmIyMjk0YTRlYzRlNDQ4M2ExZWRmLi44
MTgzZTBhMDVlMjgyNTMxN2M1NjYyYzY3YTVlOGEwZTk3ZmI0NDFmIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yMzEsNiArMjMxLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7
CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygpOwogCkBAIC0zMjgsNiAr
MzI5LDggQEAgcHJpdmF0ZToKICAgICAvLyBXS0NvbnRleHRDbGllbnQKICAgICBzdGF0aWMgdm9p
ZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOwogICAg
IHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOworICAgIHN0YXRpYyB2b2lkIGRhdGFiYXNl
UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgZGF0
YWJhc2VQcm9jZXNzRGlkQ3Jhc2goKTsKIAogICAgIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQK
ICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0
aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYzRkZGM5MjhhNGY1NjBiMzQwOWFjNWJj
YzJlNGM3NGJlOWU2YzZkZC4uM2U3MmRiZWM1OGM3YTYzMDY3ZmIzMDRjNTY3MTExM2JjZTI2MmUx
YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0NDAs
NiArMTQ0MCwxMiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKCFt
ZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5h
dGVQYXltZW50UHJvY2VzcygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0
ZU5ldHdvcmtQcm9jZXNzIikpIHsKICAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CiAgICAg
ICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzcygp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDhlY2Y3MzA2YTg1ODE5ODZiZGNlZGUzNWU0NTNlYjFiOTUxMDc1OGMuLjJiYjQx
NjFjOThjNzRlNzIzYTNjN2UxMGU1ODAzZmI5MTA2NTVmZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWw6CisKIDIwMTgtMTAtMTIgIERhd2VpIEZl
bnRvbiAgPHJlYWxkYXdlaUBhcHBsZS5jb20+CiAKICAgICAgICAgW01vamF2ZSBXazJdIExheW91
dCBUZXN0IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhbGlkYXRpb24t
YXR0YWNobWVudC5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0
bWwKaW5kZXggMDhhOWE1OTYyMzIxMDRiODY1ZTNhYjJkZjg1YTliOTQ1N2VjODRlOS4uM2M3NmQ5
YWI2MGM4YzgzMTRkMTRlOTM4Y2EzMmU1NjY0YTQ2N2M4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWlt
cG9ydFNjcmlwdHMuaHRtbApAQCAtMzcsNyArMzcsNyBAQCBhc3luYyBmdW5jdGlvbiBkb1Rlc3Qo
KSB7CiAKICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgewogICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5l
dHdvcmtQcm9jZXNzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKCk7CiAgICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsKICAgICAgICAgd2luZG93Lmxv
Y2F0aW9uICs9ICI/dGVzdCMiICsgcmFuZG9tSWQ7CiAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354191</attachid>
            <date>2018-11-07 17:57:32 -0800</date>
            <delta_ts>2018-11-07 19:06:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181107175731.patch</filename>
            <type>text/plain</type>
            <size>183732</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDdhNDNlMDU1ZWEyZDU2NThlNDkwYTM0NDU5ZDA2YjZhYTUxM2YzLi42NTMzOGJhZWYxNzU0Yjdm
ZGQ3ODQ0YjU4Y2Y1ZDcxNDUxNGVlNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMC0xMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM3MDYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA0MjcxNGFjNzFjMTFkOWU0Y2FkOGQ0ZGFkZGRhNDhhMDA0N2Y2
M2MyLi4xMzAzNjEwZDI2NDdkMjIzZGVmMTJjZmI1Mjk1MWNhYmQ0MTc0ZGU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2OSBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxl
LmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0bGVt
ZW50czoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0
bGVtZW50czogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFz
ZXMtaU9TLmVudGl0bGVtZW50cy4KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2Vy
dmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpwdXRPckFk
ZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZl
dGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnNpbmds
ZXRvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjp+UGF5bWVudFByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzczo6cG9zdFBheW1lbnRUYXNrKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3M6OnBlcmZvcm1OZXh0UGF5bWVudFRhc2spOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAgICAg
KiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oOiBBZGRlZC4KKyAgICAgICAgKiBQYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3Nh
Z2VzLmluLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbi4K
KyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW06IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUu
Y3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToK
KyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0
LlBheW1lbnQuc2I6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYi4KKyAgICAgICAgKiBTaGFy
ZWQvQ2hpbGRQcm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nl
c3NFeGVjdXRhYmxlUGF0aC5oLgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBh
dGguaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6cHJvY2Vzc1N0b3JhZ2VDbGFzcyk6CisgICAgICAgIChXZWJLaXQ6OnNhbmRib3hE
aXJlY3RvcnkpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAg
IChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
OgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgor
ICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZVBheW1lbnRQ
cm9jZXNzQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6
OlBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1By
b3h5Ojp+UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bik6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OmRpZEZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpkaWREZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4uCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50
OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dENsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0U3VwcGxlbWVudDo6cHJvY2Vzc0RpZENsb3NlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0
b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwYXltZW50UHJv
Y2Vzc0NyYXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFn
ZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2Fy
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNo
LmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2guaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bh
eW1lbnQvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAuCisgICAgICAgIChXZWJLaXQ6
OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxT
ZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmguCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
YXltZW50L1dlYlNXT3JpZ2luVGFibGUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9QYXltZW50L1dlYlNXT3JpZ2luVGFibGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuaC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyLmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BheW1lbnQvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BheW1lbnQvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Ojp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25U
b05ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwog
MjAxOC0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFsbG93IGVuY29kaW5nIG9mIHNtYWxsIGVudW0gY2xhc3NlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0OTcz
M2IuLjdhMjg1NzI3ZWI2NTcyOTJkZDAxNzRhNmI5MDdlYzg1YmU1MmRmNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKQEAgLTc0LDYgKzc0LDggQEAgRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
X2lwaG9uZW9zID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HX2lwaG9uZXNpbXVsYXRvciA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklORzsKIEVOQUJM
RV9DT05URU5UX0ZJTFRFUklOR19tYWNvc3ggPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiAK
K0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CisKIEVOQUJMRV9DU1MzX1RFWFQgPSA7CiAKIEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgPSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA2ODllZDAwYmRiMGY1ZTU5YWJlZmE3NzI2NWMwZDRmMmEy
NDk3MzNiLi43YTI4NTcyN2ViNjU3MjkyZGQwMTc0YTZiOTA3ZWM4NWJlNTJkZjU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwpAQCAtNzQsNiArNzQsOCBAQCBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBob25lb3Mg
PSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfaXBo
b25lc2ltdWxhdG9yID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NPTlRFTlRf
RklMVEVSSU5HX21hY29zeCA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklORzsKIAorRU5BQkxFX1BB
WU1FTlRfUFJPQ0VTUyA9IDsKKwogRU5BQkxFX0NTUzNfVEVYVCA9IDsKIAogRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSyA9IEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5k
ZXggZjI2ZTk2ZDQyYTA4NGMzZDUzYzJjMDk3MDhjYjEyM2UwOTYyNmRhYi4uZDIwMTYzNWMwNWFj
NzM0NmViYzE2OTMxYjU4Y2QxNWIzZmI0ZTRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Vu
Z2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtNDMsNiArNDMsOSBAQAogLyogVmlz
aWJsZSBuYW1lIG9mIFNlcnZpY2UgV29ya2VyIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUg
YXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBTZXJ2aWNlIFdvcmtlciAoJUApIiA9ICIlQCBTZXJ2
aWNlIFdvcmtlciAoJUApIjsKIAorLyogdmlzaWJsZSBuYW1lIG9mIHRoZSBwYXltZW50IHByb2Nl
c3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KKyIlQCBQYXltZW50
IiA9ICIlQCBQYXltZW50IjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4g
VGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50
IiA9ICIlQCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA2ODllZDAwYmRi
MGY1ZTU5YWJlZmE3NzI2NWMwZDRmMmEyNDk3MzNiLi43YTI4NTcyN2ViNjU3MjkyZGQwMTc0YTZi
OTA3ZWM4NWJlNTJkZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03NCw2ICs3NCw4IEBAIEVO
QUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVvcyA9IEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
RzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfbWFjb3N4ID0gRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOworCiBFTkFC
TEVfQ1NTM19URVhUID0gOwogCiBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0gRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1
NDI3MzI2ZDg4YmFhZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLjdiNzQxZTEwYTcyZjIyYTc4MDdk
NGU3NzM2Mzg3OWMyYTQwMGQ5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzEsNyArMzEsOSBA
QCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1JlbW90ZUxheWVyVHJlZSIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvV2Vic2l0ZURhdGEiCisgICAgIiR7V0VCS0lUX0RJUn0vUGF5bWVudFByb2Nlc3MiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9DIgpAQCAtNDcsNiArNDks
NyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1
Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgorICAg
ICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24iCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL01vY2siCkBAIC0xMjEsNiArMTI0LDkgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMu
aW4KICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5tZXNzYWdlcy5p
bgogCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KKyAgICBQ
YXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
CiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICAg
ICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4KICAgICBQbHVnaW5Qcm9j
ZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0xNTEsNiArMTU3LDggQEAg
c2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAgVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogCisgICAgVUlQcm9jZXNzL1BheW1lbnQvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyMSw2ICsyMjks
MTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQogCitzZXQo
UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisKIHNldChQbHVnaW5Qcm9j
ZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpAQCAtNDQwLDEwICs0NTIsMjAgQEAgaWYgKFdl
YktpdF9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRSkKICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoTmV0d29ya1Byb2Nlc3MgUFJPUEVSVElFUyBPVVRQVVRfTkFNRSAke1dlYktpdF9OZXR3b3Jr
UHJvY2Vzc19PVVRQVVRfTkFNRX0pCiBlbmRpZiAoKQogCithZGRfZXhlY3V0YWJsZShQYXltZW50
UHJvY2VzcyAke1BheW1lbnRQcm9jZXNzX1NPVVJDRVN9KQorQUREX1dFQktJVF9QUkVGSVhfSEVB
REVSKFBheW1lbnRQcm9jZXNzKQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKFBheW1lbnRQcm9jZXNz
ICR7UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTfSkKK2luc3RhbGwoVEFSR0VUUyBQYXltZW50UHJv
Y2VzcyBERVNUSU5BVElPTiAiJHtMSUJFWEVDX0lOU1RBTExfRElSfSIpCisKK2lmIChXZWJLaXRf
UGF5bWVudFByb2Nlc3NfT1VUUFVUX05BTUUpCisgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFBh
eW1lbnRQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgJHtXZWJLaXRfUGF5bWVudFByb2Nl
c3NfT1VUUFVUX05BTUV9KQorZW5kaWYgKCkKKwogaWYgKENPTVBJTEVSX0lTX0dDQ19PUl9DTEFO
RykKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoV2ViS2l0IC1Xbm8tdW51c2VkLXBh
cmFtZXRlcikKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoV2ViUHJvY2VzcyAtV25v
LXVudXNlZC1wYXJhbWV0ZXIpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKE5ldHdv
cmtQcm9jZXNzIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKKyAgICBXRUJLSVRfQUREX1RBUkdFVF9D
WFhfRkxBR1MoUGF5bWVudFByb2Nlc3MgLVduby11bnVzZWQtcGFyYW1ldGVyKQogZW5kaWYgKCkK
IAogIyBGSVhNRTogTWFjIHNob3VsZCBidWlsZCBhIHBsdWdpbiBwcm9jZXNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJhMjQ5NzMzYi4uN2EyODU3MjdlYjY1
NzI5MmRkMDE3NGE2YjkwN2VjODViZTUyZGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03NCw2ICs3NCw4IEBA
IEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVvcyA9IEVOQUJMRV9DT05URU5UX0ZJTFRF
UklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVf
Q09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfbWFjb3N4ID0gRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOworCiBF
TkFCTEVfQ1NTM19URVhUID0gOwogCiBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0g
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE4NmFhNzE1YWUwZWYyZWQ4NDA3MTQzYzljZmViMGE2MjFmMTVjZTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NY
LXNhbmRib3guZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9E
VEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0
LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBs
ZS5yb290bGVzcy5wYXltZW50LldlYktpdFBheW1lbnRTYW5kYm94PC9rZXk+CisJPHRydWUvPgor
PC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNWUzYTcxZmUyMDMzMTYzZWVk
MDkyY2M5YTk5MzY1YzhjMGIyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCkBAIC0wLDAgKzEsMzYgQEAKKy8v
IENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8vIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisvLyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8gUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorLy8g
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJCYXNlWFBD
U2VydmljZS54Y2NvbmZpZyIKKworV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNF
ID0gRGF0YWJhc2VzLWlPUzsKKworV0tfU1RPUkFHRV9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF9O
TyA9IDsKK1dLX1NUT1JBR0VfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfWUVTID0gQ29uZmlndXJh
dGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHM7CisKK0NPREVfU0lHTl9FTlRJ
VExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1NUT1JBR0VfRU5USVRMRU1FTlRTX1JFU1RS
SUNURURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lH
Tl9GTEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BS
T0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNU
X0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSBQ
YXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlL0lu
Zm8ucGxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmU1NTFmNDk3MWU0MTAy
MDJjMzczYjg1ZTE3OGM1NTNhNmM3NTNjMS4uYTM0OTkzMzQwYWFlZDQ4NGYwNzlhMWE3ZGJjZjky
NzAxOTNhZjgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzcsNiArMzcsNyBA
QCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BUEkvQ29jb2EgXAogICAgICQoV2Vi
S2l0MikvU2hhcmVkL0F1dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMg
XAorICAgICQoV2ViS2l0MikvUGF5bWVudFByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9BcHBsZVBheSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uIFwKQEAgLTczLDYgKzc0
LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L1BheW1lbnQgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvU3RvcmFnZSBcCkBAIC0xMzEsNiArMTMzLDkgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAg
ICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAog
ICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBQYXltZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFBy
b2Nlc3NQcm94eSBcCisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIFwKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
IFwKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGU0ZTQxOTE0ZjI0ZTc3
ZWU1OTQ3M2ViYjFmOTQ5ZWZjMWU5MmNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKQEAgLTAsMCArMSwyMjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKworI2luY2x1ZGUgIkNoaWxk
UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RW5jb2RpbmcuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lv
bklELmg+CisjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgorI2luY2x1ZGUgPHd0
Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1
ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nl
c3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9j
ZXNzPiBwcm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzOworfQorCitQYXltZW50UHJvY2Vzczo6
UGF5bWVudFByb2Nlc3MoKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5QYXltZW50UHJvY2VzcyIpKQoreworICAgIC8vIE1ha2Ugc3VyZSB0aGUgVVRG
OEVuY29kaW5nIGVuY29kaW5nIGFuZCB0aGUgdGV4dCBlbmNvZGluZyBtYXBzIGhhdmUgYmVlbiBi
dWlsdCBvbiB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGEgYmFja2dyb3VuZCB0aHJlYWQgbmVlZHMg
aXQuCisgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzUzNjUgLSBOZWVkIGEgbW9yZSBleHBsaWNpdCB3YXkgb2YgZG9pbmcgdGhpcyBiZXNpZGVz
IGFjY2Vzc2luZyB0aGUgVVRGOEVuY29kaW5nLgorICAgIFVURjhFbmNvZGluZygpOworfQorCitQ
YXltZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQor
eworICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9
CisKK2Jvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlm
IChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
eworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJl
Y3RvcmllcyhwYXRoKSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gbWFrZSBhbGwgZGly
ZWN0b3JpZXMgZm9yIHBhdGggJyVzJyIsIHBhdGgudXRmOCgpLmRhdGEoKSk7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3M6OnBvc3RQYXltZW50VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQor
eworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3BheW1lbnRUYXNrTXV0ZXgpOworCisgICAgbV9wYXltZW50VGFza3MuYXBwZW5kKFdURk1v
dmUodGFzaykpOworCisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgcGVy
Zm9ybU5leHRQYXltZW50VGFzaygpOworICAgIH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
OjpwZXJmb3JtTmV4dFBheW1lbnRUYXNrKCkKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKKworICAgIENyb3NzVGhyZWFkVGFzayB0YXNrOworICAgIHsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9wYXltZW50VGFza011dGV4KTsKKyAgICAgICAgQVNTRVJUKCFtX3BheW1l
bnRUYXNrcy5pc0VtcHR5KCkpOworICAgICAgICB0YXNrID0gbV9wYXltZW50VGFza3MudGFrZUZp
cnN0KCk7CisgICAgfQorCisgICAgdGFzay5wZXJmb3JtVGFzaygpOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2Vy
dmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5
T3JpZ2luKQoreworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIElQQzo6Q29ubmVj
dGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0
Zm9ybUNvbm5lY3Rpb24oKTsKKyAgICBtX3BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5h
cHBlbmQoUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShzb2NrZXRQYWlyLnNl
cnZlcikpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KElQQzo6QXR0YWNobWVudChzb2NrZXRQYWlyLmNsaWVudCkpLCAwKTsKKyNlbGlmIE9TKERBUldJ
TikKKyAgICAvLyBDcmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxp
c3RlbmluZ1BvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2Fs
bG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVu
aW5nUG9ydCk7CisgICAgaWYgKGtyICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgICBMT0dfRVJS
T1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtYWNoIHBvcnQsIGVycm9yICV4Iiwga3IpOworICAgICAg
ICBDUkFTSCgpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9u
LgorICAgIG1fcGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihs
aXN0ZW5pbmdQb3J0KSkpOworCisgICAgSVBDOjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVu
aW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKKyNlbGlmIE9TKFdJ
TkRPV1MpCisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIs
IGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZl
ckFuZENsaWVudElkZW50aWZpZXJzKHNlcnZlcklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXIp
KSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzZXJ2ZXIgYW5kIGNsaWVu
dCBpZGVudGlmaWVycyIpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIGF1dG8gY29u
bmVjdGlvbiA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoc2VydmVySWRl
bnRpZmllcik7CisgICAgbV9wYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFdU
Rk1vdmUoY29ubmVjdGlvbikpOworCisgICAgSVBDOjpBdHRhY2htZW50IGNsaWVudFNvY2tldChj
bGllbnRJZGVudGlmaWVyKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihjbGllbnRTb2NrZXQpLCAwKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyNlbmRpZgorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmZldGNo
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1
dG8gd2Vic2l0ZURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYnNpdGVEYXRhPigpOworICAgIGF1
dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMs
IHdlYnNpdGVEYXRhID0gV1RGTW92ZSh3ZWJzaXRlRGF0YSksIGNhbGxiYWNrSURdKCkgeworICAg
ICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJv
Y2Vzc1Byb3h5OjpEaWRGZXRjaFdlYnNpdGVEYXRhKGNhbGxiYWNrSUQsICp3ZWJzaXRlRGF0YSks
IDApOworICAgIH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0
YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6
OmNyZWF0ZShbdGhpcywgY2FsbGJhY2tJRF0geworICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjpEaWREZWxldGVXZWJz
aXRlRGF0YShjYWxsYmFja0lEKSwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6
OmNyZWF0ZShbdGhpcywgY2FsbGJhY2tJRF0oKSB7CisgICAgICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZERlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2lucyhjYWxsYmFja0lEKSwgMCk7CisgICAgfSk7Cit9CisKKyNpZiAh
UExBVEZPUk0oQ09DT0EpCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworI2lmIE9TKExJ
TlVYKQorICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6c2luZ2xldG9uKCk7CisgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldExvd01lbW9y
eUhhbmRsZXIoW3RoaXNdIChDcml0aWNhbCwgU3luY2hyb25vdXMpIHsKKyAgICAgICAgLy8gRklY
TUU6IG5vIGxvd01lbW9yeUhhbmRsZXIoKSBpbXBsZW1lbnRlZCBmb3IgUGF5bWVudFByb2Nlc3Mg
Y3VycmVudGx5LgorICAgICAgICAvLyBCdXQgYXQgbGVhc3QgZGVmaW5lIHRoaXMgc2V0TG93TWVt
b3J5SGFuZGxlcigpIGVtcHR5IHNvIHBsYXRmb3JtUmVsZWFzZU1lbW9yeSBpcyBjYWxsZWQuCisg
ICAgfSk7CisgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLmluc3RhbGwoKTsKKyNlbmRpZgorfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisjZW5k
aWYgLy8gIVBMQVRGT1JNKENPQ09BKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjI0NDdiY2QwMTljNmM5NmJiMGY3
ZmFlMjU0Y2EwMTYzMGYxYjA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
Q2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4K
KyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFz
ay5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitlbnVtIGNsYXNzIFdlYnNpdGVE
YXRhVHlwZTsKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKworI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKK2NsYXNzIFdlYlNXT3JpZ2luU3RvcmU7CisjZW5kaWYK
KworY2xhc3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJv
eWVkPFBheW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFByb2Nlc3Mm
IHNpbmdsZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5
cGUgPSBQcm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2VzcygpOworCisg
ICAgdm9pZCBwb3N0UGF5bWVudFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYpOworCisgICAgdm9pZCBk
aWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNzKCk7CisKKyAgICAvLyBDaGls
ZFByb2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92
ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYp
IG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
Kikgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBvdmVycmlkZTsKKworICAg
IC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIE1lc3Nh
Z2UgSGFuZGxlcnMKKyAgICB2b2lkIGluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKGNvbnN0IFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAgdm9pZCBjcmVhdGVQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmKTsKKworICAgIHZvaWQgZGVzdHJveVNlc3Npb24oUEFM
OjpTZXNzaW9uSUQpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZp
ZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+
JiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIC8vIEZvciBleGVjdXRpb24g
b24gd29yayBxdWV1ZSB0aHJlYWQgb25seQorICAgIHZvaWQgcGVyZm9ybU5leHRQYXltZW50VGFz
aygpOworICAgIHZvaWQgZW5zdXJlUGF0aEV4aXN0cyhjb25zdCBTdHJpbmcmKTsKKworICAgIFZl
Y3RvcjxSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX3BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uczsKKworICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisKKyAgICBE
ZXF1ZTxDcm9zc1RocmVhZFRhc2s+IG1fcGF5bWVudFRhc2tzOworICAgIExvY2sgbV9wYXltZW50
VGFza011dGV4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZ
TUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9QYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWQ5MjdlMWUx
OTBkMDljNmYwOTZmMjhjYjkxNTQ0NTE0ZmI2MGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDM4IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CisgICAgIyBJbml0aWFsaXplcyBhIFdlYnNpdGVEYXRhU3RvcmUvU2Vzc2lv
biBpbiB0aGUgUGF5bWVudFByb2Nlc3Mgd2l0aCB0aGUgY29ycmVjdCBwYXJhbWV0ZXJzCisgICAg
SW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoc3RydWN0IFdlYktpdDo6UGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycykKKworICAgICMgQ3Jl
YXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKKyAg
ICBDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtl
clByb2Nlc3MsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKQorCisg
ICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJh
Y2tJRCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2FsbFRp
bWUgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0
OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisKKyAgICBEZXN0
cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit9CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTExMjY4OTYyMGFmMjQ3ZTU2ZTdhNzg3ZWQ0NWY0YTI4NmUwZDk5MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25J
ZGVudGlmaWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVh
dGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAg
Ly8gVXNlIHRoaXMgZmxhZyB0byBmb3JjZSBzeW5jaHJvbm91cyBtZXNzYWdlcyB0byBiZSB0cmVh
dGVkIGFzIGFzeW5jaHJvbm91cyBtZXNzYWdlcyBpbiB0aGUgV2ViUHJvY2Vzcy4KKyAgICAvLyBP
dGhlcndpc2UsIHRoZSBXZWJQcm9jZXNzIHdvdWxkIHByb2Nlc3MgaW5jb21pbmcgc3luY2hyb25v
dXMgSVBDIHdoaWxlIHdhaXRpbmcgZm9yIGEgc3luY2hyb25vdXMgSVBDCisgICAgLy8gcmVwbHkg
ZnJvbSB0aGUgcGF5bWVudCBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCisgICAgbV9j
b25uZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CisgICAgbV9jb25uZWN0aW9u
LT5vcGVuKCk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgp
OworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgUGF5bWVudFBy
b2Nlc3M6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVy
KQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7
CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworfQorCit2b2lkIFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7CisKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmJiYzAxZmFmODVhNWU1NTFjYWRiZTY3OGU5MzFiOGM0YmRiZjJmMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50
ZWQ8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcik7CisgICAgflBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7
CisKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVy
biBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
YXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg0MzIyNTk2NjI2OTM1OTM5MTZlM2Q5NGNhOTU0
ZmQ1MDk3OWE2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwy
NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmNh
ZjMyMTY4NTdhM2EzYzdiN2M0ZmUwZmFjZThlODc5NDdiOGRlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAg
LTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50
UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgi
CisKKyNkZWZpbmUgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYgc2FuZGJveFBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5E
Qk9YSU5HCisgICAgLy8gTmVlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2
aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5k
bGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZp
ZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBh
dGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXlt
ZW50IiBvZlR5cGU6QCJzYiJdKTsKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94
KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKworI2VuZGlmIC8vICFQQVlN
RU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2Vz
L1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiIGIvU291cmNl
L1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnQuc2IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBjN2NiZmY4Y2RiNzg5NjRjNzY0ZTRlMmU0ZGZmZDYxMDMy
ODU5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiCkBAIC0wLDAgKzEsNDcgQEAK
KzsgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorOworOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKzsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorOworOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCis7IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCis7
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCis7IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworKHZlcnNpb24gMSkK
KyhkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhhbGxvdyBzeXN0
ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQorCisoaW1wb3J0ICJjb21tb24uc2IiKQorCiso
ZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQorCisoZGVueSBs
c29wZW4pCisKKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChleHRlbnNpb24gImNvbS5h
cHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikpCisKKyhkZW55IHN5c2N0bCopCisoYWxsb3cg
c3lzY3RsLXJlYWQKKyAgICAoc3lzY3RsLW5hbWUKKyAgICAgICAgImh3LmF2YWlsY3B1IgorICAg
ICAgICAiaHcubmNwdSIKKyAgICAgICAgImh3Lm1vZGVsIgorICAgICAgICAia2Vybi5tZW1vcnlz
dGF0dXNfbGV2ZWwiCisgICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpKQorCis7OyBWYXJp
b3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IHN5c3RlbSBmcmFtZXdvcmtzCisoYWxsb3cgbWFjaC1s
b29rdXAKKyAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmFuYWx5dGljc2QiKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5kZXggNTQ3OGE5ZGQ5ZmM1OTJiMTg3NjYzZjk1NGVmYTU5
MWNmMDIwNGZkMS4uMTMyODkyMTdiOTgyMzIzOTAxMmVhZmVmMzRiNzA5OTliZWY1ODMxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTUwLDYgKzUwLDkgQEAgcHVibGljOgog
ICAgICAgICBOZXR3b3JrLAogICAgICAgICBTdG9yYWdlLAogICAgICAgICBQbHVnaW4KKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICAgICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENo
aWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzM3MDk3MzQwM2Q0NjM0MDhlZDYzYmJjZWY0NTYz
YmQwMDk5ODFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKwor
I2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMoKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vz
c2lvbklEOworfQorCitib29sIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYgcmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYzg2M2MwMGE4YTQwNzAxMzUxMmNh
MjMxYzA1NTgzNTE3YjllZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsK
K2NsYXNzIEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzKCk7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmKTsKKworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGgu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDJj
ZTcxNmU0YzcyZTU4MmFiZTMwZjQ4NzlkMmM2ZWI5ZTQ5OWE5N2IuLjYyYjU0NzRlZmFhNzI0ZWFi
NTI4YjRmNjcwMTc5MWYwY2U5YWFkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nl
c3NFeGVjdXRhYmxlUGF0aC5oCkBAIC0zMiw1ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
U3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBh
dGhPZlBsdWdpblByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nl
c3MoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRo
T2ZQYXltZW50UHJvY2VzcygpOworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAppbmRleCBiNzFhZDQ5ODM0NWVkOWNhNDI4YjBhMzRjNGJhZTliODNiOTVi
MGQzLi45MGViMDhlM2IxYjkxMTJhZDc2YjMxM2YwYzZjMTQ5MjhlNjUyNzBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKQEAgLTIxOSw4ICsyMTksMTMgQEAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbk1vZHVsZS5jcHAgIEBuby11bmlmeQogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUv
UGx1Z2luSW5mb3JtYXRpb24uY3BwIEBuby11bmlmeQogCitTaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKwogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhLmNwcAogCitQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAgQG5vLXVuaWZ5
CitQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVu
aWZ5CisKIFVJUHJvY2Vzcy9CYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CiBVSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eS5jcHAKQEAgLTM4MSw2ICszODYsOCBAQCBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZv
U3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKIFVJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKIAorVUlQcm9jZXNzL1BheW1l
bnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlNj
cmlwdE1lc3NhZ2VIYW5kbGVyLmNwcAogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5LmNwcAogCkBAIC00OTMsNiArNTAwLDcgQEAgV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXIuY3BwCitXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCiAKIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNTk0YmY5MGRkNWYwOGJmZGM0
MzRiOWY1ZGM1OWU0OGMzYWEyZDcxZS4uMGU0MjBlZjY4ODcwZjE2ODUyZDBmM2E2ZDllNTM1NjE0
ZmQ1MzE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTk0LDYgKzE5NCw5IEBAIFNoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCiBTaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3Bw
CiAKKworUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tIEBuby11bmlmeQor
CiBVSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tCiBVSVByb2Nlc3MvQXBwbGlj
YXRpb25TdGF0ZVRyYWNrZXIubW0KIFVJUHJvY2Vzcy9IaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCmluZGV4IDE5NjUyOGNiZTUxMjdmNGI1OTdlZjY3MWM4YjEwMzg4YzIwY2M5NzQuLjI1MmFl
ZTUzMzRkOGU1Y2RhYjE3MzlmZWE3MjFkOTk0OGI1NTBmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNjIxLDExICs2MjEsMjcgQEAgdm9pZCBX
S0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4
dCkKICAgICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMo
KTsKIH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRS
ZWYgY29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHRvSW1wbChj
b250ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdv
cmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1
cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAor
UHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRS
ZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVy
biB0b0ltcGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2Vsc2UK
KyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiB2
b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwg
V0tTdHJpbmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS0FycmF5UmVmIG1p
bWVUeXBlc1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0UHJpdmF0ZS5oCmluZGV4IGVjNmM4NjNiNmU0OGE2YWJjMjk4NTE3M2MzM2Q3NGVkMTNh
NThiNTMuLjliYjFkNWMyYjk4NTM4ZGUwYzU3ZDFlY2E5MjUwMTA0ZGQ4MThkNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTky
LDYgKzkyLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNz
KFdLQ29udGV4dFJlZiwgYm9vbCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0
ZU5ldHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYpOworLy8gTk9URTogVGhp
cyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECitXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYp
OwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldFRlc3RpbmcoV0tDb250ZXh0UmVmLCBib29sKTsKIFdLX0VYUE9SVCB2b2lkIFdL
Q29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlclRlc3Rpbmco
V0tDb250ZXh0UmVmLCBib29sKTsKQEAgLTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiBXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIFdLVVJMUmVmIHNlcnZlclVSTCk7CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRl
eHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tf
RVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihX
S0NvbnRleHRSZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFkZFN1cHBv
cnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWluLCBXS1N0
cmluZ1JlZiBuYW1lLCBXS0FycmF5UmVmIG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRlbnNpb25z
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhXS0NvbnRl
eHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDI4NzYzMTY1YzY0YTI2MmExMzFhZDQ4NTcxMjYyMjU4
ODZhYjJkNTAuLjQ5YzA2ZGEwZjg5MmYzM2ExNTBhODlkMzhkNmU5NzY4Mjk1NDg4MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
CkBAIC00MjQsNiArNDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwogICAg
IF9wcm9jZXNzUG9vbC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQpX3Rl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5l
dHdvcmtQcm9jZXNzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3JrUHJvY2Vz
cygpOwpAQCAtNDQ0LDYgKzQ1MSwxNSBAQCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlm
aWVyCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7
CiB9CiAKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQcm9jZXNz
SWRlbnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gKHBpZF90KTA7CisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29v
a2llcwogewogICAgIF9wcm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbFByaXZhdGUuaAppbmRleCA3ZDRiNjE1YWQ4MDI0ODQzOGFmYTFmYWViM2E4NDA0ZThmZGFm
Y2Y5Li5mZjc5ZmRiNjg1Y2NiMTgzYzhjMGVlMzYzNWMxOThhNTZiMGNhOWMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaApAQCAtODQsMTIgKzg0LDE2IEBACiAtIChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3du
bG9hZEZyb21EYXRhOihOU0RhdGEgKilyZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
Ly8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQg
cHJvY2Vzc2VzIGFyZSBydW5uaW5nLgorLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3
aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistICh2b2lkKV90ZXJtaW5hdGVQYXltZW50
UHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJt
aW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsK
IAogLy8gVGVzdCBvbmx5LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CisvLyBOT1RFOiBUaGlzIGlz
IG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZTUVOVF9QUk9DRVNTIGlzIEVOQUJMRUQKKy0gKHBpZF90
KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMykpOwog
CiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDVjNGJiM2I5ZTExNjQxZDk4
NzgxMWRhNjY3OTQ2NWI2ZTMxODQwYTUuLjk0NDE5NjMwMWQzNzJlZjQ5MDYyYzM5N2Y5MzYyOTJh
NTViNTdhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oCkBAIC01OCw2ICs1OCwxMCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAg
ICAgTmV0d29yaywKICAgICAgICAgU3RvcmFnZSwKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICAgICB9OwogCiAgICAgc3RydWN0IExhdW5jaE9wdGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDQ4M2M1YzNhM2JlMDJiYzhlNTZkOWM1N2U4ZDdlMzQ4MjYxN2IyMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQ
cm94eS5jcHAKQEAgLTAsMCArMSwyMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NQcm94eS5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRl
UGF5bWVudFByb2Nlc3NDYWxsYmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJh
Y2tJRDsKKworICAgIHJldHVybiArK2NhbGxiYWNrSUQ7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJv
eHk6OlBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQorICAg
IDogQ2hpbGRQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5KCkpCisgICAgLCBtX3Byb2Nlc3NQb29sKHByb2Nlc3NQb29sKQorICAgICwgbV9udW1Q
ZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKDApCit7CisgICAgY29ubmVjdCgpOworfQorCitQYXlt
ZW50UHJvY2Vzc1Byb3h5Ojp+UGF5bWVudFByb2Nlc3NQcm94eSgpCit7CisgICAgQVNTRVJUKG1f
cGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQo
bV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuaXNFbXB0eSgpKTsKKyAgICBBU1NF
UlQobV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmlzRW1wdHko
KSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZygp
Cit7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFD
YWxsYmFja3MudmFsdWVzKCkpCisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisKKyAgICBmb3IgKGF1
dG8mIGNhbGxiYWNrIDogbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MudmFsdWVz
KCkpCisgICAgICAgIGNhbGxiYWNrKCk7CisKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9w
ZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLnZhbHVlcygpKQorICAg
ICAgICBjYWxsYmFjaygpOworICAgIAorICAgIG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxs
YmFja3MuY2xlYXIoKTsKKyAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5j
bGVhcigpOworICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNr
cy5jbGVhcigpOworICAgIAorICAgIHRlcm1pbmF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9j
ZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50OworICAgIENoaWxkUHJvY2Vzc1Byb3h5
OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09
ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBk
aWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6
ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0
YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkp
OworCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlUGF5bWVudFByb2Nlc3NDYWxs
YmFja0lEKCk7CisgICAgbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2Fs
bGJhY2tJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworCisgICAgc2VuZChNZXNzYWdl
czo6UGF5bWVudFByb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMs
IGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkZWxldGVX
ZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IGRhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9
IGdlbmVyYXRlUGF5bWVudFByb2Nlc3NDYWxsYmFja0lEKCk7CisKKyAgICBtX3BlbmRpbmdEZWxl
dGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZWxldGVXZWJz
aXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCks
IDApOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4m
IG9yaWdpbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CisKKyAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gZ2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQoKTsKKyAgICBtX3BlbmRpbmdE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9j
ZXNzOjpEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoc2Vzc2lvbklELCBkYXRhVHlwZXMsIG9y
aWdpbnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpn
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJv
eHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxp
ZXMuYXBwZW5kKFdURk1vdmUocmVwbHkpKTsKKworICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpM
YXVuY2hpbmcpIHsKKyAgICAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKys7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3Mg
PSBmYWxzZTsKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW47CisKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc2VjdXJpdHlPcmlnaW4pLCAwLCBJUEM6
OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9u
JikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFByb2Nlc3NQb29sID0gbWFrZVJlZihtX3Byb2Nlc3NQ
b29sKTsKKworICAgIC8vIFRoZSBwYXltZW50IHByb2Nlc3MgbXVzdCBoYXZlIGNyYXNoZWQgb3Ig
ZXhpdGVkLCBzbyBzZW5kIGFueSBwZW5kaW5nIHN5bmMgcmVwbGllcyB3ZSBtaWdodCBoYXZlLgor
ICAgIHdoaWxlICghbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKSB7CisgICAg
ICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy50YWtlRmlyc3QoKTsK
KworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXBseShJUEM6OkF0dGFj
aG1lbnQoKSk7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVu
dCgwLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICAg
ICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KCkpOworI2Vsc2UKKyAgICAgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyNlbmRpZgorICAgIH0KKworICAgIHdoaWxlICghbV9wZW5kaW5nRmV0Y2hXZWJzaXRl
RGF0YUNhbGxiYWNrcy5pc0VtcHR5KCkpCisgICAgICAgIG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURh
dGFDYWxsYmFja3MudGFrZShtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLmJlZ2lu
KCktPmtleSkoV2Vic2l0ZURhdGEgeyB9KTsKKworICAgIHdoaWxlICghbV9wZW5kaW5nRGVsZXRl
V2Vic2l0ZURhdGFDYWxsYmFja3MuaXNFbXB0eSgpKQorICAgICAgICBtX3BlbmRpbmdEZWxldGVX
ZWJzaXRlRGF0YUNhbGxiYWNrcy50YWtlKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJh
Y2tzLmJlZ2luKCktPmtleSkoKTsKKworICAgIHdoaWxlICghbV9wZW5kaW5nRGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9wZW5kaW5nRGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLnRha2UobV9wZW5kaW5nRGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmJlZ2luKCktPmtleSkoKTsKKworICAgIC8vIFRl
bGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMgcGF5bWVudCBwcm9jZXNzLiBUaGlz
IG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgorICAgIG1fcHJvY2Vzc1Bvb2wucGF5bWVudFBy
b2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkK
K3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb25JZGVudGlm
aWVyKQoreworICAgIEFTU0VSVCghbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuaXNFbXB0eSgp
KTsKKworICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy50YWtlRmly
c3QoKTsKKworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIHJlcGx5KGNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICByZXBseShJUEM6OkF0dGFjaG1l
bnQoY29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkp
OworI2VsaWYgT1MoV0lORE9XUykKKyAgICByZXBseShjb25uZWN0aW9uSWRlbnRpZmllci5oYW5k
bGUoKSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIGNvbnN0IFdlYnNpdGVEYXRhJiB3ZWJzaXRlRGF0YSkKK3sKKyAgICBhdXRvIGNhbGxiYWNr
ID0gbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOwor
ICAgIGNhbGxiYWNrKHdlYnNpdGVEYXRhKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
OjpkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8g
Y2FsbGJhY2sgPSBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy50YWtlKGNhbGxi
YWNrSUQpOworICAgIGNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7Cisg
ICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0Nh
bGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIGNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1
bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikK
K3sKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBj
b25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRp
ZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIEZJWE1FOiBE
byBiZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytp
KQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAgIAorICAgIG1fbnVtUGVu
ZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUx
Y2NhZmZmM2RhMWI4Nzc1N2UwMjFkZWMzYjk3MzVmOGU2NTAyNmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaApA
QCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVk
ZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFzcyBXZWJQ
cm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBXZWJzaXRl
RGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBDaGlsZFBy
b2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7CisKKyAgICB2b2lk
IGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhKT4mJik7CisgICAgdm9pZCBk
ZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisKKyAgICB2b2lkIGdl
dFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
KTsKKworICAgIHZvaWQgdGVybWluYXRlRm9yVGVzdGluZygpOworCitwcml2YXRlOgorICAgIC8v
IENoaWxkUHJvY2Vzc1Byb3h5CisgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVu
Y2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0
RG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpOworCisgICAgLy8gTWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisgICAg
dm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNp
dGVEYXRhJik7CisgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBj
YWxsYmFja0lEKTsKKworICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBk
aWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKSBvdmVycmlkZTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOwor
CisgICAgdW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVl
PE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
RGVsYXllZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKKworICAgIEhhc2hNYXA8
dWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPj4gbV9wZW5kaW5n
RmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+PiBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrczsK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBtX3BlbmRp
bmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3M7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwODhlMGMzNzBhMTk0Yjc5ZDkwYmI4Mjcy
NWVjNWIxMjJmNWQ0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNzUHJveHkgTGVnYWN5UmVj
ZWl2ZXIgeworICAgIERpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6
QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKKworICAgIERpZEZldGNoV2Vic2l0ZURh
dGEodWludDY0X3QgY2FsbGJhY2tJRCwgc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0
ZURhdGEpCisgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKKyAg
ICBEaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKK30K
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBmYTQ1NzYyZWNlYmEwMTNhNmFjYTRmOTY0
ZGE4NTY2Mzk3NDFkNTc1Li5iZWM3OWI1NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2OTliNTUzZjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAt
NDYsNCArNDYsMTEgQEAgdm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICBtX2NsaWVudC5uZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYkNvbnRleHRDbGll
bnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQor
eworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29u
dGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5o
CmluZGV4IDgwYzMxMTIyYzA3NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYuLjU5YjNhNDA3
OTEwOGYyMzhmMWQ2ZjhhYmYxYWI5ZWRjYzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIFdlYkNvbnRl
eHRDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFzZT4gewogcHVi
bGljOgogICAgIHZvaWQgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZChXZWJQcm9j
ZXNzUG9vbCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9v
bCopOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXltZW50UHJvY2Vz
c0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICAKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0MDNkYjI5Zjk0
MDA0MzhiYTMyYTYwYzc1ODI3NDkzNGZhNi4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVjMDY3ZDFmMGQ5
ZDQ1OWExMjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dFN1cHBsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3Vw
cGxlbWVudC5oCkBAIC0yOSw2ICsyOSwxMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IE5ldHdvcmtQcm9jZXNzUHJveHk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNz
IFBheW1lbnRQcm9jZXNzUHJveHk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKQEAgLTU0
LDYgKzU4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKE5l
dHdvcmtQcm9jZXNzUHJveHkqKQogICAgIHsKICAgICB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBheW1lbnRQcm9j
ZXNzUHJveHkqKQorICAgIHsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKIAogICAgIFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvY2Vzc1Bvb2w7IH0KICAgICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1fcHJvY2Vzc1Bv
b2wgPSBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggYTcyYjU3MTJlMWY2NjIzNjZmNDQ0YWU0OTZmMmIzNWJjN2M0OTk2Yi4uMjU0OGZj
MjYwZDI2NTM1NmViY2UxMTkwYjU2YTg0ODYwMzAxMDg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTQsNiArNTQsMTAgQEAKICNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5o
IgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkLmgi
CiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKQEAgLTQ0MCw2ICs0NDQsOSBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlzQ3JpdGljYWwp
CiB7CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJl
Y2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKICAgICBzZW5kVG9OZXR3b3Jr
aW5nUHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1
cmVFdmVudChpc0NyaXRpY2FsKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBz
ZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVt
b3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBQbHVnaW5Qcm9j
ZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuc2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNh
bCk7CiAjZW5kaWYKQEAgLTYwNCw2ICs2MTEsNDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3gK
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJv
Y2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3NBbmRXZWJzaXRl
RGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUqIHJlbGV2YW50RGF0YVN0b3JlKQoreworICAgIGlm
ICghbV9wYXltZW50UHJvY2VzcykgeworICAgICAgICBhdXRvIHBhcmFtZXRlcnMgPSBtX3dlYnNp
dGVEYXRhU3RvcmUgPyBtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5wYXlt
ZW50UHJvY2Vzc1BhcmFtZXRlcnMoKSA6IChyZWxldmFudERhdGFTdG9yZSA/IHJlbGV2YW50RGF0
YVN0b3JlLT5wYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKSA6IEFQSTo6V2Vic2l0ZURhdGFTdG9y
ZTo6ZGVmYXVsdERhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCkucGF5bWVudFByb2Nlc3NQ
YXJhbWV0ZXJzKCkpOworCisgICAgICAgIEFTU0VSVChwYXJhbWV0ZXJzLnNlc3Npb25JRC5pc1Zh
bGlkKCkpOworCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBh
eW1lbnRQcm9jZXNzUHJveHk+KCp0aGlzKTsKKyAgICAgICAgbV9wYXltZW50UHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHBh
cmFtZXRlcnMpLCAwKTsKKyAgICB9CisKKyAgICBpZiAoIXJlbGV2YW50RGF0YVN0b3JlIHx8ICFt
X3dlYnNpdGVEYXRhU3RvcmUgfHwgcmVsZXZhbnREYXRhU3RvcmUgPT0gJm1fd2Vic2l0ZURhdGFT
dG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BheW1l
bnRQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6SW5pdGlhbGl6ZVdlYnNp
dGVEYXRhU3RvcmUocmVsZXZhbnREYXRhU3RvcmUtPnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygp
KSwgMCk7Cit9CisgICAgCit2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIFBBTDo6U2Vzc2lvbklE
IGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgZW5zdXJlUGF5
bWVudFByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmU6OmV4aXN0aW5n
Tm9uRGVmYXVsdERhdGFTdG9yZUZvclNlc3Npb25JRChpbml0aWFsU2Vzc2lvbklEKSk7CisKKyAg
ICBtX3BheW1lbnRQcm9jZXNzLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vz
c1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1l
bnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2Vzc1Byb3h5
KQoreworICAgIEFTU0VSVChtX3BheW1lbnRQcm9jZXNzKTsKKyAgICBBU1NFUlQocGF5bWVudFBy
b2Nlc3NQcm94eSA9PSBtX3BheW1lbnRQcm9jZXNzLmdldCgpKTsKKworICAgIGZvciAoYXV0byYg
c3VwcGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCisgICAgICAgIHN1cHBsZW1lbnQt
PnByb2Nlc3NEaWRDbG9zZShwYXltZW50UHJvY2Vzc1Byb3h5KTsKKworICAgIG1fY2xpZW50LnBh
eW1lbnRQcm9jZXNzRGlkQ3Jhc2godGhpcyk7CisKKyAgICBpZiAobV9hdXRvbWF0aW9uU2Vzc2lv
bikKKyAgICAgICAgbV9hdXRvbWF0aW9uU2Vzc2lvbi0+dGVybWluYXRlKCk7CisKKyAgICBtX3Bh
eW1lbnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQ
cm9jZXNzUHJveHkmIHByb3h5LCBTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwg
c3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbklEKQogewpAQCAtNjgwLDYgKzcy
OSw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZh
dGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3Nl
cyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKCkpKTsKICAgICB9
IGVsc2UgewogICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5yZW1vdmVTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJv
Y2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgICAgIHNlbmRU
b0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwogICAgIH0KIH0KQEAgLTEzMTgs
NiArMTM3MCwxNiBAQCBQcm9jZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6Om5ldHdvcmtQcm9jZXNzSWRl
bnRpZmllcigpCiAgICAgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUHJvY2Vzc0lEIFdlYlByb2Nl
c3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIGlmICghbV9wYXltZW50
UHJvY2VzcykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9wYXltZW50UHJvY2Vz
cy0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2Rl
UGF0aChib29sIGFsd2F5c1VzZUNvbXBsZXhUZXh0KQogewogICAgIG1fYWx3YXlzVXNlc0NvbXBs
ZXhUZXh0Q29kZVBhdGggPSBhbHdheXNVc2VDb21wbGV4VGV4dDsKQEAgLTE1NzMsNiArMTYzNSwx
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKICAgICBp
ZiAobV9uZXR3b3JrUHJvY2VzcykKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKSwgMCk7CiB9Cisg
ICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQ
cm9jZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BheW1lbnRQcm9jZXNzLT50ZXJtaW5h
dGVGb3JUZXN0aW5nKCk7CisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVy
bWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKaW5kZXggZmY4ZWIxNTdmZWUwMzRjNWVhZTZmMTZhNDQxY2E1NThkM2JjYzk3Yy4u
ZDQwNWQzYTc5ODVlZWQwZDE4ZjBlYmQzMDRiZDk3MjhhZGZkOWE0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAi
UHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHku
aCIKICNpbmNsdWRlICJTdGF0aXN0aWNzUmVxdWVzdC5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgorI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q29ubmVjdGlvbkNs
aWVudC5oIgpAQCAtMTczLDYgKzE3NiwxMiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gdm9pZCBzZW5kU3luY1RvTmV0d29ya2luZ1Byb2Nlc3MoVCYmIG1l
c3NhZ2UsIFUmJiByZXBseSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9O
ZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAvLyBTZW5kcyB0aGUgbWVzc2FnZSB0byBX
ZWJQcm9jZXNzIG9yIFBheW1lbnRQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBw
cm9jZXNzIG1vZGVsLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVu
dFByb2Nlc3MoVCYmIG1lc3NhZ2UpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2Vu
ZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBwcm9jZXNzRGlkRmlu
aXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSopOwogCiAgICAgLy8gRGlzY29ubmVjdCB0aGUg
cHJvY2VzcyBmcm9tIHRoZSBjb250ZXh0LgpAQCAtMjE1LDYgKzIyNCw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogCiAgICAgUHJvY2Vzc0lEIG5ldHdvcmtQ
cm9jZXNzSWRlbnRpZmllcigpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUHJv
Y2Vzc0lEIHBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAKICAgICBXZWJQYWdlR3JvdXAmIGRlZmF1bHRQYWdlR3JvdXAoKSB7IHJl
dHVybiBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCk7IH0KIApAQCAtMjc0LDYgKzI4Niw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJv
b2wpOwogCiAgICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGlu
ZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9pZCB0ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nl
c3NlcygpOwogICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25E
ZWxheSgpOwpAQCAtMzM4LDYgKzM1MywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBlbnN1cmVQYXltZW50UHJvY2Vz
c0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSogcmVsZXZhbnREYXRhU3RvcmUp
OworICAgIFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzKCkgeyByZXR1cm4gbV9w
YXltZW50UHJvY2Vzcy5nZXQoKTsgfQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9j
ZXNzUHJveHkqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsKICAgICBTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJ
RCh1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwpAQCAtNjIzLDYgKzY0NCw5IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9kaWROZXR3b3JrUHJvY2Vzc0NyYXNoIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50UHJvY2Vzc1By
b3h5PiBtX3BheW1lbnRQcm9jZXNzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPj4gbV9k
aWN0aW9uYXJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0
aWNzUmVxdWVzdD4+IG1fc3RhdGlzdGljc1JlcXVlc3RzOwpAQCAtNzE4LDYgKzc0MiwyMiBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZO
ZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZv
cndhcmQ8VD4obWVzc2FnZSksIDApOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50
UHJvY2VzcyhUJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAobV9wYXltZW50UHJvY2VzcyAmJiBtX3Bh
eW1lbnRQcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNz
LT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNo
aW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3NB
bmRXZWJzaXRlRGF0YVN0b3JlKG51bGxwdHIpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQo
c3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjOTk0N2RiZGIxNTJhYzdlZTJkMWMz
MjQzNmEwMjE5NWJkMzZkZDlkLi41Zjk2YTBlMWYyNjA1M2RkNWUyNmIwMDg2YmY1ODA4MWIxNTU3
YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTYzOSw2ICs2MzksMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3Byb2Nl
c3NQb29sLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVwbHkp
KTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShyZXBs
eSkpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAhUExBVEZP
Uk0oQ09DT0EpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAz
MzI3NGRmNWQ2MWUwYmQ4NjMyY2UzMDk5MzQ5YTk3NjNjZmIzOTQ4Li45Mzk0M2Y5OGQxYTg2MzVj
NmFkNzU4YjVhNDRiNDJjMTZmN2I0MGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaApAQCAtMjc4LDYgKzI3OCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2
b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0Rl
YnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2Rl
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCAzMmZkYThiMGFkY2RjYWI5NTEyOGYyNjQzYjM5OTZkZTEz
YjZlYWMxLi5hNTViZTVlMjI2NWUxZTlhZDk4ZWIzYTIwNThmMWJlN2YwMjQxMTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0zNyw2ICszNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3Vw
cG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9u
SGFuZGxlKSBEZWxheWVkCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkgLT4g
KElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERp
ZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmNDA3NDZj
OTQxZjg4ZTEwY2QwNjJlYTc4M2RkZmRhZDdiZjExOTYzLi4xYTJhYTFhZWQ2ZDIyOTMxMmRkNmIz
ZGJkMjY0ODM2N2M1MmI3N2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQsMTAgQEAK
ICNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2wuaCIKQEAgLTEzNSw2ICsxMzksOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURh
dGFTdG9yZSgpCiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldChtX3Nl
c3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCkucmVtb3Zl
KG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nl
c3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6
OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihtX3Nlc3Npb25JRCkpOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgICAgICAgICBpZiAoYXV0byogbmV0d29ya1By
b2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAgICAgICBu
ZXR3b3JrUHJvY2Vzcy0+cmVtb3ZlU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgICAgIH0KQEAg
LTE2MjQsNiArMTYzMSwxOSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAogICAgIGNhbGxiYWNr
KCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJz
KCkKK3sKKyAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOworCisgICAgUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIHBhcmFtZXRlcnMu
c2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7CisKKyAgICByZXR1cm4gcGFyYW1ldGVyczsKK30KKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiBXZWJzaXRlRGF0YVN0b3JlOjpwZW5kaW5nQ29va2llcygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGNvcHlUb1ZlY3RvcihtX3BlbmRpbmdDb29raWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA5MTYzZDk4
OTQ1MTE2NGNmYmJkM2E3ODA5ZTIyNGE5ODYxZmY3OTc4Li44ZDEyNDAyNmZhOGI5ZDdkMDE1ZDZi
YTFkYTViOTU5OGE5YzE1NzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Miw2ICs2Miw5IEBAIGNsYXNz
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFG
ZXRjaE9wdGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IE1vY2tXZWJB
dXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xNjksNiArMTcyLDkgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vzc1Bvb2wmKSBjb25zdDsK
IAogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnMoKTsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
IHBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBwZW5kaW5nQ29va2llcygpIGNv
bnN0OwogICAgIHZvaWQgYWRkUGVuZGluZ0Nvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGY2MmU2MDQzMWJlZmI1MmE4ZTAwMDEyYTc1NDk0NjgwYTVmYzk5NWUuLjg0NDFlM2MxYWU5NzU1
M2I5NzRiOWYwZGVmOGIyN2FkNjU2MTIwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ0LDYgKzg0NCw4IEBACiAJCTM3RjkwREUz
MTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQx
RDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9OwogCQkzN0ZDMTk0NzE4NTBGQkYy
MDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBGQkYy
MDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5NEIxODUx
MEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2QTAw
OENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OworCQkzOTEz
NjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNDIxOTND
MTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiICovOyB9OworCQkzOTEz
NjAyNzIxOTNDMTcwMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNjIxOTND
MTZGMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovOyB9OwogCQkzRjQx
OEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
RjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CiAJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8q
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkw
RkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKQEAgLTg4NSw3ICs4ODcsNiBAQAogCQk0
NjBGNDg5MDFGOTk2RjcxMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25N
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYwRjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
TWVzc2FnZXMuaCAqLzsgfTsKIAkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRp
b25SZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4
MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IH07Ci0J
CTQ2NkJDMDNDMUZBMjY2REEwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY2QkMw
MzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi87
IH07CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3Bv
bnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3Bv
bnNpdmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNDZERjA2M0MxRjM5MDVGODAwMTk4MEJCIC8qIE5l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDZERjA2M0ExRjM5MDVFNTAwMTk4MEJCIC8qIE5ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlci5oICovOyB9OwogCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjNBMTlBRjdCMDQwMDJFQkFCNSAv
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OwpAQCAtOTAy
LDYgKzkwMywxMSBAQAogCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyogX1dLTGlua0ljb25Q
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUMwQzk3OTFEREQ3ODU0MDAzMkNBRDMgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRkJCOUIx
Mjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5MTI4OEM5NUUwMEFGRkRG
NCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJCTUxMTBBRTBEMTMzQzE2Q0Iw
MDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFi
YXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NTExOEU5QTExRjI5NTMyNjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4
RTk5RjFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCAqLzsgfTsKKwkJNTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oICovOyB9OworCQk1MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTExRjdENDExRUIxQkNGNTAwRTQ3
QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTExRjhBN0IxMzhCNDYwOTAwQTk1
RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGlt
TGlicmFyeS5oICovOyB9OwogCQk1MTFGOEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogU2VjSXRlbVNo
aW1MaWJyYXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSAqLzsg
fTsKQEAgLTk1Myw2ICs5NTksNyBAQAogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1
MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMy
OTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBF
IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTUxN0RENUJG
MTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIg
LyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYy
MzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5o
ICovOyB9OwogCQk1MThBQ0FFQTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4
QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MThBQ0YxMTEyQjAx
NUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDRjEwMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0Ny
ZWRlbnRpYWxUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC05NjcsNyArOTc0LDYgQEAKIAkJNTFBQ0JCODIxMjdBOEJBRDAwRDIwM0I5IC8q
IFdlYkNvbnRleHRNZW51UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxQUNCQjgxMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVBy
b3h5LmggKi87IH07CiAJCTUxQUNCQkEwMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVu
dVByb3h5TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUFDQkI5RTEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oICov
OyB9OwogCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjE1QTgz
MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUxQkVCNjJDMUYzQTVBRDcwMDUw
MjlCOSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQkVCNjJBMUYzQTVBQ0QwMDUwMjlCOSAvKiBXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCAqLzsgfTsKIAkJNTFDMEM5NzQxRERENzYwMDAwMzJDQUQz
IC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQzBDOTcyMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0Rl
bGVnYXRlLmggKi87IH07CiAJCTUxQ0QxQzVFMUIzNDkzQjQwMDE0MkNBNSAvKiBXS1NlY3VyaXR5
T3JpZ2luUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUNEMUM1QTFCMzQ5M0E5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpblJlZi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQ0QxQzY1MUIz
NEI5RDQwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUNEMUM1RjFCMzRCOUM5MDAxNDJDQTUgLyogV0tT
ZWN1cml0eU9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsg
fTsgfTsKQEAgLTk4MCw2ICs5ODYsOCBAQAogCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyog
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjYxNjM2N0RBMjAw
MTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JF
OSAvKiBJREJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLzsg
fTsKKwkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZBMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi87IH07CisJCTUxRTM1MjAwMTgwRjVE
MEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBF
NTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MUU2
QzE2NDFGMjkzNUREMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3Rl
bnRTdG9yYWdlLmggKi87IH07CiAJCTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRs
ZURPTVdpbmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93
RXh0ZW5zaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2
MERFMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07
CkBAIC0xMTg1LDcgKzExOTMsNiBAQAogCQk4M0IzQ0IxMDIwRTJBQjAxMDA0NDFFOUIgLyogUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzY4MURDQTIwRTI5MDRBMDBDMjQ5Q0QgLyogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggKi87IH07CiAJCTgzRDQ1NEQ3MUJFOUQzQzQw
MDZDOTNCRCAvKiBOZXR3b3JrTG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNENDU0RDYxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtM
b2FkQ2xpZW50LmggKi87IH07CiAJCTgzRUU1NzVDMURCN0Q2MTEwMEM3NEM1MCAvKiBXZWJWYWxp
ZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNFRTU3NUExREI3RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmggKi87IH07Ci0JCTgzRjFBMDdBMUY5NkU3NzkwMDQ1Qjk0RSAvKiBXZWJTV09y
aWdpblRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0YxQTA3ODFGOTZFNzcxMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovOyB9Owog
CQk4M0Y5NjQ0RTFGQTBGNzZFMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9u
bHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjk2
NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oICov
OyB9OwogCQk4NDQ3Nzg1MzE3NkZDQzA4MDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0TWVkaWFUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDQ3Nzg1MTE3NkZDQUMxMDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0TWVkaWFUeXBlLmggKi87IH07CiAJCTg2RTY3QTI1MTkxMEI5RDEwMDAwNEFCNyAvKiBQ
cm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NkU2N0EyMTE5MEY0MTE4MDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oICov
OyB9OwpAQCAtMTE5OCw3ICsxMjA1LDYgQEAKIAkJOTMyNjExNjEyMTQwNTRGNDAwMDgwNkU3IC8q
IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5Mjg4REQyMTQwNEQ2QzAwRUJCQTMzIC8qIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oICovOyB9OwogCQk5MzNERjgyRTFCM0JDMDkwMDBBRUE5RTMgLyogV0tJ
bWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMzREY4MkQxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2
aWV3Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8q
IFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0
ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0
NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYy
REQyMTUyQjZGNjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0
NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJERTIxNTJCNzEw
MDBFNkQ1REYgLyogV2ViU1dPcmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3Jp
Z2luU3RvcmUuaCAqLzsgfTsKIAkJOTM1NkYyREYyMTUyQjcyMzAwRTZENURGIC8qIFdlYlNXT3Jp
Z2luU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNCQTA0REYyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwICovOyB9
OwpAQCAtMTU0OSw2ICsxNTU1LDcgQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlE
M0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAw
MzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUw
MDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2Uu
aCAqLzsgfTsKKwkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYz
OUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovOyB9OwogCQlFMTFE
MzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3RTM3MTUwQUI1RTIw
MEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJRTE0QTk1NEExNkUw
MTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0
MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJ
RTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NTE2NkVBQkIyMDAx
NDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCAqLzsgfTsKQEAgLTI5NTEsNiArMjk1OCwyNSBA
QAogCQkzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVs
ZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnJvd3Np
bmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzN0ZDMTk0ODE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU1VS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwMjIx
OTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDAzMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJT
V0NsaWVudENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2
MDA0MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDA1MjE5Mzc2MDgwMDU2NDkyQSAvKiBT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTM5MTM2MDA2MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzkxMzYwMDcyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5
MTM2MDA4MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luVGFibGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwOTIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzkxMzYwMEEyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAw
QjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwQzIxOTM3
NjA4MDA1NjQ5MkEgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEQyMTkzNzYwODAwNTY0OTJBIC8q
IFdlYlNXT3JpZ2luVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
U1dPcmlnaW5UYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwRTIx
OTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBGMjE5Mzc2MDgwMDU2NDkyQSAv
KiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDEwMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzOTEzNjAxMTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVu
dEZldGNoLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkx
MzYwMTIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyNDIxOTNDMTQzMDA1
NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50LnNiICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzkxMzYwMjYyMTkzQzE2RjAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAv
KiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNjE4ODdCRDk3
MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTk1LDEw
ICszMDIxLDYgQEAKIAkJNDEzMDc1QTYxREU4NUVFNzAwMzlFQzY5IC8qIExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5oOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzVBNzFERTg1RUU3MDAzOUVD
NjkgLyogTGliV2ViUlRDUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBsaW5lRW5kaW5nID0gMDsgbmFtZSA9IExpYldlYlJUQ1Byb3ZpZGVyLmNwcDsgcGF0aCA9IE5l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07
CiAJCTQxMzA3NUE4MURFODVFRTcwMDM5RUM2OSAvKiBMaWJXZWJSVENQcm92aWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBuYW1lID0gTGliV2ViUlRDUHJv
dmlkZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OwotCQk0MTMxRjNDRTFGOTZBNDk1MDA1OTk5NUEgLyogU2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
MTMxRjNDRjFGOTZBOTM2MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEzMUYzRDAxRjk2QkND
ODAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTMxRjNFMDFGOTg3MTJDMDA1OTk5NUEgLyogV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzNUZCQ0YxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTM1RkJEMDFGNEZCN0YyMDA3NEM0N0IgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2Fj
aGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2lu
ZUNhY2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTNDQ0Q0RjIwREVCQzJG
MDA2NUEyMUEgLyogY29tLmdvb2dsZS5nb29nbGV0YWxrYnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xlLmdvb2dsZXRhbGticm93c2VycGx1Z2luLnNiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAxMSw2ICszMDMzLDcgQEAKIAkJNDE1N0U0
QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2I7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODhDMTU0MjExMzc3NzAwMDEyQUJDRCAvKiBwcm9j
ZXNzLW5ldHdvcmstc2FuZGJveC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlw
dC5zaDsgcGF0aCA9ICJwcm9jZXNzLW5ldHdvcmstc2FuZGJveC1lbnRpdGxlbWVudHMuc2giOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1NjIxMTM3N0U4MDAxMkFCQ0QgLyog
cHJvY2Vzcy13ZWJjb250ZW50LXNhbmRib3gtZW50aXRsZW1lbnRzLnNoICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7IHBhdGgg
PSAicHJvY2Vzcy13ZWJjb250ZW50LXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4OEMxNTcyMTEzNzg1MjAwMTJBQkNEIC8qIFBheW1lbnQt
T1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVu
dHM7IHBhdGggPSAiUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1ODIxMTM3ODUyMDAxMkFCQ0QgLyogV2ViQ29udGVu
dC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVt
ZW50czsgcGF0aCA9ICJXZWJDb250ZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUNCMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3
RUNDMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMDIxLDcgKzMwNDQsNiBAQAogCQk0MTg5N0VENDFGNDE1RDg1MDAx
NkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxODk3RUQ1MUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUQ2MUY0MTVEODYwMDE2
RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVT
dG9yYWdlRW5naW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE5QUNGOUIx
Rjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUFDODY4MTFFMDQyRTUzMDAz
MDMwNzQgLyogV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBsaW5l
RW5kaW5nID0gMDsgbmFtZSA9IFdlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0
d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9ICI8bm9uZT4iOyB9Owog
CQk0MUIyOEIwODFGODNBRDNFMDBGQjUyQUMgLyogUlRDUGFja2V0T3B0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENQYWNrZXRPcHRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxQjI4QjA5MUY4M0FEM0UwMEZCNTJBQyAvKiBSVENQYWNrZXRP
cHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1BhY2tl
dE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA1Nyw5ICszMDc5
LDYgQEAKIAkJNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2M0ZENDgxMUVC
OTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NTI1MEU1MUVDRjUyQ0QwMDIwMjVDQiAvKiBXZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNDY2QkMwMzgxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDY2
QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2NkJDMDNBMUZBMjY2Qzkw
MDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNE
RURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3
NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2
ZW5lc3NUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYzOTFGMzkw
NUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDc3LDYgKzMwOTYsNyBAQAogCQk0
RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVt
U2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNl
Y0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUExODBGNzRGMTAw
OTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEgLyogQ29va2llU3RvcmFn
ZVV0aWxzQ0YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29r
aWVTdG9yYWdlVXRpbHNDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIz
NzExQzczRDIyQjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcyMUM3M0QzN0IwMDc5
OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwOTks
MTIgKzMxMTksMTIgQEAKIAkJNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRN
ZW51SXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4
dE1lbnVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEwQUUwQTEz
M0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3Jh
Z2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlUHJvY2Vzc1By
b3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTMxRjI5
NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5
QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5
RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdl
UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3Jh
Z2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTE4RTk5RTFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTk5RjFG
Mjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExRjdEM0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkw
MEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21h
Yy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMx
MjIsNiArMzE0Miw3IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0
TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1l
bnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5Nzgw
MEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0
TWVudUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4
OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0
TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUw
NUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTJGNTg4RTEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4
OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTgzLDE1ICszMjA0LDE0IEBACiAJCTUx
N0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTUyRDYxRjQzQTlCNjAwRENEQzBB
IC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MkQ3MUY0M0E5QjYwMERDREMwQSAvKiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTV0NsaWVudENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE3
QTUzMDMxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTdBNTMwQzFGNDc5RTk3MDBEQ0RDMEEg
LyogV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE3QTUzMEQxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
N0E1MzBFMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDbGll
bnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5
NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdERDVC
QzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1l
bnRQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVu
dFByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTgzQjM5MzEz
NzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7
IHBhdGggPSBTaGltLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3
MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1l
bnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMTEsNiArMzIzMSw3IEBACiAJCTUxQTU1
NjAwMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0UxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklE
QlJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJREJS
ZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3RjFEMUM0Q0I5
MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYklEQlJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE2MEIy
OTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gUGF5bWVudFNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxQTcyOERDMUIxQkFEMkQwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTmF2aWdhdGlv
bkFjdGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjIx
MjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGNDEy
NUJGOEQ0MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMy
MjgsOCArMzI0OSw2IEBACiAJCTUxQUNDOTM1MTYyODA2NDgwMDM0MjU1MCAvKiBOZXR3b3JrUHJv
Y2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQ
cm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCMTVBODIx
Mzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudmlyb25tZW50VXRpbGl0aWVzLmNwcDsgcGF0aCA9
IHVuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUIxNUE4MzEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRW52aXJvbm1lbnRVdGlsaXRpZXMuaDsg
cGF0aCA9IHVuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTFCRUI2MjkxRjNBNUFDRDAwNTAyOUI5IC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUJFQjYyQTFGM0E1QUNEMDA1MDI5Qjkg
LyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VX
b3JrZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUMwQzk3MjFE
REQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJY29uTG9hZGluZ0RlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxQzBDOTczMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVn
YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSWNvbkxvYWRp
bmdEZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDMEM5NzkxRERE
Nzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTMyNzAsNiArMzI4OSwxMSBAQAogCQk1MUREOUYyNzE2MzY3REEyMDAx
NTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0Mw
MEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSURCVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBG
NUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRl
ckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1l
cGFkUHJvdmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMx
NUYxRjI5MzU1MTAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3Rv
cmFnZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
ZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3Rl
bnRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjUzLDggKzM2Nzcs
NiBAQAogCQk4M0Q0NTRENjFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0xvYWRDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFRTU3NTkxREI3RDYwNjAwQzc0QzUwIC8qIFdl
YlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODNFRTU3NUExREI3RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZhbGlk
YXRpb25NZXNzYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzRjFB
MDc3MUY5NkU3NzAwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luVGFibGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk4M0YxQTA3ODFGOTZFNzcxMDA0NUI5NEUgLyogV2ViU1dPcmln
aW5UYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV09yaWdpblRh
YmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRjk2NDRCMUZBMEY3NjIwMEM0
Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAv
KiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NDQ3Nzg1MTE3NkZDQUMxMDBDREM3QkIgLyogSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzgzMCw3ICszODUyLDYgQEAKIAkJQTVEMzUwNEQxRDc4RjBEMjAw
NTEyNEE5IC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1RUZEMzhCMTZCMEU4OEMwMEIyRjBFOCAvKiBX
S1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tQYWdlVmlzaWJpbGl0eVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
MkQ1RDdGMTIzNkNCQTgwMEE4OEIxNSAvKiBBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAv
KiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5TdG9y
YWdlLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhDQ0REODE5M0FDOUUzMDA1
RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya2luZy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4Q0NE
RDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3QkQ5ODYzMTk0NjUzRDQwMEQzNTY5OCAvKiBEYXRhYmFzZXMtaU9TLmVudGl0bGVt
ZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRoID0gIkRhdGFiYXNlcy1pT1MuZW50aXRsZW1l
bnRzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNDksNyArNDM3MCw2IEBACiAJ
CURGNThDNjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2
ZVdlYldoZWVsRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktp
dC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3Rv
cmFnZS5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEzM0ZEODkxNDIzREQ3RjAw
RkM3QkZCIC8qIFdlYktpdC5pY25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgbmFtZSA9IFdlYktpdC5pY25zOyBwYXRoID0gUmVz
b3VyY2VzL1dlYktpdC5pY25zOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0
NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0
ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzOTQsNiArNDQxNCw3
IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFF
RTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZG
QjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3
MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBO
ZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTY4LDYgKzQ1ODksNyBAQAogCQkJCTFBQURERjRC
MTBEODJBRjAwMEQzRDYzRCAvKiBTaGFyZWQgKi8sCiAJCQkJQkMwMzJEQzMxMEY0MzgyNjAwNThD
MTVBIC8qIFVJUHJvY2VzcyAqLywKIAkJCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2Vi
UHJvY2VzcyAqLywKKwkJCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nl
c3MgKi8sCiAJCQkJNTEwQ0M3REExNjEzOEUwMTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzICov
LAogCQkJCTFBMEVDNkIwMTI0QkJEMzYwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzICovLAogCQkJ
CUMwQ0U3MjlEMTI0N0U3MUQwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCkBAIC00NzY5
LDYgKzQ3OTEsOCBAQAogCQkJCTdDMEJCOUE5MThEQ0RGNUEwMDA2QzA4NiAvKiBOZXR3b3JrLWlP
Uy5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdv
cmstT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEy
NzhGRSAvKiBOZXR3b3JrU2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQk0MTg4QzE1NzIxMTM3ODUy
MDAxMkFCQ0QgLyogUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCisJCQkJNTFB
NjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovLAogCQkJ
CUExRUREMkRCMTg4NEI5NjQwMEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAq
LywKIAkJCQlCQzgyODNGMjE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi54Y2Nv
bmZpZyAqLywKIAkJCQlCQzgyODNGNDE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS42
NC54Y2NvbmZpZyAqLywKQEAgLTQ5MjYsNiArNDk1MCw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAz
NDAwREQ3QzY4IC8qIEdhbWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8q
IGlvcyAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTUx
MThFOTlEMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50ICovLAogCQkJCTFBQUUwNThDMTI3OURD
RDQwMDg1MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAv
KiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdl
YnNpdGVEYXRhICovLApAQCAtNjIwMCw2ICs2MjI1LDMwIEBACiAJCQlwYXRoID0gUmVzb3VyY2Vz
L21hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM5MTM2MDAxMjE5Mzc2
MDgwMDU2NDkyQSAvKiBTdG9yYWdlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQkzOTEzNjAwRTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNs
aWVudEZldGNoLmNwcCAqLywKKwkJCQkzOTEzNjAwNTIxOTM3NjA4MDA1NjQ5MkEgLyogU2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoLmggKi8sCisJCQkJMzkxMzYwMTEyMTkzNzYwODAwNTY0OTJBIC8q
IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTEzNjAwNzIx
OTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi8s
CisJCQkJMzkxMzYwMEEyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQuaCAqLywKKwkJCQkzOTEzNjAxMjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmNwcCAqLywKKwkJCQkzOTEzNjAwNDIxOTM3NjA4MDA1NjQ5MkEgLyog
V2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggKi8sCisJCQkJMzkxMzYwMDIyMTkzNzYwODAwNTY0
OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgKi8sCisJCQkJMzkxMzYwMDMyMTkzNzYw
ODAwNTY0OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovLAorCQkJCTM5MTM2MDA5MjE5
Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMzkxMzYwMEIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcCAqLywKKwkJCQkzOTEzNjAxMDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaCAqLywKKwkJCQkzOTEzNjAwNjIxOTM3NjA4MDA1NjQ5MkEgLyog
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYw
MDgyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXT3JpZ2luVGFibGUuY3BwICovLAorCQkJCTM5MTM2
MDBEMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmggKi8sCisJCQkJMzkxMzYw
MEYyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAq
LywKKwkJCQkzOTEzNjAwQzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaCAqLywKKwkJCSk7CisJCQlwYXRoID0gU3RvcmFnZTsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTQxMzA3NTk3MURFODRFRDcwMDM5RUM2OSAvKiB3ZWJydGMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjM5NCwyNiAr
NjQ0MywxMyBAQAogCQkJcGF0aCA9IE5ldHdvcms7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OwotCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLyA9IHsKKwkJ
NTExOEU5OUQxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQxMzFGM0QwMUY5NkJDQzgwMDU5OTk1QSAvKiBT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovLAotCQkJCTQxMzFGM0NFMUY5NkE0OTUwMDU5
OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCAqLywKLQkJCQk0MTMxRjNDRjFGOTZB
OTM2MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluICovLAot
CQkJCTQxMzFGM0UwMUY5ODcxMkMwMDU5OTk1QSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50LmNwcCAqLywKLQkJCQk0MTlBQ0Y5QjFGOTgxRDI2MDA5RjFBODMgLyogV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovLAotCQkJCTUxQkVCNjI5MUYzQTVBQ0QwMDUwMjlC
OSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwICovLAotCQkJCTUxQkVCNjJBMUYzQTVB
Q0QwMDUwMjlCOSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCAqLywKLQkJCQk1MTdBNTMw
MzFGNDc5M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCAqLywKLQkJCQk1
MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi8sCi0J
CQkJNTE3QTUzMEMxRjQ3OUU5NzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbiAqLywKLQkJCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwICovLAotCQkJCTQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovLAotCQkJCTQ2NkJDMDNBMUZBMjY2
QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAq
LywKLQkJCQk4M0YxQTA3NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAg
Ki8sCi0JCQkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCAq
LywKKwkJCQk1MTE4RTk5RTFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwICovLAorCQkJCTUxMThFOTlGMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAogCQkJKTsKLQkJCXBhdGggPSBTdG9y
YWdlOworCQkJcGF0aCA9IFBheW1lbnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OwogCQk1MTFGOEVEQTE4MDg4MTY2MDA0N0RBOTYgLyogSW5kZXhlZERCICovID0gewpAQCAtNjUx
OSw2ICs2NTU1LDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMw
MDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERB
N0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgw
RTA1RDIwMDM5QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJ
KTsKKwkJCXBhdGggPSBQYXltZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJNTE4RThFRjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY1NzUsNiArNjYyMSwyMCBAQAog
CQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdE
QzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8q
IGlvcyAqLywKKwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3Mu
Y3BwICovLAorCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5o
ICovLAorCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNz
YWdlcy5pbiAqLywKKwkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAv
KiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgwRjc0
RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAq
LywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTc4LDcgKzcwMzgs
OCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5
M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAotCQkJ
CUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2Ig
Ki8sCisJCQkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudC5zYiAqLywKKwkJCQkzOTEzNjAyNjIxOTNDMTZGMDA1NjQ5MkEgLyogY29tLmFwcGxlLldl
YktpdC5TdG9yYWdlLnNiICovLAogCQkJCUE3OENDREQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKQEAg
LTcwMjcsNyArNzA4OCw3IEBACiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdv
cmsgKi8sCiAJCQkJMzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVz
ZXIpICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAotCQkJ
CTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAorCQkJCTM5MTM2MDAxMjE5
Mzc2MDgwMDU2NDkyQSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2Mzkw
QyAvKiBVc2VyQ29udGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2Vi
QXV0aGVudGljYXRpb24gKi8sCiAJCQkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNv
cmVTdXBwb3J0ICovLApAQCAtNzE4Miw2ICs3MjQzLDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1
MDBDNjUwQzUgLyogbWFjICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3
b3JrICovLAogCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICov
LAorCQkJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50ICovLAogCQkJCTFBRUZD
QzA1MTFEMDFGMzQwMDgyMTlEMyAvKiBQbHVnaW5zICovLAogCQkJCTJEMTU1MUE5MUY1QTlCNDIw
MDA2RTNGRSAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFBRjA4OUUxOTI2ODFBQzAwQjYz
OTBDIC8qIFVzZXJDb250ZW50ICovLApAQCAtODI0MCw3ICs4MzAyLDYgQEAKIAkJCQk1MUZBRUMz
NzFCMDY1NzMxMDAwOUM0RTcgLyogQ2hpbGRQcm9jZXNzTWVzc2FnZXMuaCAqLywKIAkJCQlFMTdB
RTJDMjE2QjlDNjNBMDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5z
YiAqLywKIAkJCQk3QTE1MDY3MjFERDU2Mjk4MDAxRjRCNTggLyogY29tLmFwcGxlLldlYktpdC5w
bHVnaW4tY29tbW9uLnNiICovLAotCQkJCUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20u
YXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5
IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovLAogCQkJCTFBQjdENjE3MTI4OEI5RDkwMENG
RDA4QyAvKiBEb3dubG9hZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUI3RDYx
ODEyODhCOUQ5MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eU1lc3NhZ2VzLmggKi8sCkBAIC04Mjcz
LDYgKzgzMzQsMTAgQEAKIAkJCQk1QzBCMTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1Nv
Y2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8q
IE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJE
ODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5o
ICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJ
CUNEQTI5QTI0MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJh
Y2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CkBAIC04MzA3LDEyICs4MzcyLDYgQEAKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyog
U3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJD
OSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCMzFBOTUx
NkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKLQkJCQk1MTE4
RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAotCQkJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3Nh
Z2VzLmggKi8sCi0JCQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNz
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAotCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlG
NSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKLQkJCQk1MTE4RTlBMzFGMjk1
OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAotCQkJCTUxMThFOUE0MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNz
YWdlcy5oICovLAogCQkJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg1OTEsNiArODY1MCwx
NCBAQAogCQkJbmFtZSA9IFBERjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJ
CUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXlt
ZW50UHJvY2Vzc0lPUy5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ4OUQyODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hl
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkwNTYsNiAr
OTEyMywxMCBAQAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxv
YWRTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAy
REZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBMTFG
Mjk1MzI2MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIg
LyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QUIxRjI5
NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRp
bmdEb3dubG9hZC5oIGluIEhlYWRlcnMgKi8sCkBAIC05Mzg1LDcgKzk0NTYsNiBAQAogCQkJCTQx
REM0NTlGMUUzREJEQTUwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDMzYxRDczMTkyN0ZBMzYwMDM2QTU5RCAvKiBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJj
aFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFCRUI2MkMxRjNBNUFENzAwNTAyOUI5
IC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM4REQz
ODAxRkU0NTIxNjAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVBvbGljeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE0ODMyRDcxQTlDREY5NjAwOEI0REZFIC8qIFdlYnNpdGVEYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTQ4MzJEMTFBOUJEQzJGMDA4QjRERkUgLyogV2Vic2l0ZURhdGFSZWNv
cmQuaCBpbiBIZWFkZXJzICovLApAQCAtOTM5NCwxMyArOTQ2NCwxMCBAQAogCQkJCTBFREU4NTAz
MjAwNEU3NUQwMDAzMDU2MCAvKiBXZWJzaXRlUG9wVXBQb2xpY3kuaCBpbiBIZWFkZXJzICovLAog
CQkJCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzNTZGMkRDMjE1MkI2
QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0E1MzEwMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjBGNDg5MDFG
OTk2RjcxMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzExQTlFQ0MyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3aXRj
aGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NkYyREUyMTUyQjcxMDAwRTZE
NURGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzRjFBMDdBMUY5
NkU3NzkwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzU2RjJERDIxNTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTdBNTJEOTFGNDNBOURBMDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNTI2MkJDMUZCOTUxNUQwMDcw
RTU3OSAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMDA0Myw2ICsxMDExMCw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTM5
MTM2MDI1MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQuc2IgaW4g
UmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI3MjE5M0MxNzAwMDU2NDkyQSAvKiBjb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2Uuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCUUxMUQzNUFFMTZCNjNEMUIw
MDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
NDE0REQzNzkyMEJGNDNGNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQu
c2IgaW4gUmVzb3VyY2VzICovLAogCQkJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3Jl
UHJlZGljdGlvbl9tb2RlbCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0xMDI1NSw3ICsxMDMyNCw2IEBA
CiAJCQlmaWxlcyA9ICgKIAkJCSk7CiAJCQlpbnB1dFBhdGhzID0gKAotCQkJCSIkKFNSQ1JPT1Qp
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5z
YiIsCiAJCQkJIiQoU1JDUk9PVCkvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5OZXR3b3JraW5nLnNiIiwKIAkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IiLAogCQkJKTsK
QEAgLTEwNjQ1LDYgKzEwNzEzLDExIEBACiAJCQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8q
IE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNG
OUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
QTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMmJmYWVlNDc2ZTFmNGJjY2NkYjI2NjBmZTVk
OGU2NmJkNjc0YTNkNy4uNWRmYzU1NTAwYzU2OTM4MTQ1Y2I2M2JmNzZkNWQ4Yjc2OTM5MGEwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmKSBmaW5hbDsKIAogICAgIHZvaWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY2hlZHVsZVBh
eW1lbnRKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZv
aWQgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VlNzg4
OTY0ODc5YjliOTc2ZGI0OWFlMDNlYTJkNWJhMGQ0NjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisK
KworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0
TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25u
ZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmUyMGFiZjZiZDM0NmM2YjFkYzJlNzE1ZTMx
MGVkM2Q1ZjMyNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
V1NlcnZlci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRl
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3Jl
YXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbigpOworICAgIAorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
bigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKwor
ICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0K
KyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0
dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjljMjMzNWY3OTFk
Mjg4Zjk1ZWMwMGFiOGYzMTc3ZWEyNWI1MDQwYS4uNTdkYWI2ZTVjMjMxYjljODMwMTMwODBkMDFj
ODg4NDNjMzQ5NGU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtNDMsNiArNDMsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0Rh
dGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1
ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgog
I2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAj
aW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVh
bS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTEyMTcsNiArMTIyMyw1
MCBAQCBXZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQog
ewogICAgIHJldHVybiBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAg
IEFTU0VSVChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1f
d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50
IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29u
bmVjdGlvbklkZW50aWZpZXIpLCAwKSkgeworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQorICAgICAgICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2Vu
ZCBzeW5jIG1lc3NhZ2UgZmFpbHVyZS4KKyAgICAgICAgICAgIC8vIEluIHRoaXMgcGFydGljdWxh
ciBjYXNlLCB0aGUgcGF5bWVudCBwcm9jZXNzIGNhbiBiZSB0ZXJtaW5hdGVkIGJ5IHRoZSBVSSBw
cm9jZXNzIHdoaWxlIHRoZQorICAgICAgICAgICAgLy8gY29ubmVjdGlvbiBpcyBiZWluZyBkb25l
LCBzbyB3ZSBhbHdheXMgd2FudCB0byBleGl0IGluc3RlYWQgb2YgY3Jhc2hpbmcuCisgICAgICAg
ICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM0
OC4KKyAgICAgICAgICAgIGV4aXQoMCk7CisjZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyNl
bmRpZgorICAgICAgICB9CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICAgICAg
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2Rl
ZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworI2VsaWYgT1Mo
REFSV0lOKQorICAgICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSk7CisjZWxpZiBPUyhX
SU5ET1dTKQorICAgICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpKTsKKyNlbHNlCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGlmICghSVBDOjpD
b25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAg
ICAgICAgICBDUkFTSCgpOworCisgICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24gPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKKworICAgIH0KKyAgICByZXR1cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb247Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQ
cm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggM2QyMWNjODgzYTUyNjQxYTQwYWMxMzk5YzFh
MmY5OWNkNDdiZDU3ZC4uNDU0YTkxYjZkMWU5MDc3M2FkMTczMjAwODQwODk5MDAxNjNmMDc5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05OCw2ICs5OCw5IEBAIGNs
YXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91
cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1cHBsZW1lbnQ7CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0
cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlBhZ2VHcm91cERhdGE7
CkBAIC0xNzUsNiArMTc4LDExIEBAIHB1YmxpYzoKIAogICAgIExpYldlYlJUQ05ldHdvcmsmIGxp
YldlYlJUQ05ldHdvcmsoKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9p
ZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiopOworICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklEKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBzZXRD
YWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQzMCw2ICs0MzgsMTAgQEAgcHJpdmF0
ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1
dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gbV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYg
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcy
NjVjMGQ0ZjJhMjQ5NzMzYi4uN2EyODU3MjdlYjY1NzI5MmRkMDE3NGE2YjkwN2VjODViZTUyZGY1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTc0LDYgKzc0LDggQEAgRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZW9zID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwog
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HX2lwaG9uZXNpbXVsYXRvciA9IEVOQUJMRV9DT05URU5U
X0ZJTFRFUklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19tYWNvc3ggPSBFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkc7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CisKIEVOQUJMRV9D
U1MzX1RFWFQgPSA7CiAKIEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgPSBFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMzOTM1NDZiODA1ZjVhMWUyZDIzYTlkZGQxNTMyMzQxM2Yz
MzNmYzguLmNhODg1NTE1NzAyMTZhY2JiM2RkMDBiNjRiZGFiNTY2ZjExOWU0OTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nl
c3NLaWxsSURCQ2xlYW51cC5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjp0
ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBh
Z2VDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRhdGFiYXNl
UHJvY2Vzc05hbWUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGF0YWJhc2VQcm9j
ZXNzRGlkQ3Jhc2gpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5
bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE4LTEwLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBJT1MgMTIgLSBTZXJ2aWNlIHdvcmtlciBjYWNoZSBub3Qgc2hh
cmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5
ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJhMjQ5NzMzYi4uN2EyODU3MjdlYjY1NzI5MmRk
MDE3NGE2YjkwN2VjODViZTUyZGY1NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC03NCw2ICs3
NCw4IEBAIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVvcyA9IEVOQUJMRV9DT05URU5U
X0ZJTFRFUklORzsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklOR19pcGhvbmVzaW11bGF0b3IgPSBF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkdfbWFjb3N4
ID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0g
OworCiBFTkFCTEVfQ1NTM19URVhUID0gOwogCiBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLID0gRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSzsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0
Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUg
c2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3
ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVk
UHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAg
RVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRl
bnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBf
cGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRl
RGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVz
b3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVY
UEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJv
Y2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6
ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNGNiOGZhOTdhNjZjOGE3ZmQ4NDU5ZWVkMGE0NTg0MmIy
YjgxZmE4My4uZGRmYzc3NzdhMWRiYjVlMzJjNDM4ZDgyOThhNTI4N2IwOWZkYmUyMCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KQEAgLTk1OSw2ICs5NTksNDcgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgU1dQcm9jZXNzQ29ubmVjdGlvbkNyZWF0aW9uKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoU2VydmljZVdvcmtlcnMsIFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbkNyZWF0aW9uKQoreworICAgIEFTU0VSVChtYWluQnl0ZXMpOworICAgIEFTU0VSVChz
Y3JpcHRCeXRlcyk7CisKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRh
UmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFtbY29uZmlndXJhdGlvbiB3
ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFs
bFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29t
cGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAg
ICBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBzZXRDb25maWd1cmF0aW9uSW5qZWN0ZWRCdW5kbGVQYXRoKGNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOworCisgICAgUmV0YWluUHRyPFJlZ3VsYXJQYWdlTWVzc2FnZUhhbmRsZXI+
IHJlZ3VsYXJQYWdlTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbUmVndWxhclBhZ2VNZXNzYWdl
SGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENv
bnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOnJlZ3VsYXJQYWdlTWVzc2FnZUhhbmRs
ZXIuZ2V0KCkgbmFtZTpAInJlZ3VsYXJQYWdlIl07CisKKyAgICBSZXRhaW5QdHI8U1dTY2hlbWVz
PiBoYW5kbGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRs
ZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdpdGhvdXRDb25uZWN0aW9u
Lmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIHJlZ3VsYXJQYWdlV2l0aG91dENv
bm5lY3Rpb25CeXRlcyB9KTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKKworICAgIFJldGFpblB0cjxXS1dl
YlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOworCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5w
cm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKworICAgIC8vIFRlc3QgdGhh
dCBhIHJlZ3VsYXIgcGFnZSBkb2VzIG5vdCB0cmlnZ2VyIGEgcGF5bWVudCBwcm9jZXNzIGlmIHRo
ZXJlIGlzIG5vIHJlZ2lzdGVyZWQgc2VydmljZSB3b3JrZXIuCisgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdpdGhvdXRDb25uZWN0aW9uLmh0bWwiXV07CisKKyAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGFu
IGxvYWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRpZCBub3Qgc3RhcnQgYSBwYXltZW50IHByb2Nlc3Mu
CisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9v
bC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKK30KKwogc3RhdGljIGNvbnN0IGNoYXIqIG1h
aW5CeXRlc1dpdGhTY29wZSA9IFIiU1dSRVNPVVJDRSgKIDxzY3JpcHQ+CiAKQEAgLTEwNDYsNiAr
MTA4Nyw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJQcm9jZXNzQ3JlYXRp
b24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5bWVudCBwcm9jZXNzIGlzIG5vdCBsYXVuY2hlZC4K
KyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29s
Ll9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9h
ZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJv
Y2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9j
ZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50KTsKIApAQCAtMTEzMCw2ICsxMTc0LDkgQEAgVEVTVChT
ZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkKICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8v
IFRoZXJlIHNob3VsZCBiZSBubyBwYXltZW50IHByb2Nlc3MgY3JlYXRlZC4KKyAgICBFWFBFQ1Rf
RVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTGV0J3MgdXNlIHRoZSB3ZWIgc2l0ZSBkYXRhIHN0
b3JlIHRoYXQgaGFzIHNlcnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEgcGFnZS4KICAgICBuZXdDb25m
aWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbY29uZmlndXJhdGlvbiB3ZWJzaXRl
RGF0YVN0b3JlXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggMWVkNGVkNGY2ZTk0
N2I5YmJkNDUzODA1NDQ2ZmU1NjFjZGNlNWY0MS4uNzAwOWEwM2E3ZGQyNGE0YmVlZmE0MGVmZTZm
MTcxYzcyMjM3NGI3OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMzAsNiArMzMw
LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAg
ICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNDVhZDY2
YjM2YmRiOTYxMTk4YjViMGQwNzkyNzEyY2M1Y2Y1NGJhOC4uM2EyZjg4YWQ5ZWIxY2U2Y2Y5Y2Mx
OTA3MTU2ZjQ4ZTQ3ZjFhNjk2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjQ4LDYgKzEyNDgsMTIgQEAgdm9p
ZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tCdW5k
bGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNp
bmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVs
bHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQor
eworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVybWluYXRlUGF5bWVudFByb2Nlc3MiKSk7Cisg
ICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVs
bHB0ciwgbnVsbHB0cik7Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBuZXh0VUlTY3JpcHRDYWxsYmFj
a0lEKCkKIHsKICAgICBzdGF0aWMgdW5zaWduZWQgY2FsbGJhY2tJRCA9IEZpcnN0VUlTY3JpcHRD
YWxsYmFja0lEOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCBiYTBkNmE2NTdkNTQ1ZDllNjNlMDRjMDY3YmIzNDA5Y2QzYmFk
NWE5Li45N2UxOTU3ZDk5N2I1NTY1YTFlOWY1ZWU4OGFmOWUwZWQyNzAyODEyIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAt
NDQzLDYgKzQ0Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9p
ZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNzaW9u
Q3JlZGVudGlhbHMoSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBjYWxsRGlkUmVtb3ZlQWxsU2Vzc2lv
bkNyZWRlbnRpYWxzQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggZDQxMDBmOGYzNzlkMzljYWNlZmI4YTI5NGNlMTllNDc0OTEwZGQ0Yi4u
NmMwOTEwYWZjYjUzYWRjMjM0YTY3MjU2ZTFmZmUxMTJiOGMzM2FhYSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwNjIsNiArMTA2MiwxNSBAQCBjb25z
dCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NOYW1lKCkKICNlbmRpZgogfQog
Citjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKCkKK3sKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQiOwor
I2Vsc2UKKyAgICByZXR1cm4gIlBheW1lbnQgcHJvY2VzcyBub3QgYXZhaWxhYmxlIG9uIGFueXRo
aW5nIGJ1dCBpT1MiOworI2VuZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwg
YWxsb3dzKTsKQEAgLTE0ODUsNiArMTQ5NCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3
b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAog
ICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKK30K
Kwogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnksIGJvb2wgc3lu
Y2hyb25vdXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleUtleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAgLTE4MTgsNiArMTgz
MiwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKICAg
ICBleGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENy
YXNoKCkKK3sKKyAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50
aWZpZXIobV9jb250ZXh0LmdldCgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0g
JXMgKHBpZCAlbGQpXG4iLCBwYXltZW50UHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4o
cGlkKSk7CisgICAgZXhpdCgxKTsKK30KKwogLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogCiB2
b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBX
S05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQpAQCAtMjYxNyw2ICsyNjM4LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29y
a2VyUHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6
OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS0NvbnRleHRUZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZv
Y2F0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA1
YzNmZTUzZDE2NzQ2ODBkOTY2YmIyMjk0YTRlYzRlNDQ4M2ExZWRmLi4xNWZiNWI0NDc1MjlhNDQ4
OTA1ZGNhZDFhZmZmZjgxMjljZjVmNmU1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCkBAIC0xNjAsNiArMTYwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiB3ZWJQcm9jZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuZXR3b3JrUHJv
Y2Vzc05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VQcm9jZXNzTmFtZSgp
OworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwYXltZW50UHJvY2Vzc05hbWUoKTsKIAogICAgIFdv
cmtRdWV1ZU1hbmFnZXImIHdvcmtRdWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1h
bmFnZXI7IH0KIApAQCAtMjMxLDYgKzIzMiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWlu
YXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCBy
ZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKIApAQCAtMzI4LDYgKzMzMCw4IEBAIHByaXZh
dGU6CiAgICAgLy8gV0tDb250ZXh0Q2xpZW50CiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1Byb2Nl
c3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkQ3Jhc2goKTsKKyAgICBzdGF0aWMgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNo
KFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRD
cmFzaCgpOwogCiAgICAgLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lk
IGRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAppbmRleCBjNGRkYzkyOGE0ZjU2MGIzNDA5YWM1YmNjMmU0Yzc0YmU5ZTZjNmRk
Li4zZTcyZGJlYzU4YzdhNjMwNjdmYjMwNGM1NjcxMTEzYmNlMjYyZTFhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQ0MCw2ICsxNDQwLDEyIEBAIFdL
UmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91
c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAor
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWlu
YXRlUGF5bWVudFByb2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3Mi
KSkgewogICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGVjZjcz
MDZhODU4MTk4NmJkY2VkZTM1ZTQ1M2ViMWI5NTEwNzU4Yy4uMmJiNDE2MWM5OGM3NGU3MjNhM2M3
ZTEwZTU4MDNmYjkxMDY1NWZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA2ICBa
YW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2Vz
cyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWlt
cG9ydFNjcmlwdHMuaHRtbDoKKwogMjAxOC0xMC0xMiAgRGF3ZWkgRmVudG9uICA8cmVhbGRhd2Vp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9qYXZlIFdrMl0gTGF5b3V0IFRlc3QgaHR0cC90ZXN0
cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFsaWRhdGlvbi1hdHRhY2htZW50Lmh0bWwg
aXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbAppbmRleCAwOGE5YTU5
NjIzMjEwNGI4NjVlM2FiMmRmODVhOWI5NDU3ZWM4NGU5Li42YzlkY2YzMWY5OThjNmIyOGZiY2Fk
OGIyNTdmNDM4OWM1ZDViNmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1s
CkBAIC0zNiw4ICszNiwxMCBAQCBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgbGV0IHJh
bmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CiAKICAgICBpZiAo
IXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVz
dFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOworICAgICAgICB9CiAgICAgICAgIGF3YWl0IHdh
aXRGb3IoMTAwKTsKICAgICAgICAgd2luZG93LmxvY2F0aW9uICs9ICI/dGVzdCMiICsgcmFuZG9t
SWQ7CiAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354197</attachid>
            <date>2018-11-07 19:06:35 -0800</date>
            <delta_ts>2018-11-07 19:16:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181107190634.patch</filename>
            <type>text/plain</type>
            <size>176356</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDdhNDNlMDU1ZWEyZDU2NThlNDkwYTM0NDU5ZDA2YjZhYTUxM2YzLi42NTMzOGJhZWYxNzU0Yjdm
ZGQ3ODQ0YjU4Y2Y1ZDcxNDUxNGVlNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMC0xMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM3MDYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA0MjcxNGFjNzFjMTFkOWU0Y2FkOGQ0ZGFkZGRhNDhhMDA0N2Y2
M2MyLi4xMzAzNjEwZDI2NDdkMjIzZGVmMTJjZmI1Mjk1MWNhYmQ0MTc0ZGU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2OSBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxl
LmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0bGVt
ZW50czoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0
bGVtZW50czogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFz
ZXMtaU9TLmVudGl0bGVtZW50cy4KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2Vy
dmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpwdXRPckFk
ZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZl
dGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnNpbmds
ZXRvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjp+UGF5bWVudFByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzczo6cG9zdFBheW1lbnRUYXNrKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3M6OnBlcmZvcm1OZXh0UGF5bWVudFRhc2spOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAgICAg
KiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oOiBBZGRlZC4KKyAgICAgICAgKiBQYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3Nh
Z2VzLmluLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbi4K
KyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW06IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUu
Y3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToK
KyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0
LlBheW1lbnQuc2I6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYi4KKyAgICAgICAgKiBTaGFy
ZWQvQ2hpbGRQcm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nl
c3NFeGVjdXRhYmxlUGF0aC5oLgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBh
dGguaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6cHJvY2Vzc1N0b3JhZ2VDbGFzcyk6CisgICAgICAgIChXZWJLaXQ6OnNhbmRib3hE
aXJlY3RvcnkpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAg
IChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
OgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgor
ICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZVBheW1lbnRQ
cm9jZXNzQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6
OlBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1By
b3h5Ojp+UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bik6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OmRpZEZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpkaWREZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4uCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50
OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dENsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0U3VwcGxlbWVudDo6cHJvY2Vzc0RpZENsb3NlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0
b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwYXltZW50UHJv
Y2Vzc0NyYXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFn
ZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2Fy
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudC9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNo
LmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2guaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2Vz
LmluLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bh
eW1lbnQvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAuCisgICAgICAgIChXZWJLaXQ6
OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxT
ZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmguCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QYXltZW50L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
YXltZW50L1dlYlNXT3JpZ2luVGFibGUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9QYXltZW50L1dlYlNXT3JpZ2luVGFibGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuaC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BheW1lbnQvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudC9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyLmNwcC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnQvV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BheW1lbnQvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BheW1lbnQvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Ojp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25U
b05ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwog
MjAxOC0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFsbG93IGVuY29kaW5nIG9mIHNtYWxsIGVudW0gY2xhc3NlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0OTcz
M2IuLjgyYmFlNzRhNGZhMTNhYzcyYmRlNjNhNjU5MTAyNGM1OTM0YmFkZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKQEAgLTI3Miw2ICsyNzIsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5E
QUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9O
T1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUp
KTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwog
CitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVO
QUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVf
UERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5ZWQw
MGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJhMjQ5NzMzYi4uODJiYWU3NGE0ZmExM2FjNzJiZGU2
M2E2NTkxMDI0YzU5MzRiYWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI3Miw2ICsyNzIsNyBAQCBFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJM
RV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRf
UExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
cyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRl
eCBmMjZlOTZkNDJhMDg0YzNkNTNjMmMwOTcwOGNiMTIzZTA5NjI2ZGFiLi5kMjAxNjM1YzA1YWM3
MzQ2ZWJjMTY5MzFiNThjZDE1YjNmYjRlNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9F
bmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvRW5n
bGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC00Myw2ICs0Myw5IEBACiAvKiBWaXNp
YmxlIG5hbWUgb2YgU2VydmljZSBXb3JrZXIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBh
cHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFNlcnZpY2UgV29ya2VyICglQCkiID0gIiVAIFNlcnZp
Y2UgV29ya2VyICglQCkiOwogCisvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIHBheW1lbnQgcHJvY2Vz
cy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLworIiVAIFBheW1lbnQi
ID0gIiVAIFBheW1lbnQiOworCiAvKiBWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9jZXNzLiBU
aGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgV2ViIENvbnRlbnQi
ID0gIiVAIFdlYiBDb250ZW50IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIw
ZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0OTczM2IuLjgyYmFlNzRhNGZhMTNhYzcyYmRlNjNhNjU5
MTAyNGM1OTM0YmFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI3Miw2ICsyNzIsNyBAQCBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9O
U18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVO
QUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZL
SVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGUwMGFlMmYyZmRlOGMxN2MyMDlkNDRmMTlkOGQ2
NGE2ZGQwMDJmNjguLmViODFkNmU1ZGEwYTQ3Zjk1ZWRlYWFlMjMxMDBmMzg3MTY0OTQ3MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzI2OSw3ICszMjY5LDggQEAgc3RkOjpvcHRpb25h
bDxWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnYKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCiAjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKLSAgICBhdXRv
IG1ldHJpY3MgPSBbbV92aWRlb0xheWVyIHZpZGVvUGVyZm9ybWFuY2VNZXRyaWNzXTsKKworICAg
ICAgICBhdXRvIG1ldHJpY3MgPSBbbV92aWRlb0xheWVyIHZpZGVvUGVyZm9ybWFuY2VNZXRyaWNz
XTsKICAgICBpZiAoIW1ldHJpY3MpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFhZGI1ZTkzYzIzZGNhNzU0M2IxODA0
YzUuLjdiNzQxZTEwYTcyZjIyYTc4MDdkNGU3NzM2Mzg3OWMyYTQwMGQ5ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtMzEsNyArMzEsOSBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJL
SVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0v
U2hhcmVkL1JlbW90ZUxheWVyVHJlZSIKKyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVu
dCIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvV2Vic2l0ZURhdGEiCisgICAgIiR7V0VCS0lU
X0RJUn0vUGF5bWVudFByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzIgogICAg
ICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DIgpAQCAtNDcsNiArNDksNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlIgorICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QYXltZW50
IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24iCiAgICAgIiR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2siCkBAIC0xMjEsNiArMTI0LDkgQEAgc2V0
KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1NvY2tldC5tZXNzYWdlcy5pbgogCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9s
bGVyUHJveHkubWVzc2FnZXMuaW4KICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MubWVz
c2FnZXMuaW4KICAgICBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCkBAIC0xNTEsNiArMTU3LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAg
ICAgVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogCisg
ICAgVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAg
ICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAg
ICBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTIyMSw2ICsyMjksMTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklF
UwogICAgIFdlYktpdAogKQogCitzZXQoUGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2Vi
S2l0CispCisKIHNldChQbHVnaW5Qcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpAQCAt
NDQwLDEwICs0NTIsMjAgQEAgaWYgKFdlYktpdF9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRSkK
ICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoTmV0d29ya1Byb2Nlc3MgUFJPUEVSVElFUyBPVVRQ
VVRfTkFNRSAke1dlYktpdF9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRX0pCiBlbmRpZiAoKQog
CithZGRfZXhlY3V0YWJsZShQYXltZW50UHJvY2VzcyAke1BheW1lbnRQcm9jZXNzX1NPVVJDRVN9
KQorQUREX1dFQktJVF9QUkVGSVhfSEVBREVSKFBheW1lbnRQcm9jZXNzKQordGFyZ2V0X2xpbmtf
bGlicmFyaWVzKFBheW1lbnRQcm9jZXNzICR7UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTfSkKK2lu
c3RhbGwoVEFSR0VUUyBQYXltZW50UHJvY2VzcyBERVNUSU5BVElPTiAiJHtMSUJFWEVDX0lOU1RB
TExfRElSfSIpCisKK2lmIChXZWJLaXRfUGF5bWVudFByb2Nlc3NfT1VUUFVUX05BTUUpCisgICAg
c2V0X3RhcmdldF9wcm9wZXJ0aWVzKFBheW1lbnRQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05B
TUUgJHtXZWJLaXRfUGF5bWVudFByb2Nlc3NfT1VUUFVUX05BTUV9KQorZW5kaWYgKCkKKwogaWYg
KENPTVBJTEVSX0lTX0dDQ19PUl9DTEFORykKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxB
R1MoV2ViS2l0IC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKICAgICBXRUJLSVRfQUREX1RBUkdFVF9D
WFhfRkxBR1MoV2ViUHJvY2VzcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCiAgICAgV0VCS0lUX0FE
RF9UQVJHRVRfQ1hYX0ZMQUdTKE5ldHdvcmtQcm9jZXNzIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikK
KyAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoUGF5bWVudFByb2Nlc3MgLVduby11bnVz
ZWQtcGFyYW1ldGVyKQogZW5kaWYgKCkKIAogIyBGSVhNRTogTWFjIHNob3VsZCBidWlsZCBhIHBs
dWdpbiBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9C
YXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFy
Z2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2JiYjAxMmEzOWU2NWRhOGJhOGI4OTA4MzU4YTI1OGJk
NmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRjZmRiMjA2YTRkNjNjZjNlMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKQEAgLTExMSw2
ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJFRElDVElPTltzZGs9bWFjb3N4Kl1bYXJjaD1pMzg2
XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVMgPSAkKFdLX0NPUkVfUFJFRElDVElP
Tl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BSRURJQ1RJT04pKTsKIFdLX0NPUkVfUFJFRElDVElP
Tl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9QUkVESUNUSU9OOwogCitXS19QQVlNRU5UX1NFUlZJ
Q0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50czsKKwogV0tfU1RPUkFH
RV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFN
RV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9TRVJWSUNFX05BTUUpKTsKIFdLX1NUT1JBR0VfU0VS
VklDRV9QUk9EVUNUX05BTUVfID0gJChXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05P
KTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8gPSBjb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA2ODllZDAwYmRiMGY1ZTU5YWJlZmE3NzI2NWMwZDRmMmEy
NDk3MzNiLi44MmJhZTc0YTRmYTEzYWM3MmJkZTYzYTY1OTEwMjRjNTkzNGJhZGQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTI3Miw2ICsyNzIsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0
b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05T
ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9O
T1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZ
TUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJ
Tl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE4NmFhNzE1YWUwZWYyZWQ4NDA3MTQzYzljZmViMGE2MjFmMTVjZTkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3gu
ZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
PgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5yb290bGVz
cy5wYXltZW50LldlYktpdFBheW1lbnRTYW5kYm94PC9rZXk+CisJPHRydWUvPgorPC9kaWN0Pgor
PC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVu
dFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzYTM3NGUwZjVkOGFiYzVkMzg0MmQ5YmUwNmFk
NzAzZGIxNGYwOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCkBAIC0wLDAgKzEsMzQgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
Ky8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8vIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisvLyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
Ky8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8gUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorLy8gT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJCYXNlWFBDU2VydmljZS54
Y2NvbmZpZyIKKworV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF9OTyA9IDsKK1dL
X1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfWUVTID0gQ29uZmlndXJhdGlvbnMvUGF5
bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHM7CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFNf
Q09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfJChX
S19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lHTl9GTEFHUyA9
ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BST0RVQ1RfTkFN
RSA9ICQoV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JVTkRMRV9J
REVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmU1NTFmNDk3MWU0MTAyMDJjMzczYjg1ZTE3OGM1NTNh
NmM3NTNjMS4uYTM0OTkzMzQwYWFlZDQ4NGYwNzlhMWE3ZGJjZjkyNzAxOTNhZjgyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzcsNiArMzcsNyBAQCBWUEFUSCA9IFwKICAgICAk
KFdlYktpdDIpL1NoYXJlZC9BUEkvQ29jb2EgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL0F1dGhl
bnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMgXAorICAgICQoV2ViS2l0Mikv
UGF5bWVudFByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsZVBheSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uIFwKQEAgLTczLDYgKzc0LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BheW1lbnQgXAogICAgICQo
V2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvU3RvcmFnZSBcCkBAIC0x
MzEsNiArMTMzLDkgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5hZ2Vy
IFwKKyAgICBQYXltZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFByb2Nlc3NQcm94eSBcCisgICAg
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyIFwKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IFwKICAgICBWaWV3R2VzdHVy
ZUNvbnRyb2xsZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQ
cm9jZXNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzFjNTEwMzlkYmRmNWY3MzNiNWVkYWMyOTFkNTdhZGE2
MzA3NmJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5jcHAKQEAgLTAsMCArMSwxOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGF5bWVudFByb2Nlc3MuaCIKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0RW5jb2RpbmcuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2su
aD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitQYXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAg
IHJldHVybiBwcm9jZXNzOworfQorCitQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQor
ICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5QYXltZW50
UHJvY2VzcyIpKQoreworICAgIC8vIE1ha2Ugc3VyZSB0aGUgVVRGOEVuY29kaW5nIGVuY29kaW5n
IGFuZCB0aGUgdGV4dCBlbmNvZGluZyBtYXBzIGhhdmUgYmVlbiBidWlsdCBvbiB0aGUgbWFpbiB0
aHJlYWQgYmVmb3JlIGEgYmFja2dyb3VuZCB0aHJlYWQgbmVlZHMgaXQuCisgICAgLy8gRklYTUU6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUzNjUgLSBOZWVkIGEg
bW9yZSBleHBsaWNpdCB3YXkgb2YgZG9pbmcgdGhpcyBiZXNpZGVzIGFjY2Vzc2luZyB0aGUgVVRG
OEVuY29kaW5nLgorICAgIFVURjhFbmNvZGluZygpOworfQorCitQYXltZW50UHJvY2Vzczo6flBh
eW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIENoaWxkUHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisKK2Jvb2wgUGF5bWVudFBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJN
YXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBkaWRSZWNl
aXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjplbnN1cmVQ
YXRoRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKKworICAgIGlmICghRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKHBhdGgp
KQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBtYWtlIGFsbCBkaXJlY3RvcmllcyBmb3Ig
cGF0aCAnJXMnIiwgcGF0aC51dGY4KCkuZGF0YSgpKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
czo6cG9zdFBheW1lbnRUYXNrKENyb3NzVGhyZWFkVGFzayYmIHRhc2spCit7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGF5bWVudFRh
c2tNdXRleCk7CisKKyAgICBtX3BheW1lbnRUYXNrcy5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CisK
KyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpc10geworICAgICAgICBwZXJmb3JtTmV4dFBheW1l
bnRUYXNrKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OnBlcmZvcm1OZXh0
UGF5bWVudFRhc2soKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAg
Q3Jvc3NUaHJlYWRUYXNrIHRhc2s7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3BheW1lbnRUYXNrTXV0ZXgpOworICAgICAgICBBU1NFUlQoIW1fcGF5bWVudFRhc2tzLmlzRW1w
dHkoKSk7CisgICAgICAgIHRhc2sgPSBtX3BheW1lbnRUYXNrcy50YWtlRmlyc3QoKTsKKyAgICB9
CisKKyAgICB0YXNrLnBlcmZvcm1UYXNrKCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmNy
ZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJv
Y2VzcywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pCit7Cisj
aWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgSVBDOjpDb25uZWN0aW9uOjpTb2NrZXRQ
YWlyIHNvY2tldFBhaXIgPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlv
bigpOworICAgIG1fcGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKHNvY2tldFBhaXIuc2VydmVyKSk7CisgICAg
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6RGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2ht
ZW50KHNvY2tldFBhaXIuY2xpZW50KSksIDApOworI2VsaWYgT1MoREFSV0lOKQorICAgIC8vIENy
ZWF0ZSB0aGUgbGlzdGVuaW5nIHBvcnQuCisgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydCA9
IE1BQ0hfUE9SVF9OVUxMOworICAgIGF1dG8ga3IgPSBtYWNoX3BvcnRfYWxsb2NhdGUobWFjaF90
YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0KTsKKyAg
ICBpZiAoa3IgIT0gS0VSTl9TVUNDRVNTKSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90
IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJyb3IgJXgiLCBrcik7CisgICAgICAgIENSQVNIKCk7Cisg
ICAgfQorCisgICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24uCisgICAgbV9wYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGxpc3RlbmluZ1BvcnQp
KSk7CisKKyAgICBJUEM6OkF0dGFjaG1lbnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNI
X01TR19UWVBFX01BS0VfU0VORCk7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY2xpZW50UG9ydCksIDApOworI2VsaWYgT1MoV0lORE9XUykKKyAgICBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgc2VydmVySWRlbnRpZmllciwgY2xpZW50SWRlbnRp
ZmllcjsKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQW5kQ2xpZW50SWRl
bnRpZmllcnMoc2VydmVySWRlbnRpZmllciwgY2xpZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNlcnZlciBhbmQgY2xpZW50IGlkZW50aWZpZXJz
Iik7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCisgICAgYXV0byBjb25uZWN0aW9uID0gUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShzZXJ2ZXJJZGVudGlmaWVyKTsKKyAg
ICBtX3BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoV1RGTW92ZShjb25uZWN0
aW9uKSk7CisKKyAgICBJUEM6OkF0dGFjaG1lbnQgY2xpZW50U29ja2V0KGNsaWVudElkZW50aWZp
ZXIpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1l
bnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNs
aWVudFNvY2tldCksIDApOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9
CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQorICAg
IHsKKyNpZiBPUyhMSU5VWCkKKyAgICAgICAgYXV0byYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyID0g
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKTsKKyAgICAgICAgbWVtb3J5UHJlc3N1
cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIoW3RoaXNdIChDcml0aWNhbCwgU3luY2hyb25v
dXMpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBubyBsb3dNZW1vcnlIYW5kbGVyKCkgaW1wbGVt
ZW50ZWQgZm9yIFBheW1lbnRQcm9jZXNzIGN1cnJlbnRseS4KKyAgICAgICAgICAgIC8vIEJ1dCBh
dCBsZWFzdCBkZWZpbmUgdGhpcyBzZXRMb3dNZW1vcnlIYW5kbGVyKCkgZW1wdHkgc28gcGxhdGZv
cm1SZWxlYXNlTWVtb3J5IGlzIGNhbGxlZC4KKyAgICAgICAgfSk7CisgICAgICAgIG1lbW9yeVBy
ZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7CisjZW5kaWYKKyAgICB9Cit2b2lkIFBheW1lbnRQcm9j
ZXNzOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKyNlbmRpZiAv
LyAhUExBVEZPUk0oQ09DT0EpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
IVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50UHJvY2Vzcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMmM3ODY5MDM5M2VhNjNkOTNlODZkYjY4
MWQwY2RlOWZkNjljOWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDaGls
ZFByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+
CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjsKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczsKKworY2xhc3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQ
cm9jZXNzIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAg
ZnJpZW5kIE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGF5bWVudFByb2Nlc3MmIHNpbmdsZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJv
Y2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXlt
ZW50UHJvY2VzcygpOworCisgICAgdm9pZCBwb3N0UGF5bWVudFRhc2soQ3Jvc3NUaHJlYWRUYXNr
JiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNz
KCk7CisKKyAgICAvLyBDaGlsZFByb2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVQcm9jZXNzKGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAg
IHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUo
KSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKKworICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKKyAgICB2b2lkIGluaXRpYWxpemVXZWJzaXRl
RGF0YVN0b3JlKGNvbnN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAg
dm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdv
cmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmKTsKKworICAgIHZvaWQg
ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOworICAgIAorICAgIC8vIEZvciBleGVjdXRp
b24gb24gd29yayBxdWV1ZSB0aHJlYWQgb25seQorICAgIHZvaWQgcGVyZm9ybU5leHRQYXltZW50
VGFzaygpOworICAgIHZvaWQgZW5zdXJlUGF0aEV4aXN0cyhjb25zdCBTdHJpbmcmKTsKKworICAg
IFZlY3RvcjxSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX3BheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uczsKKworICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CisKKyAg
ICBEZXF1ZTxDcm9zc1RocmVhZFRhc2s+IG1fcGF5bWVudFRhc2tzOworICAgIExvY2sgbV9wYXlt
ZW50VGFza011dGV4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAh
UEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTc2YzQy
MTcwNTYwOGU2NWI3MWExZDkwZGM2YzZlNTRkMDM1MzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CisgICAgCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTExMjY4OTYyMGFmMjQ3
ZTU2ZTdhNzg3ZWQ0NWY0YTI4NmUwZDk5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0w
LDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgi
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7Cit9
CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIp
CisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0
aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8gVXNlIHRoaXMgZmxh
ZyB0byBmb3JjZSBzeW5jaHJvbm91cyBtZXNzYWdlcyB0byBiZSB0cmVhdGVkIGFzIGFzeW5jaHJv
bm91cyBtZXNzYWdlcyBpbiB0aGUgV2ViUHJvY2Vzcy4KKyAgICAvLyBPdGhlcndpc2UsIHRoZSBX
ZWJQcm9jZXNzIHdvdWxkIHByb2Nlc3MgaW5jb21pbmcgc3luY2hyb25vdXMgSVBDIHdoaWxlIHdh
aXRpbmcgZm9yIGEgc3luY2hyb25vdXMgSVBDCisgICAgLy8gcmVwbHkgZnJvbSB0aGUgcGF5bWVu
dCBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuCisgICAgbV9jb25uZWN0aW9uLT5zZXRP
bmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblByb2Nl
c3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisK
K1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oKQoreworICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRv
bigpLmRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgVU5VU0VEX1BB
UkFNKGNvbm5lY3Rpb24pOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZU5hbWUpCit7CisKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZ
TUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmJiYzAxZmFmODVhNWU1NTFjYWRiZTY3OGU5MzFiOGM0YmRiZjJmMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2
YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cik7CisgICAgflBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKwor
cHJpdmF0ZToKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiog
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24u
cHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJy
aWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTg0MzIyNTk2NjI2OTM1OTM5MTZlM2Q5NGNhOTU0ZmQ1MDk3OWE2YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK21lc3NhZ2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2Vp
dmVyIHsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTZhYWViNTZiMjRjMGEzNmNm
ZTY3MTUyOGQ5ZmNlZmFlZDY4OWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Q
YXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmln
LmgiCisKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisj
aW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5B
QkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRp
YWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFt
ZXRlcnMpCit7CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8g
TmVlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZl
cmVudCBidW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUg
YnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2Fu
ZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5k
bGUgcGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAi
c2IiXSk7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBz
YW5kYm94UGFyYW1ldGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmls
ZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTBjN2NiZmY4Y2RiNzg5NjRjNzY0ZTRlMmU0ZGZmZDYxMDMyODU5YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDQ3IEBACis7IENvcHlyaWdo
dCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKzsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KzsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZh
dWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZp
bGUtcmVhZC1tZXRhZGF0YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1s
b29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVuKQorCiso
YWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNh
bmRib3gucmVhZC13cml0ZSIpKQorCisoZGVueSBzeXNjdGwqKQorKGFsbG93IHN5c2N0bC1yZWFk
CisgICAgKHN5c2N0bC1uYW1lCisgICAgICAgICJody5hdmFpbGNwdSIKKyAgICAgICAgImh3Lm5j
cHUiCisgICAgICAgICJody5tb2RlbCIKKyAgICAgICAgImtlcm4ubWVtb3J5c3RhdHVzX2xldmVs
IgorICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkKKworOzsgVmFyaW91cyBzZXJ2aWNl
cyByZXF1aXJlZCBieSBzeXN0ZW0gZnJhbWV3b3JrcworKGFsbG93IG1hY2gtbG9va3VwCisgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5oCmluZGV4IDU0NzhhOWRkOWZjNTkyYjE4NzY2M2Y5NTRlZmE1OTFjZjAyMDRmZDEu
LjEzMjg5MjE3Yjk4MjMyMzkwMTJlYWZlZjM0YjcwOTk5YmVmNTgzMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC01MCw2ICs1MCw5IEBAIHB1YmxpYzoKICAgICAgICAgTmV0
d29yaywKICAgICAgICAgU3RvcmFnZSwKICAgICAgICAgUGx1Z2luCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAgICAgfTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTczNzA5NzM0MDNkNDYzNDA4ZWQ2M2JiY2VmNDU2M2JkMDA5OTgxZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisKKyNpbmNsdWRlICJB
cmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkKK3sK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKK30K
KworYm9vbCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkK
K3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zZXNzaW9uSUQpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWM4NjNjMDBhOGE0MDcwMTM1MTJjYTIzMWMwNTU4MzUx
N2I5ZWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBFbmNv
ZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygp
OworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
Jik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAppbmRleCAyY2U3MTZlNGM3MmU1
ODJhYmUzMGY0ODc5ZDJjNmViOWU0OTlhOTdiLi42MmI1NDc0ZWZhYTcyNGVhYjUyOGI0ZjY3MDE3
OTFmMGNlOWFhZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhl
Y3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJs
ZVBhdGguaApAQCAtMzIsNSArMzIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBleGVj
dXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVnaW5Q
cm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCk7CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGF5bWVudFBy
b2Nlc3MoKTsKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggYjcxYWQ0OTgzNDVlZDljYTQyOGIwYTM0YzRiYWU5YjgzYjk1YjBkMy4uOTBlYjA4
ZTNiMWI5MTEyYWQ3NmIzMTNmMGM2YzE0OTI4ZTY1MjcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yMTks
OCArMjE5LDEzIEBAIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIEBuby11bmlmeQogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5N
b2R1bGUuY3BwICBAbm8tdW5pZnkKIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9y
bWF0aW9uLmNwcCBAbm8tdW5pZnkKIAorU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAK
IAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIEBuby11bmlmeQorUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIEBuby11bmlmeQorCiBVSVBy
b2Nlc3MvQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogVUlQcm9jZXNz
L0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCkBA
IC0zODEsNiArMzg2LDggQEAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcAog
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCiBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQ
cm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJTY3JpcHRNZXNzYWdl
SGFuZGxlci5jcHAKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5jcHAKIApAQCAtNDkzLDYgKzUwMCw3IEBAIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09y
aWdpblRhYmxlLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
LmNwcAorV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cAogCiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDU5NGJmOTBkZDVmMDhiZmRjNDM0YjlmNWRjNTll
NDhjM2FhMmQ3MWUuLjBlNDIwZWY2ODg3MGYxNjg1MmQwZjNhNmQ5ZTUzNTYxNGZkNTMxNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE5NCw2ICsxOTQsOSBAQCBTaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQogU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQogU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAogCisKK1BheW1l
bnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbSBAbm8tdW5pZnkKKwogVUlQcm9jZXNz
L19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQogVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVU
cmFja2VyLm1tCiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCAx
OTY1MjhjYmU1MTI3ZjRiNTk3ZWY2NzFjOGIxMDM4OGMyMGNjOTc0Li4yNTJhZWU1MzM0ZDhlNWNk
YWIxNzM5ZmVhNzIxZDk5NDhiNTUwZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSwxMSArNjIxLDI3IEBAIHZvaWQgV0tDb250ZXh0VGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAgICAgdG9J
bXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiB9CiAKK3Zv
aWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHQp
Cit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0b0ltcGwoY29udGV4dCktPnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lk
ZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbChj
b250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKK1Byb2Nlc3NJRCBX
S0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gdG9JbXBsKGNv
bnRleHRSZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJu
IDA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogdm9pZCBXS0NvbnRl
eHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVm
IGRvbWFpblJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJheVJlZiBtaW1lVHlwZXNSZWYs
IFdLQXJyYXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZh
dGUuaAppbmRleCBlYzZjODYzYjZlNDhhNmFiYzI5ODUxNzNjMzNkNzRlZDEzYTU4YjUzLi45YmIx
ZDVjMmI5ODUzOGRlMGM1N2QxZWNhOTI1MDEwNGRkODE4ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC05Miw2ICs5Miw4IEBA
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRS
ZWYsIGJvb2wpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKy8vIE5PVEU6IFRoaXMgaXMgb25seSBh
dmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAogV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRU
ZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29udGV4dFJl
ZiwgYm9vbCk7CkBAIC0xMTIsNiArMTE0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0
Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYpOwogV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1VSTFJl
ZiBzZXJ2ZXJVUkwpOwogCiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9SVCBXS1By
b2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4o
V0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIGRvbWFpbiwgV0tTdHJpbmdSZWYgbmFt
ZSwgV0tBcnJheVJlZiBtaW1lVHlwZXMsIFdLQXJyYXlSZWYgZXh0ZW5zaW9ucyk7CiBXS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRDbGVhclN1cHBvcnRlZFBsdWdpbnMoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQppbmRleCAyODc2MzE2NWM2NGEyNjJhMTMxYWQ0ODU3MTI2MjI1ODg2YWIyZDUwLi40
OWMwNmRhMGY4OTJmMzNhMTUwYTg5ZDM4ZDZlOTc2ODI5NTQ4ODM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDI0LDYg
KzQyNCwxMyBAQCAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMKICAgICBfcHJvY2Vzc1Bv
b2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogfQogCistICh2b2lkKV90ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcworeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgX3Byb2Nlc3NQ
b29sLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vz
cwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQ0
NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllcgogICAgIHJl
dHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCistIChw
aWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIo
KTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKICAg
ICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRl
LmgKaW5kZXggN2Q0YjYxNWFkODAyNDg0MzhhZmExZmFlYjNhODQwNGU4ZmRhZmNmOS4uZmY3OWZk
YjY4NWNjYjE4M2M4YzBlZTM2MzVjMTk4YTU2YjBjYTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAg
LTg0LDEyICs4NCwxNiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0
YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25s
eS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBh
cmUgcnVubmluZy4KKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5U
X1BST0NFU1MgaXMgRU5BQkxFRAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3M7CiAt
ICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIu
MCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxh
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKIC8vIFRlc3Qg
b25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWls
YWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistIChwaWRfdClfcGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjMpKTsKIAogLy8gVGVzdCBv
bmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA1YzRiYjNiOWUxMTY0MWQ5ODc4MTFkYTY2Nzk0
NjViNmUzMTg0MGE1Li45NDQxOTYzMDFkMzcyZWY0OTA2MmMzOTdmOTM2MjkyYTU1YjU3YTAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaApAQCAtNTgsNiArNTgsMTAgQEAgcHVibGljOgogI2VuZGlmCiAgICAgICAgIE5ldHdvcmss
CiAgICAgICAgIFN0b3JhZ2UsCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAg
UGF5bWVudCwKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgfTsKIAog
ICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYjQ3
Y2VhOTI1NTcyNTQ0ZjAwNDRhMmY3MzAxNjU0YjRkMTUzNWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCkBA
IC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJv
eHkuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBheW1lbnRQcm9j
ZXNzQ2FsbGJhY2tJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQ7CisKKyAg
ICByZXR1cm4gKytjYWxsYmFja0lEOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50
UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENoaWxkUHJv
Y2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQor
ICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGluZ0Nvbm5l
Y3Rpb25SZXF1ZXN0cygwKQoreworICAgIGNvbm5lY3QoKTsKK30KKworUGF5bWVudFByb2Nlc3NQ
cm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
UHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIHRlcm1pbmF0ZSgpOworfQorCit2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVy
OjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlvbnMucHJv
Y2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50OworICAgIENo
aWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOworfQorCit2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+
Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94
eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1fcGVuZGlu
Z0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBpZiAoc3Rh
dGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rp
b25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9vbCBpc1NlcnZp
Y2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5
T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MsIHNlY3VyaXR5
T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBwcm90ZWN0ZWRQcm9jZXNzUG9vbCA9IG1h
a2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBUaGUgcGF5bWVudCBwcm9jZXNzIG11c3Qg
aGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkgcGVuZGluZyBzeW5jIHJlcGxpZXMg
d2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlz
RW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxp
ZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICAgICAg
cmVwbHkoSVBDOjpBdHRhY2htZW50KCkpOworI2VsaWYgT1MoREFSV0lOKQorICAgICAgICByZXBs
eShJUEM6OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbGlmIE9T
KFdJTkRPV1MpCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVudCgpKTsKKyNlbHNlCisgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKKyAgICB9CisgICAgLy8gVGVsbCBQcm9jZXNz
UG9vbCB0byBmb3JnZXQgYWJvdXQgdGhpcyBwYXltZW50IHByb2Nlc3MuIFRoaXMgbWF5IGNhdXNl
IHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgbV9wcm9jZXNzUG9vbC5wYXltZW50UHJvY2Vzc0NyYXNo
ZWQodGhpcyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbklkZW50aWZpZXIpCit7Cisg
ICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpOworCisgICAg
YXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworCisj
aWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgcmVwbHkoY29ubmVjdGlvbklkZW50aWZp
ZXIpOworI2VsaWYgT1MoREFSV0lOKQorICAgIHJlcGx5KElQQzo6QXR0YWNobWVudChjb25uZWN0
aW9uSWRlbnRpZmllci5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxpZiBP
UyhXSU5ET1dTKQorICAgIHJlcGx5KGNvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpKTsKKyNl
bHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAg
Q2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlv
bklkZW50aWZpZXIpOworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVy
IGNsZWFudXAgaGVyZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKKyAgICAg
ICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRpbmdDb25u
ZWN0aW9uUmVxdWVzdHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTNmNTJiYTc2
MTJkYWEzYzIzY2IwMTQ1ZjE2MTI1MDM4NTZkMjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCAr
MSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nl
c3NMYXVuY2hlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNl
IFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1By
b3h5OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisK
K2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJv
eHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vz
c1Bvb2wmKTsKKyAgICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAorICAgIHZvaWQgZ2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYp
OworCisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisKK3ByaXZhdGU6CisgICAgLy8g
Q2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5j
aGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcm9jZXNzV2lsbFNodXRE
b3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9u
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRSZWNl
aXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBkaWRDcmVhdGVQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKKworICAg
IC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsK
KworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisgICAgdW5zaWduZWQgbV9u
dW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiBtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTBlZmZiYjU4MjljYTA2NmU1ZWIzNGMxYzdlNDk2ZTdhM2YzODZlOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVu
dFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
bWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CisgICAgRGlk
Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXggZmE0
NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uYmVjNzliNTRjYmY2YzZlYzVl
ZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQgKzQ2LDExIEBAIHZvaWQgV2ViQ29udGV4dENsaWVu
dDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAg
ICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShwcm9jZXNzUG9vbCksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nl
c3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2ZDRlZThkNzc4ZDU2Njgy
MTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFiOWVkY2M4NDUzOTE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC00NSw2ICs0
NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQ29u
dGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFydE9yaWdp
bkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNz
RGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBw
bGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5o
CmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5MzRmYTYuLjJjNmFjYmIw
NWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiArMjksMTAgQEAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5OworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2Vi
UHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikKICAgICB7CiAgICAgfQor
ICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmlydHVhbCB2b2lkIHByb2Nl
c3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7CisgICAgfQorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bv
b2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAgdm9pZCBjbGVhclByb2Nl
c3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGE3MmI1NzEyZTFmNjYyMzY2ZjQ0NGFlNDk2
ZjJiMzViYzdjNDk5NmIuLjg5MTU4OTBjNTA3MGFjODM3NzM1ZTM0YzcwOGVlNzc4MDk2YzU1Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU0LDYg
KzU0LDEwIEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgog
I2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCkBA
IC00NDAsNiArNDQ0LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJl
RXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdl
czo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2Fs
KSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6
RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OkNoaWxk
UHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRNZW1vcnlQ
cmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MDQsNiArNjExLDM2IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNz
UHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwogfQogCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVBh
eW1lbnRQcm9jZXNzKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIG1f
cGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+KCp0
aGlzKTsKK30KKyAgICAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQg
aW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXlt
ZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkqIHBh
eW1lbnRQcm9jZXNzUHJveHkpCit7CisgICAgQVNTRVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAg
IEFTU0VSVChwYXltZW50UHJvY2Vzc1Byb3h5ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOwor
CisgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAg
ICAgICAgc3VwcGxlbWVudC0+cHJvY2Vzc0RpZENsb3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOwor
CisgICAgbV9jbGllbnQucGF5bWVudFByb2Nlc3NEaWRDcmFzaCh0aGlzKTsKKworICAgIGlmICht
X2F1dG9tYXRpb25TZXNzaW9uKQorICAgICAgICBtX2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5h
dGUoKTsKKworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYgcHJveHksIFNlY3VyaXR5T3JpZ2luRGF0YSYm
IHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQp
CiB7CkBAIC02ODAsNiArNzE3LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdy
b3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGUKICAgICAgICAg
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0
b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFt
ZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92
ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVz
c2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0
cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAg
ICAgfQogfQpAQCAtMTMxOCw2ICsxMzU4LDE2IEBAIFByb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6
bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCkKICAgICByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQ
cm9jZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpCit7Cisg
ICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBtX3BheW1lbnRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOworfQorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFsd2F5c1Vz
ZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7CiAgICAg
bV9hbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aCA9IGFsd2F5c1VzZUNvbXBsZXhUZXh0OwpA
QCAtMTU3Myw2ICsxNjIzLDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyQ2FjaGVkQ3Jl
ZGVudGlhbHMoKQogICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQogICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJDYWNoZWRDcmVkZW50
aWFscygpLCAwKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBX
ZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCkKK3sKKyAg
ICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGF5bWVu
dFByb2Nlc3MtPnRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzID0g
bnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBmZjhlYjE1N2ZlZTAzNGM1ZWFlNmYxNmE0
NDFjYTU1OGQzYmNjOTdjLi44OWI2YmM4NzVlYWRiMzkyNGNhNmFkYWEyMjlhODIxZmRhZjNlZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQwLDYgKzQw
LDkgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdv
cmtlclByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NSZXF1ZXN0LmgiCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5Lmgi
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJWaXNpdGVkTGlu
a1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5oIgogI2luY2x1ZGUgIldlYkNv
bnRleHRDb25uZWN0aW9uQ2xpZW50LmgiCkBAIC0xNzMsNiArMTc2LDEyIEBAIHB1YmxpYzoKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiB2b2lkIHNlbmRTeW5jVG9OZXR3b3Jr
aW5nUHJvY2VzcyhUJiYgbWVzc2FnZSwgVSYmIHJlcGx5KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB2b2lkIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShU
JiYgbWVzc2FnZSk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIC8vIFNlbmRz
IHRoZSBtZXNzYWdlIHRvIFdlYlByb2Nlc3Mgb3IgUGF5bWVudFByb2Nlc3MgYXMgYXBwcm9wb3Jp
YXRlIGZvciBjdXJyZW50IHByb2Nlc3MgbW9kZWwuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
dm9pZCBzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2FnZSk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nhcnko
VCYmIG1lc3NhZ2UpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2
b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5Kik7CiAKICAgICAv
LyBEaXNjb25uZWN0IHRoZSBwcm9jZXNzIGZyb20gdGhlIGNvbnRleHQuCkBAIC0yMTUsNiArMjI0
LDkgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiAKICAgICBQ
cm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VHcm91cCYgZGVmYXVs
dFBhZ2VHcm91cCgpIHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQoKTsgfQogCkBAIC0y
NzQsNiArMjg2LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNh
dGVGb3JXZWJTb2NrZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMo
KTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVybWluYXRlUGF5bWVu
dFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVT
ZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlclBy
b2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCk7CkBAIC0zMzgsNiArMzUzLDEyIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGVu
c3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFBy
b2Nlc3MoKSB7IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9CisgICAgdm9pZCBnZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFMOjpTZXNzaW9uSUQg
aW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vz
c0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgZXN0YWJsaXNo
V29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJv
eHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25hbDxQQUw6OlNl
c3Npb25JRD4pOwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBAIC02MjMsNiAr
NjQ0LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2
YWx1YXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2ggeyBm
YWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBtX25ldHdv
cmtQcm9jZXNzOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3RkOjp1bmlxdWVf
cHRyPFBheW1lbnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0
aW9uYXJ5Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CkBA
IC03MTgsNiArNzQyLDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQoreworICAgIGlmIChtX3Bh
eW1lbnRQcm9jZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNzYWdlKCkpCisgICAg
ICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsK
K30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1Bh
eW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKK3sKKyAgICBl
bnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpm
b3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRv
QWxsUHJvY2Vzc2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjOTk0N2RiZGIxNTJhYzdlZTJkMWMzMjQzNmEw
MjE5NWJkMzZkZDlkLi41Zjk2YTBlMWYyNjA1M2RkNWUyNmIwMDg2YmY1ODA4MWIxNTU3YzAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTYzOSw2
ICs2MzksMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3Byb2Nlc3NQb29s
LT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVwbHkpKTsKIH0K
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShyZXBseSkpOwor
fQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAzMzI3NGRm
NWQ2MWUwYmQ4NjMyY2UzMDk5MzQ5YTk3NjNjZmIzOTQ4Li45Mzk0M2Y5OGQxYTg2MzVjNmFkNzU4
YjVhNDRiNDJjMTZmN2I0MGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtMjc4LDYgKzI3OCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIGdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFM
OjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2Vk
KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCAzMmZkYThiMGFkY2RjYWI5NTEyOGYyNjQzYjM5OTZkZTEzYjZlYWMx
Li5hNTViZTVlMjI2NWUxZTlhZDk4ZWIzYTIwNThmMWJlN2YwMjQxMTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0z
Nyw2ICszNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7
CiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rv
a2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNB
c3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxl
KSBEZWxheWVkCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkgLT4gKElQQzo6
QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNl
bFByb2Nlc3NTdXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmNDA3NDZjOTQxZjg4
ZTEwY2QwNjJlYTc4M2RkZmRhZDdiZjExOTYzLi4xYTJhYTFhZWQ2ZDIyOTMxMmRkNmIzZGJkMjY0
ODM2N2M1MmI3N2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNs
dWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wu
aCIKQEAgLTEzNSw2ICsxMzksOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9y
ZSgpCiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldChtX3Nlc3Npb25J
RCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCkucmVtb3ZlKG1fc2Vz
c2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29s
OjphbGxQcm9jZXNzUG9vbHMoKSkgeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
ICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1l
bnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihtX3Nlc3Npb25JRCkpOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAgICAgICAgICAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3Mg
PSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAgICAgICBuZXR3b3Jr
UHJvY2Vzcy0+cmVtb3ZlU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgICAgIH0KQEAgLTE2MjQs
NiArMTYzMSwxOSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAogICAgIGNhbGxiYWNrKCk7CiB9
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCkKK3sK
KyAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOworCisgICAgUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIHBhcmFtZXRlcnMuc2Vzc2lv
bklEID0gbV9zZXNzaW9uSUQ7CisKKyAgICByZXR1cm4gcGFyYW1ldGVyczsKK30KKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBXZWJz
aXRlRGF0YVN0b3JlOjpwZW5kaW5nQ29va2llcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvcHlU
b1ZlY3RvcihtX3BlbmRpbmdDb29raWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA5MTYzZDk4OTQ1MTE2
NGNmYmJkM2E3ODA5ZTIyNGE5ODYxZmY3OTc4Li44ZDEyNDAyNmZhOGI5ZDdkMDE1ZDZiYTFkYTVi
OTU5OGE5YzE1NzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Miw2ICs2Miw5IEBAIGNsYXNzIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9w
dGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IE1vY2tXZWJBdXRoZW50
aWNhdGlvbkNvbmZpZ3VyYXRpb247CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3N0cnVj
dCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xNjksNiArMTcyLDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vzc1Bvb2wmKSBjb25zdDsKIAogICAg
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnMoKTsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBheW1l
bnRQcm9jZXNzUGFyYW1ldGVycygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBwZW5kaW5nQ29va2llcygpIGNvbnN0Owog
ICAgIHZvaWQgYWRkUGVuZGluZ0Nvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY2MmU2
MDQzMWJlZmI1MmE4ZTAwMDEyYTc1NDk0NjgwYTVmYzk5NWUuLmMzOWJlMWU3NWNhYzc5ZTBlYzY0
YTE1YmQzNzVmYzc1MWNlNDM2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ0LDYgKzg0NCw4IEBACiAJCTM3RjkwREUzMTM3NjU2
MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyog
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9OwogCQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZB
NDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZB
NDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAw
OENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3
IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OworCQkzOTEzNjAyNTIx
OTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzkxMzYwMjQyMTkzQzE0MzAw
NTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi87IH07CisJCTM5MTM2MDI3
MjE5M0MxNzAwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5MTM2MDI2MjE5M0MxNkYw
MDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi87IH07CiAJCTNGNDE4RUY5
MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4
RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJM0Y4
N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYy
IC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OwpAQCAtODg1LDcgKzg4Nyw2IEBACiAJCTQ2MEY0
ODkwMUY5OTZGNzEwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBG
NDg4RTFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNz
YWdlcy5oICovOyB9OwogCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDgxMUVC
OTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLzsgfTsKLQkJNDY2
QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZCQzAzOTFG
QTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLzsgfTsK
IAkJNDZBMkI2MDkxRTU2NzZBNjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2
ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZBMkI2MDcxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2
ZW5lc3NUaW1lci5oICovOyB9OwogCQk0NkRGMDYzQzFGMzkwNUY4MDAxOTgwQkIgLyogTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NkRGMDYzQTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyLmggKi87IH07CiAJCTRBM0NDMThCMTlCMDY0MEYwMEQxNEFFRiAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGM0ExOUFGN0IwNDAwMkVCQUI1IC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07CkBAIC05MDIsNiAr
OTAzLDExIEBACiAJCTUxMEY1OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFt
ZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QzBDOTc5MURERDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhD
OTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8q
IFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3
MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTE4
RTlBMTFGMjk1MzI2MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOTlG
MUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICov
OyB9OworCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgg
Ki87IH07CisJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMg
LyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwogCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQg
LyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJy
YXJ5LmggKi87IH07CiAJCTUxMUY4QTgxMTM4QjQ4NUQwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxp
YnJhcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovOyB9OwpA
QCAtOTUzLDYgKzk1OSw3IEBACiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NG
MEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBF
IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTE3REQ1QkYxODBE
QTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5LmggKi87IH07CiAJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAv
KiBXZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi87
IH07CiAJCTUxOEFDQUVBMTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0FF
OTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxOEFDRjExMTJCMDE1Rjgw
MEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNGMTAxMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVu
dGlhbFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTk2Nyw3ICs5NzQsNiBAQAogCQk1MUFDQkI4MjEyN0E4QkFEMDBEMjAzQjkgLyogV2Vi
Q29udGV4dE1lbnVQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFBQ0JCODExMjdBOEJBRDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHku
aCAqLzsgfTsKIAkJNTFBQ0JCQTAxMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJv
eHlNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QUNCQjlFMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLmggKi87IH07
CiAJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCMTVBODMxMzg0
M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTFCRUI2MkMxRjNBNUFENzAwNTAyOUI5
IC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCRUI2MkExRjNBNUFDRDAwNTAyOUI5IC8qIFdlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlci5oICovOyB9OwogCQk1MUMwQzk3NDFEREQ3NjAwMDAzMkNBRDMgLyog
SWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFDMEM5NzIxRERENzRGMDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdh
dGUuaCAqLzsgfTsKIAkJNTFDRDFDNUUxQjM0OTNCNDAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmln
aW5SZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
Q0QxQzVBMUIzNDkzQTkwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luUmVmLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFDRDFDNjUxQjM0QjlE
NDAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQ0QxQzVGMUIzNEI5QzkwMDE0MkNBNSAvKiBXS1NlY3Vy
aXR5T3JpZ2luLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9
OwpAQCAtOTgwLDYgKzk4Niw4IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAxNTc4
RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8q
IElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9Owor
CQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQwQjAw
RTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLzsgfTsKKwkJNTFFMzUyMDAxODBGNUQwRjAw
RTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JF
OSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZDMTY0
MUYyOTM1REQwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZD
MTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0
b3JhZ2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9N
V2luZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRl
bnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUx
NjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAg
LTExODUsNyArMTE5Myw2IEBACiAJCTgzQjNDQjEwMjBFMkFCMDEwMDQ0MUU5QiAvKiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjgxRENBMjBFMjkwNEEwMEMyNDlDRCAvKiBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCAqLzsgfTsKIAkJODNENDU0RDcxQkU5RDNDNDAwNkM5
M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0Q0NTRENjFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRD
bGllbnQuaCAqLzsgfTsKIAkJODNFRTU3NUMxREI3RDYxMTAwQzc0QzUwIC8qIFdlYlZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0VFNTc1QTFEQjdENjA2MDBDNzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VD
bGllbnQuaCAqLzsgfTsKLQkJODNGMUEwN0ExRjk2RTc3OTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2lu
VGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
RjFBMDc4MUY5NkU3NzEwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmggKi87IH07CiAJCTgz
Rjk2NDRFMUZBMEY3NkUwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGOTY0NEMx
RkEwRjc2MzAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggKi87IH07
CiAJCTg0NDc3ODUzMTc2RkNDMDgwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHRNZWRpYVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0NDc3ODUxMTc2RkNBQzEwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHRNZWRpYVR5cGUuaCAqLzsgfTsKIAkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nl
c3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RTY3QTIxMTkwRjQxMTgwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggKi87IH07
CkBAIC0xMTk4LDcgKzEyMDUsNiBAQAogCQk5MzI2MTE2MTIxNDA1NEY0MDAwODA2RTcgLyogV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzkyODhERDIxNDA0RDZDMDBFQkJBMzMgLyogV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmggKi87IH07CiAJCTkzM0RGODJFMUIzQkMwOTAwMEFFQTlFMyAvKiBXS0ltYWdl
UHJldmlld1ZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzNERjgyRDFCM0JDMDkwMDBBRUE5RTMgLyogV0tJbWFnZVByZXZpZXdW
aWV3Q29udHJvbGxlci5oICovOyB9OwogCQk5MzRCNzI0NDE5RjVCOUJFMDBBRTk2RDYgLyogV0tB
Y3Rpb25NZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5
cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
OTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3OTNC
MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJERDIx
NTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYg
LyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkRFMjE1MkI3MTAwMEU2
RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0JBMDRERTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5T
dG9yZS5oICovOyB9OwogCQk5MzU2RjJERjIxNTJCNzIzMDBFNkQ1REYgLyogV2ViU1dPcmlnaW5T
dG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0JBMDRERjIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5jcHAgKi87IH07CkBA
IC0xNTQ5LDYgKzE1NTUsNyBAQAogCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9w
dXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
M0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0
ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1
N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICov
OyB9OworCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5
MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi87IH07CiAJCUUxMUQzNUFF
MTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzcz
MTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQlFMTRBOTU0QTE2RTAxNkE0
MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4
REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovOyB9OwogCQlFMTUx
M0M2NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZD
QiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oICovOyB9OwpAQCAtMjk1MSw2ICsyOTU4LDI1IEBACiAJ
CTM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0
ZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTM3RkMxOTQ4MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3
RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDAyMjE5Mzc2
MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDMyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0Ns
aWVudENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDQy
MTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzkxMzYwMDYyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEz
NjAwNzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYw
MDgyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXT3JpZ2luVGFibGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dPcmlnaW5UYWJsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDA5MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDbGll
bnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
OTEzNjAwQTIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBCMjE5
Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBDMjE5Mzc2MDgw
MDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwRDIxOTM3NjA4MDA1NjQ5MkEgLyogV2Vi
U1dPcmlnaW5UYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV09y
aWdpblRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBFMjE5Mzc2
MDgwMDU2NDkyQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEYyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMTAyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTM5MTM2MDExMjE5Mzc2MDgwMDU2NDkyQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2gubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVu
dEZldGNoLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAx
MjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDky
QSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTM5MTM2MDI2MjE5M0MxNkYwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uu
c2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y0MThFRjYxODg3QkQ5NzAw
Mjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjk5NSwxMCAr
MzAyMSw2IEBACiAJCTQxMzA3NUE2MURFODVFRTcwMDM5RUM2OSAvKiBMaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDc1QTcxREU4NUVFNzAwMzlFQzY5
IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bGluZUVuZGluZyA9IDA7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5jcHA7IHBhdGggPSBOZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9Owog
CQk0MTMwNzVBODFERTg1RUU3MDAzOUVDNjkgLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgbmFtZSA9IExpYldlYlJUQ1Byb3Zp
ZGVyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29k
ZS5sYW5nLm9iamNwcDsgfTsKLQkJNDEzMUYzQ0UxRjk2QTQ5NTAwNTk5OTVBIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEz
MUYzQ0YxRjk2QTkzNjAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMzFGM0QwMUY5NkJDQzgw
MDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEzMUYzRTAxRjk4NzEyQzAwNTk5OTVBIC8qIFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzVGQkNGMUY0RkI3RjIwMDc0QzQ3QiAvKiBDYWNoZVN0
b3JhZ2VFbmdpbmVDYWNoZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEzNUZCRDAxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVD
YWNoZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzQ0NENEYyMERFQkMyRjAw
NjVBMjFBIC8qIGNvbS5nb29nbGUuZ29vZ2xldGFsa2Jyb3dzZXJwbHVnaW4uc2IgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5nb29nbGV0YWxrYnJvd3NlcnBsdWdpbi5zYjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMTEsNiArMzAzMyw3IEBACiAJCTQxNTdFNEFG
MjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1NDIxMTM3NzcwMDAxMkFCQ0QgLyogcHJvY2Vz
cy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
c2g7IHBhdGggPSAicHJvY2Vzcy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTYyMTEzNzdFODAwMTJBQkNEIC8qIHBy
b2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0g
InByb2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxODhDMTU3MjExMzc4NTIwMDEyQUJDRCAvKiBQYXltZW50LU9T
WC1zYW5kYm94LmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRsZW1lbnRz
OyBwYXRoID0gIlBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTgyMTEzNzg1MjAwMTJBQkNEIC8qIFdlYkNvbnRlbnQt
T1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVu
dHM7IHBhdGggPSAiV2ViQ29udGVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VDQjFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VD
QzFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzAyMSw3ICszMDQ0LDYgQEAKIAkJNDE4OTdFRDQxRjQxNUQ4NTAwMTZG
QTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2Fj
aGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTg5N0VENTFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENjFGNDE1RDg2MDAxNkZB
NDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3Rv
cmFnZUVuZ2luZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOUFDRjlCMUY5
ODFEMjYwMDlGMUE4MyAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBQzg2ODExRTA0MkU1MzAwMzAz
MDc0IC8qIFdlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbGluZUVu
ZGluZyA9IDA7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbjsgcGF0aCA9IE5ldHdv
cmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSAiPG5vbmU+IjsgfTsKIAkJ
NDFCMjhCMDgxRjgzQUQzRTAwRkI1MkFDIC8qIFJUQ1BhY2tldE9wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUGFja2V0T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MUIyOEIwOTFGODNBRDNFMDBGQjUyQUMgLyogUlRDUGFja2V0T3B0
aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENQYWNrZXRP
cHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTcsOSArMzA3OSw2
IEBACiAJCTQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNGRDQ4MTFFQjk0
RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjUyNTBFNTFFQ0Y1MkNEMDAyMDI1Q0IgLyogV2ViS2l0Mklu
aXRpYWxpemVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYktpdDJJbml0aWFsaXplQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2NkJD
MDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NjZCQzAzQTFGQTI2NkM5MDAy
RkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVE
QSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVz
c1RpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDcxRTU2NzVB
MjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVu
ZXNzVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2MzkxRjM5MDVF
NTAwMTk4MEJCIC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA3Nyw2ICszMDk2LDcgQEAKIAkJNEY2
MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNo
aW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBTZWNJ
dGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEw
MjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMDMyRjFBMTgwRjc0RjEwMDk2
MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEwNEY1QTExRjE5RDdDRjAwNENGODIxIC8qIENvb2tpZVN0b3JhZ2VV
dGlsc0NGLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2ll
U3RvcmFnZVV0aWxzQ0YubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcx
MUM3M0QyMkIwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MjFDNzNEMzdCMDA3OTkz
Q0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDk5LDEy
ICszMTE5LDEyIEBACiAJCTUxMEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRN
ZW51SXRlbURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEFFMEExMzND
MTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdl
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVByb2Nlc3NQcm94
eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUEzMUYyOTU5
NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUE0
MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1
IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVBy
b2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdl
UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTExOEU5OUUxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5OUYxRjI5
NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE1MUYyOTU5NjMw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMUY3RDNGMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGOEE3NzEzOEI0NjA5MDBB
OTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFNlY0l0ZW1TaGltTGlicmFyeS5oOyBwYXRoID0gLi4vLi4vV2ViUHJvY2Vzcy9tYWMv
U2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTIy
LDYgKzMxNDIsNyBAQAogCQk1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1l
bnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51
SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEyODhEOTc4MDBB
NEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMjEyODhE
OTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1l
bnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYxODBFMDVE
MjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVu
dFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEyRjU4OEUxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhG
MTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OTAxMkE4ODM4ODAwNjI5NTMw
IC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE4MywxNSArMzIwNCwxNCBAQAogCQk1MTdB
MzNCNDEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MkQ2MUY0M0E5QjYwMERDREMwQSAv
KiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTdBNTJENzFGNDNBOUI2MDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAvKiBXZWJT
V0NsaWVudENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxN0E1
MzAzMUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE3QTUzMEMxRjQ3OUU5NzAwRENEQzBBIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxN0E1MzBEMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NsaWVu
dENvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdB
NTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ2xpZW50
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRCAvKiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUw
RiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkMx
ODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50
UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQ
cm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMxMzc5
Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBw
YXRoID0gU2hpbS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFC
NTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjExLDYgKzMyMzEsNyBAQAogCQk1MUE1NTYw
MDEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJS
ZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCUmVz
dWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENCOTAw
NEJBOUFGIC8qIFdlYklEQlJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJJREJSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjkx
ODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MUE3MjhEQzFCMUJBRDJEMDAxMDJFRUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5hdmlnYXRpb25B
Y3Rpb25Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkYyMTI1
QkY4MjAwMDhBRUIxRCAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjQxMjVC
RjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjI4
LDggKzMyNDksNiBAQAogCQk1MUFDQzkzNTE2MjgwNjQ4MDAzNDI1NTAgLyogTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjE1QTgyMTM4
NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnZpcm9ubWVudFV0aWxpdGllcy5jcHA7IHBhdGggPSB1
bml4L0Vudmlyb25tZW50VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTFCMTVBODMxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEVudmlyb25tZW50VXRpbGl0aWVzLmg7IHBh
dGggPSB1bml4L0Vudmlyb25tZW50VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTUxQkVCNjI5MUYzQTVBQ0QwMDUwMjlCOSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFCRUI2MkExRjNBNUFDRDAwNTAyOUI5IC8q
IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDMEM5NzIxRERE
NzRGMDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUMwQzk3MzFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEljb25Mb2FkaW5n
RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQzBDOTc5MURERDc4
NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLTGlua0ljb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0zMjcwLDYgKzMyODksMTEgQEAKIAkJNTFERDlGMjcxNjM2N0RBMjAwMTU3
OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzNTFDODE4MEYyQ0NDMDBF
NTNCRTkgLyogSURCVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElEQlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSURCVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBh
ZFByb3ZpZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTVG
MUYyOTM1NTEwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVy
c2lzdGVudFN0b3JhZ2VJT1MubW07IHBhdGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bl
cnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2
QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50
U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY1Myw4ICszNjc3LDYg
QEAKIAkJODNENDU0RDYxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRUU1NzU5MURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRUU1NzVBMURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4M0YxQTA3
NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2lu
VGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dPcmlnaW5UYWJs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Y5NjQ0QjFGQTBGNzYyMDBDNDc3
NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3NTAgLyog
U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTM4MzAsNyArMzg1Miw2IEBACiAJCUE1RDM1MDREMUQ3OEYwRDIwMDUx
MjRBOSAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUVGRDM4QjE2QjBFODhDMDBCMkYwRTggLyogV0tQ
YWdlVmlzaWJpbGl0eVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UGFnZVZpc2liaWxpdHlUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzJE
NUQ3RjEyMzZDQkE4MDBBODhCMTUgLyogQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyog
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZS5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4Q0NERDgxOTNBQzlFMzAwNUVD
QzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtpbmcuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OENDREQ5
MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
Y29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0JEOTg2MzE5NDY1M0Q0MDBEMzU2OTggLyogRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVu
dHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0aCA9ICJEYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50
cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MzQ5LDcgKzQzNzAsNiBAQAogCQlE
RjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVX
ZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQu
U3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlN0b3Jh
Z2Uuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMzNGRDg5MTQyM0REN0YwMEZD
N0JGQiAvKiBXZWJLaXQuaWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGltYWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9IFJlc291
cmNlcy9XZWJLaXQuaWNuczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0QTk1NDcx
NkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0QTk1NDgx
NkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00Mzk0LDYgKzQ0MTQsNyBA
QAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94SW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1
M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYzOUMxOTBGNzkxQzAwNzMx
NjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUzNjAgLyogTmV0
d29ya0NhY2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmV0d29ya0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDJF
MDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDU2OCw2ICs0NTg5LDcgQEAKIAkJCQkxQUFEREY0QjEw
RDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1
QSAvKiBVSVByb2Nlc3MgKi8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlBy
b2Nlc3MgKi8sCisJCQkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNz
ICovLAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywK
IAkJCQkxQTBFQzZCMDEyNEJCRDM2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2VzcyAqLywKIAkJCQlD
MENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLApAQCAtNDc2OSw2
ICs0NzkxLDggQEAKIAkJCQk3QzBCQjlBOTE4RENERjVBMDAwNkMwODYgLyogTmV0d29yay1pT1Mu
ZW50aXRsZW1lbnRzICovLAogCQkJCTQxRDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAvKiBOZXR3b3Jr
LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyAqLywKIAkJCQlCQzgyODNBQjE2QjRCRUFEMDBBMjc4
RkUgLyogTmV0d29ya1NlcnZpY2UueGNjb25maWcgKi8sCisJCQkJNDE4OEMxNTcyMTEzNzg1MjAw
MTJBQkNEIC8qIFBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAorCQkJCTUxQTYw
QjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlB
MUVERDJEQjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8s
CiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25m
aWcgKi8sCiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQu
eGNjb25maWcgKi8sCkBAIC00OTI2LDYgKzQ5NTAsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQw
MEREN0M2OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBp
b3MgKi8sCiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk1MTE4
RTk5RDFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0
MDA4NTI0MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyog
UmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJz
aXRlRGF0YSAqLywKQEAgLTYyMDAsNiArNjIyNSwzMCBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9t
YWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEzNjAwMTIxOTM3NjA4
MDA1NjQ5MkEgLyogU3RvcmFnZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzkxMzYwMEUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaC5jcHAgKi8sCisJCQkJMzkxMzYwMDUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaC5oICovLAorCQkJCTM5MTM2MDExMjE5Mzc2MDgwMDU2NDkyQSAvKiBT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYwMDcyMTkz
NzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwICovLAor
CQkJCTM5MTM2MDBBMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50LmggKi8sCisJCQkJMzkxMzYwMTIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VX
b3JrZXJQcm92aWRlci5jcHAgKi8sCisJCQkJMzkxMzYwMDQyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5oICovLAorCQkJCTM5MTM2MDAyMjE5Mzc2MDgwMDU2NDky
QSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MTM2MDAzMjE5Mzc2MDgw
MDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLywKKwkJCQkzOTEzNjAwOTIxOTM3
NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJ
CTM5MTM2MDBCMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAgKi8sCisJCQkJMzkxMzYwMTAyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmggKi8sCisJCQkJMzkxMzYwMDYyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTM5MTM2MDA4
MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLywKKwkJCQkzOTEzNjAw
RDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovLAorCQkJCTM5MTM2MDBG
MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8s
CisJCQkJMzkxMzYwMEMyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFN0b3JhZ2U7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTYzOTQsMjYgKzY0
NDMsMTMgQEAKIAkJCXBhdGggPSBOZXR3b3JrOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKLQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8gPSB7CisJCTUx
MThFOTlEMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50ICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTMxRjNEMDFGOTZCQ0M4MDA1OTk5NUEgLyogU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLywKLQkJCQk0MTMxRjNDRTFGOTZBNDk1MDA1OTk5
NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmggKi8sCi0JCQkJNDEzMUYzQ0YxRjk2QTkz
NjAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbiAqLywKLQkJ
CQk0MTMxRjNFMDFGOTg3MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudC5jcHAgKi8sCi0JCQkJNDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLywKLQkJCQk1MUJFQjYyOTFGM0E1QUNEMDA1MDI5Qjkg
LyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCAqLywKLQkJCQk1MUJFQjYyQTFGM0E1QUNE
MDA1MDI5QjkgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggKi8sCi0JCQkJNTE3QTUzMDMx
RjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgKi8sCi0JCQkJNTE3
QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovLAotCQkJ
CTUxN0E1MzBDMUY0NzlFOTcwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4gKi8sCi0JCQkJNDY2QkMwMzgxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcCAqLywKLQkJCQk0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyog
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLywKLQkJCQk0NjZCQzAzQTFGQTI2NkM5
MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8s
Ci0JCQkJODNGMUEwNzcxRjk2RTc3MDAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuY3BwICov
LAotCQkJCTgzRjFBMDc4MUY5NkU3NzEwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmggKi8s
CisJCQkJNTExOEU5OUUxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCAqLywKKwkJCQk1MTE4RTk5RjFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJCSk7Ci0JCQlwYXRoID0gU3RvcmFn
ZTsKKwkJCXBhdGggPSBQYXltZW50OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsK
IAkJNTExRjhFREExODA4ODE2NjAwNDdEQTk2IC8qIEluZGV4ZWREQiAqLyA9IHsKQEAgLTY1MTks
NiArNjU1NSwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50ICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdERDVCQzE4MERBN0QzMDA4
MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8sCisJCQkJNTE3REQ1QkQxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLywKKwkJCQk1MTJBOTc2NjE4MEUw
NUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQlwYXRoID0gUGF5bWVudDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NTc1LDYgKzY2MjEsMjAgQEAKIAkJ
CXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MUY3REMw
QTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBp
b3MgKi8sCisJCQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNw
cCAqLywKKwkJCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAq
LywKKwkJCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyog
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCQk1MTAzMkYxQTE4MEY3NEYx
MDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8s
CisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRQcm9jZXNzOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJNTM5QkQ1QjIxREFEQjBCQTAwRjJFNEUxIC8qIGNhcHR1cmUgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjk3OCw3ICs3MDM4LDgg
QEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTc4Q0NERDgxOTNB
QzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLywKLQkJCQlB
NzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICov
LAorCQkJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1l
bnRzLnNiICovLAorCQkJCTM5MTM2MDI2MjE5M0MxNkYwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2Vi
S2l0LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwpAQCAt
NzAyNyw3ICs3MDg4LDcgQEAKIAkJCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29y
ayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNl
cikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCi0JCQkJ
NTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCisJCQkJMzkxMzYwMDEyMTkz
NzYwODAwNTY0OTJBIC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBD
IC8qIFVzZXJDb250ZW50ICovLAogCQkJCTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBXZWJB
dXRoZW50aWNhdGlvbiAqLywKIAkJCQlCQzAzMkQ1RDEwRjQzNzIyMDA1OEMxNUEgLyogV2ViQ29y
ZVN1cHBvcnQgKi8sCkBAIC03MTgyLDYgKzcyNDMsNyBAQAogCQkJCUJDQ0YwODVDMTEzRjNCNzUw
MEM2NTBDNSAvKiBtYWMgKi8sCiAJCQkJNTEwQ0M3RTcxNjEzOEU3MjAwRDAzRUQzIC8qIE5ldHdv
cmsgKi8sCiAJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8s
CisJCQkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8sCiAJCQkJMUFFRkND
MDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0MjAw
MDZFM0ZFIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBCNjM5
MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04MjQwLDcgKzgzMDIsNiBAQAogCQkJCTUxRkFFQzM3
MUIwNjU3MzEwMDA5QzRFNyAvKiBDaGlsZFByb2Nlc3NNZXNzYWdlcy5oICovLAogCQkJCUUxN0FF
MkMyMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNi
ICovLAogCQkJCTdBMTUwNjcyMURENTYyOTgwMDFGNEI1OCAvKiBjb20uYXBwbGUuV2ViS2l0LnBs
dWdpbi1jb21tb24uc2IgKi8sCi0JCQkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5h
cHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLywKIAkJCQlFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkg
LyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi8sCiAJCQkJMUFCN0Q2MTcxMjg4QjlEOTAwQ0ZE
MDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQjdENjE4
MTI4OEI5RDkwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5TWVzc2FnZXMuaCAqLywKQEAgLTgyNzMs
NiArODMzNCwxMCBAQAogCQkJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29j
a2V0U3RyZWFtTWVzc2FnZXMuaCAqLywKIAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyog
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4
NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmgg
Ki8sCisJCQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBMjFG
Mjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJ
Q0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQTI5QTI1MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNjFDQkVCNjdBMDA5MDFD
Q0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
QEAgLTgzMDcsMTIgKzgzNzIsNiBAQAogCQkJCTFBMzM0REVDMTZERThGODgwMDZBOEUzOCAvKiBT
dG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmggKi8sCiAJCQkJMUFCMzFBOTQxNkJDNjg4MTAwRjZEQkM5
IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUIzMUE5NTE2
QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovLAotCQkJCTUxMThF
OUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCi0JCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZXMuaCAqLywKLQkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCi0JCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1
IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAotCQkJCTUxMThFOUEzMUYyOTU5
NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCi0JCQkJNTExOEU5QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VzLmggKi8sCiAJCQkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODU5MSw2ICs4NjUwLDE0
IEBACiAJCQluYW1lID0gUERGOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
RTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1l
bnRQcm9jZXNzSU9TLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQlFNDg5RDI4MjFBMEEyQkU4MDA3OEMwNkEgLyogY2FjaGUg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTA1Niw2ICs5
MTIzLDEwIEBACiAJCQkJMUFDNzUzN0MxODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQYWdlTG9h
ZFN0YXRlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJE
RkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUExMUYy
OTUzMjYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBQjFGMjk1
OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMUUxMjNCQTIwQTExNTczMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzI5OERBMDFDM0RGMDIxMDA0NzBBRkUgLyogUGVuZGlu
Z0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTkzODUsNyArOTQ1Niw2IEBACiAJCQkJNDFE
QzQ1OUYxRTNEQkRBNTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tldC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0MzNjFENzMxOTI3RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNo
UG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUJFQjYyQzFGM0E1QUQ3MDA1MDI5Qjkg
LyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzhERDM4
MDFGRTQ1MjE2MDBGMkE1NTYgLyogV2Vic2l0ZUF1dG9wbGF5UG9saWN5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTQ4MzJENzFBOUNERjk2MDA4QjRERkUgLyogV2Vic2l0ZURhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNDgzMkQxMUE5QkRDMkYwMDhCNERGRSAvKiBXZWJzaXRlRGF0YVJlY29y
ZC5oIGluIEhlYWRlcnMgKi8sCkBAIC05Mzk0LDEzICs5NDY0LDEwIEBACiAJCQkJMEVERTg1MDMy
MDA0RTc1RDAwMDMwNTYwIC8qIFdlYnNpdGVQb3BVcFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODM2MDM0QTAxQUNCMzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTM1NkYyREMyMTUyQjZC
NTAwRTZENURGIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE3QTUzMTAxRjQ3QTg2MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0NjZCQzAzQzFGQTI2NkRBMDAyRkE5QzEgLyogV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEY0ODkwMUY5
OTZGNzEwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMTFBOUVDQzIxNDAzNUY4MDBDRkIyMEEgLyogV2ViU3dpdGNo
aW5nR1BVQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzU2RjJERTIxNTJCNzEwMDBFNkQ1
REYgLyogV2ViU1dPcmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODNGMUEwN0ExRjk2
RTc3OTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NTZGMkREMjE1MkI2RjYwMEU2RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxN0E1MkQ5MUY0M0E5REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5l
Y3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1MjYyQkMxRkI5NTE1RDAwNzBF
NTc5IC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKQEAgLTEwMDQzLDYgKzEwMTEwLDggQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyogY29t
LmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzkx
MzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4g
UmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI3MjE5M0MxNzAwMDU2NDkyQSAvKiBjb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2Uuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCUUxMUQzNUFFMTZCNjNEMUIw
MDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
NDE0REQzNzkyMEJGNDNGNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQu
c2IgaW4gUmVzb3VyY2VzICovLAogCQkJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3Jl
UHJlZGljdGlvbl9tb2RlbCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0xMDI1NSw3ICsxMDMyNCw2IEBA
CiAJCQlmaWxlcyA9ICgKIAkJCSk7CiAJCQlpbnB1dFBhdGhzID0gKAotCQkJCSIkKFNSQ1JPT1Qp
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5z
YiIsCiAJCQkJIiQoU1JDUk9PVCkvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5OZXR3b3JraW5nLnNiIiwKIAkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IiLAogCQkJKTsK
QEAgLTEwNjQ1LDYgKzEwNzEzLDExIEBACiAJCQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8q
IE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNG
OUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
QTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMmJmYWVlNDc2ZTFmNGJjY2NkYjI2NjBmZTVk
OGU2NmJkNjc0YTNkNy4uNWRmYzU1NTAwYzU2OTM4MTQ1Y2I2M2JmNzZkNWQ4Yjc2OTM5MGEwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmKSBmaW5hbDsKIAogICAgIHZvaWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY2hlZHVsZVBh
eW1lbnRKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZv
aWQgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VlNzg4
OTY0ODc5YjliOTc2ZGI0OWFlMDNlYTJkNWJhMGQ0NjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisK
KworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0
TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25u
ZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmUyMGFiZjZiZDM0NmM2YjFkYzJlNzE1ZTMx
MGVkM2Q1ZjMyNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
V1NlcnZlci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRl
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3Jl
YXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbigpOworICAgIAorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
bigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKwor
ICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0K
KyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0
dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjljMjMzNWY3OTFk
Mjg4Zjk1ZWMwMGFiOGYzMTc3ZWEyNWI1MDQwYS4uNTdkYWI2ZTVjMjMxYjljODMwMTMwODBkMDFj
ODg4NDNjMzQ5NGU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtNDMsNiArNDMsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0Rh
dGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1
ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgog
I2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAj
aW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVh
bS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTEyMTcsNiArMTIyMyw1
MCBAQCBXZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQog
ewogICAgIHJldHVybiBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAg
IEFTU0VSVChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1f
d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50
IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29u
bmVjdGlvbklkZW50aWZpZXIpLCAwKSkgeworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQorICAgICAgICAgICAgLy8gR1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2Vu
ZCBzeW5jIG1lc3NhZ2UgZmFpbHVyZS4KKyAgICAgICAgICAgIC8vIEluIHRoaXMgcGFydGljdWxh
ciBjYXNlLCB0aGUgcGF5bWVudCBwcm9jZXNzIGNhbiBiZSB0ZXJtaW5hdGVkIGJ5IHRoZSBVSSBw
cm9jZXNzIHdoaWxlIHRoZQorICAgICAgICAgICAgLy8gY29ubmVjdGlvbiBpcyBiZWluZyBkb25l
LCBzbyB3ZSBhbHdheXMgd2FudCB0byBleGl0IGluc3RlYWQgb2YgY3Jhc2hpbmcuCisgICAgICAg
ICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM0
OC4KKyAgICAgICAgICAgIGV4aXQoMCk7CisjZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyNl
bmRpZgorICAgICAgICB9CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICAgICAg
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2Rl
ZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworI2VsaWYgT1Mo
REFSV0lOKQorICAgICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSk7CisjZWxpZiBPUyhX
SU5ET1dTKQorICAgICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpKTsKKyNlbHNlCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIGlmICghSVBDOjpD
b25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAg
ICAgICAgICBDUkFTSCgpOworCisgICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24gPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKKworICAgIH0KKyAgICByZXR1cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb247Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQ
cm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggM2QyMWNjODgzYTUyNjQxYTQwYWMxMzk5YzFh
MmY5OWNkNDdiZDU3ZC4uNDU0YTkxYjZkMWU5MDc3M2FkMTczMjAwODQwODk5MDAxNjNmMDc5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05OCw2ICs5OCw5IEBAIGNs
YXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91
cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1cHBsZW1lbnQ7CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0
cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlBhZ2VHcm91cERhdGE7
CkBAIC0xNzUsNiArMTc4LDExIEBAIHB1YmxpYzoKIAogICAgIExpYldlYlJUQ05ldHdvcmsmIGxp
YldlYlJUQ05ldHdvcmsoKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9p
ZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiopOworICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklEKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBzZXRD
YWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQzMCw2ICs0MzgsMTAgQEAgcHJpdmF0
ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1
dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gbV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYg
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcy
NjVjMGQ0ZjJhMjQ5NzMzYi4uODJiYWU3NGE0ZmExM2FjNzJiZGU2M2E2NTkxMDI0YzU5MzRiYWRk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI3Miw2ICsyNzIsNyBAQCBFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJM
RV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRf
UExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMzkzNTQ2
YjgwNWY1YTFlMmQyM2E5ZGRkMTUzMjM0MTNmMzMzZmM4Li5jYTg4NTUxNTcwMjE2YWNiYjNkZDAw
YjY0YmRhYjU2NmYxMTllNDk1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTgtMTEtMDYgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW06CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNp
dGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpkYXRhYmFzZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOC0xMC0x
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSU9TIDEyIC0g
U2VydmljZSB3b3JrZXIgY2FjaGUgbm90IHNoYXJlZCB3aGVuIGFkZGVkIHRvIGhvbWVzY3JlZW4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYy
YTI0OTczM2IuLjgyYmFlNzRhNGZhMTNhYzcyYmRlNjNhNjU5MTAyNGM1OTM0YmFkZDAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpAQCAtMjcyLDYgKzI3Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxF
X05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7
CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0g
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLm1tCmluZGV4IDNmMWE2Mjg4NjgyMTAyYTU4OTJhMGVlZjMyYTk0NDJhMGNhZjUwODQu
LmMzNDZhYmZkNjIwZjkzNTU1ZmQ4MDA1YzhhMWI0MGQ4YTljMDQ3YjEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0NCw2ICsxNDQsNyBAQCBURVNUKFJlc291cmNlTG9hZFN0
YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAgICAgLy8gRW5zdXJlIHRoZSBz
aGFyZWQgcHJvY2VzcyBwb29sIGV4aXN0cyBzbyB0aGUgZGF0YSBzdG9yZSBvcGVyYXRpb25zIHdl
J3JlIGFib3V0IHRvIGRvIHdvcmsgd2l0aCBpdC4KICAgICBXS1Byb2Nlc3NQb29sICpzaGFyZWRQ
cm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNzUG9vbF07CiAKKyAgICBF
WFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVu
dGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9w
bHVnaW5Qcm9jZXNzQ291bnRdKTsKIAogICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtXS1dlYnNpdGVE
YXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CkBAIC0xNjgsNiArMTY5LDcgQEAgVEVTVChSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogCiAgICAgRVhQ
RUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRo
OnRhcmdldFVSTC5wYXRoXSk7CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9j
ZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXpl
X3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29y
a2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQppbmRleCA0Y2I4ZmE5N2E2NmM4YTdmZDg0NTllZWQwYTQ1ODQyYjJi
ODFmYTgzLi5iZGFhMmM5ZmVhOTQwNzU5NDE0NjQ0MTlhYWNhMzM1ZDUzOTFjODk1IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQpAQCAtMTA0Niw2ICsxMDQ2LDkgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgU2VydmljZVdvcmtlclByb2Nlc3NDcmVhdGlvbikKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8vIE1ha2Ugc3VyZSBwYXlt
ZW50IHByb2Nlc3MgaXMgbm90IGxhdW5jaGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3Lmdl
dCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7
CisKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBsb2FkaW5nIHRoZSBzaW1wbGUgcGFnZSBkaWQgbm90
IHN0YXJ0IHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgogICAgIEVYUEVDVF9FUSgxdSwgd2Vi
Vmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl93ZWJQcm9jZXNzQ291bnQpOwog
CkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHBheW1lbnQg
cHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3Vy
YXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7CisKICAgICAvLyBM
ZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBoYXMgc2VydmljZSB3b3JrZXIg
YW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFT
dG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAppbmRleCAxZWQ0ZWQ0ZjZlOTQ3YjliYmQ0NTM4MDU0NDZmZTU2MWNkY2U1ZjQx
Li43MDA5YTAzYTdkZDI0YTRiZWVmYTQwZWZlNmYxNzFjNzIyMzc0Yjc5IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKQEAgLTMzMCw2ICszMzAsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7
CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5h
dGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nl
c3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZENhbmNlbENsaWVudFJl
ZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAppbmRleCA0NWFkNjZiMzZiZGI5NjExOThiNWIwZDA3OTI3MTJjYzVj
ZjU0YmE4Li4zYTJmODhhZDllYjFjZTZjZjljYzE5MDcxNTZmNDhlNDdmMWE2OTYxIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKQEAgLTEyNDgsNiArMTI0OCwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdl
Rm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1l
c3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0UnVubmVy
Ojp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJU
ZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25v
dXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5w
YWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwogc3RhdGlj
IHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1bnNpZ25l
ZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGJhMGQ2YTY1
N2Q1NDVkOWU2M2UwNGMwNjdiYjM0MDljZDNiYWQ1YTkuLjk3ZTE5NTdkOTk3YjU1NjVhMWU5ZjVl
ZTg4YWY5ZTBlZDI3MDI4MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDMsNiArNDQzLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7
CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVlUmVmKTsKICAg
ICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjaygpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkNDEwMGY4ZjM3OWQz
OWNhY2VmYjhhMjk0Y2UxOWU0NzQ5MTBkZDRiLi42YzA5MTBhZmNiNTNhZGMyMzRhNjcyNTZlMWZm
ZTExMmI4YzMzYWFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cApAQCAtMTA2Miw2ICsxMDYyLDE1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpuZXR3
b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVy
OjpwYXltZW50UHJvY2Vzc05hbWUoKQoreworI2lmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4g
ImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudCI7CisjZWxzZQorICAgIHJldHVybiAiUGF5bWVudCBw
cm9jZXNzIG5vdCBhdmFpbGFibGUgb24gYW55dGhpbmcgYnV0IGlPUyI7CisjZW5kaWYKK30KKwog
dm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBhbGxv
d3MpCiB7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2Nr
ZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3MpOwpAQCAtMTQ4NSw2ICsxNDk0LDEx
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0
UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xs
ZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPm5ldHdvcmtQcm9jZXNzRGlkQ3Jh
c2goKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaChX
S0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBzdGF0
aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRS
ZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91cykKIHsKICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiS2V5IikpOwpAQCAtMTgxOCw2ICsxODMyLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQoMSk7CiB9CiAKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKQoreworICAgIHBpZF90IHBpZCA9IFdL
Q29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOworICAg
IGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClcbiIsIHBheW1lbnRQcm9j
ZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsKKyAgICBleGl0KDEpOworfQorCiAv
LyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1p
dE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBX
S1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0yNjE3LDYgKzI2MzgsMTEgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKQogICAg
IFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgp
KTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQor
eworICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgp
KTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKQogewpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDVjM2ZlNTNkMTY3NDY4MGQ5NjZiYjIyOTRhNGVj
NGU0NDgzYTFlZGYuLjg2OGZhYzdlMmZkYTc0ZGQ0MTVjNmQ2NjkwYjI1ZTQ2Nzg4YzgzZmQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTEzMyw3ICsxMzMsNyBA
QCBwdWJsaWM6CiAgICAgV0tTdHJpbmdSZWYgZ2V0VXNlck1lZGlhU2FsdEZvck9yaWdpbihXS0Zy
YW1lUmVmLCBXS1N0cmluZ1JlZiBvcmlnaW5LZXkpOwogICAgIHZvaWQgc2V0VXNlck1lZGlhUGVy
bWlzc2lvbihib29sKTsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvbigpOwotICAg
IHZvaWQgc2V0VXNlck1lZGlhUGVyc2lzdGVudFBlcm1pc3Npb25Gb3JPcmlnaW4oYm9vbCwgV0tT
dHJpbmdSZWYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5TdHJpbmcsIFdLU3RyaW5nUmVmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcpOworICAgIHZvaWQgc2V0VXNlck1lZGlhUGVyc2lzdGVu
dFBlcm1pc3Npb25Gb3JPcmlnaW4oYm9vbCwgV0tTdHJpbmdSZWYgdXNlck1lZGlhRG9jdW1lbnRy
aWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAg
ICAgdm9pZCBoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS0ZyYW1lUmVmLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmKTsKICAgICB2b2lkIGhhbmRsZUNoZWNrT2ZVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luKFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLU2VjdXJpdHlPcmln
aW5SZWYsIGNvbnN0IFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUmVmJik7CiAgICAgT3JpZ2lu
U2V0dGluZ3MmIHNldHRpbmdzRm9yT3JpZ2luKGNvbnN0IFN0cmluZyYpOwpAQCAtMTYwLDYgKzE2
MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogd2ViUHJvY2Vzc05hbWUoKTsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbmV0d29ya1Byb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGRhdGFiYXNlUHJvY2Vzc05hbWUoKTsKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciogcGF5bWVudFByb2Nlc3NOYW1lKCk7CiAKICAgICBXb3JrUXVldWVNYW5hZ2VyJiB3b3JrUXVl
dWVNYW5hZ2VyKCkgeyByZXR1cm4gbV93b3JrUXVldWVNYW5hZ2VyOyB9CiAKQEAgLTIzMSw2ICsy
MzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAg
ICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWlu
YXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRp
YWxzKCk7CiAKQEAgLTMyOCw2ICszMzAsOCBAQCBwcml2YXRlOgogICAgIC8vIFdLQ29udGV4dENs
aWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVm
LCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CisgICAg
c3RhdGljIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZv
aWQqKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKIAogICAgIC8vIFdLUGFn
ZU5hdmlnYXRpb25DbGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdL
UGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQq
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYzRkZGM5
MjhhNGY1NjBiMzQwOWFjNWJjYzJlNGM3NGJlOWU2YzZkZC4uM2U3MmRiZWM1OGM3YTYzMDY3ZmIz
MDRjNTY3MTExM2JjZTI2MmUxYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKQEAgLTE0NDAsNiArMTQ0MCwxMiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpIHsK
KyAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIikpIHsKICAgICAgICAgQVNTRVJUKCFt
ZXNzYWdlQm9keSk7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhlY2Y3MzA2YTg1ODE5ODZiZGNlZGUzNWU0NTNl
YjFiOTUxMDc1OGMuLjJiYjQxNjFjOThjNzRlNzIzYTNjN2UxMGU1ODAzZmI5MTA2NTVmZTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0wNiAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFw
cGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWw6CisKIDIw
MTgtMTAtMTIgIERhd2VpIEZlbnRvbiAgPHJlYWxkYXdlaUBhcHBsZS5jb20+CiAKICAgICAgICAg
W01vamF2ZSBXazJdIExheW91dCBUZXN0IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNr
LWNhY2hlLXZhbGlkYXRpb24tYXR0YWNobWVudC5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3Jp
cHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVu
dC1pbXBvcnRTY3JpcHRzLmh0bWwKaW5kZXggMDhhOWE1OTYyMzIxMDRiODY1ZTNhYjJkZjg1YTli
OTQ1N2VjODRlOS4uNmM5ZGNmMzFmOTk4YzZiMjhmYmNhZDhiMjU3ZjQzODljNWQ1YjZjNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQt
aW1wb3J0U2NyaXB0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbApAQCAtMzYsOCArMzYsMTAgQEAgYXN5
bmMgZnVuY3Rpb24gZG9UZXN0KCkgewogICAgIGxldCByYW5kb21JZCA9IGF3YWl0IGdldFJhbmRv
bUlkRnJvbVdvcmtlcih3b3JrZXIpOwogCiAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaGFzaC5s
ZW5ndGgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29y
a1Byb2Nlc3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlUGF5bWVudFByb2Nl
c3MoKTsKKyAgICAgICAgfQogICAgICAgICBhd2FpdCB3YWl0Rm9yKDEwMCk7CiAgICAgICAgIHdp
bmRvdy5sb2NhdGlvbiArPSAiP3Rlc3QjIiArIHJhbmRvbUlkOwogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354198</attachid>
            <date>2018-11-07 19:16:12 -0800</date>
            <delta_ts>2018-11-08 02:15:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181107191611.patch</filename>
            <type>text/plain</type>
            <size>172057</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDdhNDNlMDU1ZWEyZDU2NThlNDkwYTM0NDU5ZDA2YjZhYTUxM2YzLi5iNWMxOTljMDY2MDQ3NjJk
OTVhNTVhNTk2OGM2MTU5MDUwZGQxM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMC0xMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM3MDYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNlNmMxZTI0ZDRjODdiYmEwMTZhMTZjOTg3OTA5NjQxOGIz
MmUyYmEuLjBiN2JjZjFiN2UzMzI4MTA4ZDhiYTdhODEyNmFlOTQzMjcyNWExOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFw
cGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6
CisKIDIwMTgtMTAtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyJ3MgcGFyZW50IHNob3VsZCBiZSBhIFdl
YWtQdHIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA2NTBmNjUzZDE5YzNiZGJjZGRhMjlhNDU5ZmZj
ZGVkZDA0MzI0OTcxLi4zZWViM2RhYTgyMjQ4MTAyZGU0YjU5MGE5YTAyNTQ2NWY4ODFkZmU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhh
cXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3
aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAx
OC0xMC0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIFtXSzJdIEFkZCBzdXBwb3J0IGZvciB0ZXh0IGFsaWdubWVudCBhbmQgdGV4dCBs
aXN0cyBpbiBmb250IGF0dHJpYnV0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDI3MTRhYzcxYzExZDllNGNhZDhk
NGRhZGRkYTQ4YTAwNDdmNjNjMi4uZTAzNGM1M2Y0ZTU2NzliN2MzMmU3YmY1MmQzNTAxMDdiYTZj
NTUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjMgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1
ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0
aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRh
cmdldC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVu
dGl0bGVtZW50czogQWRkZWQuCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZp
Y2UueGNjb25maWc6IEFkZGVkLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjp+UGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vz
czo6c2hvdWxkVGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmVuc3Vy
ZVBhdGhFeGlzdHMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6cG9zdFBheW1l
bnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnBlcmZvcm1OZXh0UGF5
bWVudFRhc2spOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vz
czo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6
ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRp
YWxpemVTYW5kYm94KToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5o
OiBBZGRlZC4KKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogUGF5
bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYjogQWRkZWQuCisg
ICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaC4KKyAgICAgICAgKiBTaGFyZWQvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291
cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdL
Q29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzXSk6CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNz
SWRlbnRpZmllcl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJ
RCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OlBheW1lbnRQcm9jZXNz
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp+UGF5bWVudFBy
b2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnRlcm1p
bmF0ZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojpn
ZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6
cHJvY2Vzc1dpbGxTaHV0RG93bik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNz
RGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vz
c1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNvbm5lY3Rpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDE4LTEwLTEyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWxsb3cg
ZW5jb2Rpbmcgb2Ygc21hbGwgZW51bSBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggYWU3OWI1MDA3MThhYWUzOTBmYmQxOGI4NGZjNzExY2UzZTI5MjhhOS4uNDA0OTBmNjMw
MGI2MDliOTQ5YTM0NmM3MjJiMDVhMmM1YTcxZjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVA
YXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEy
OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTEwLTEyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWxsb3cg
ZW5jb2Rpbmcgb2Ygc21hbGwgZW51bSBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJhMjQ5NzMzYi4uODJiYWU3NGE0ZmEx
M2FjNzJiZGU2M2E2NTkxMDI0YzU5MzRiYWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpA
QCAtMjcyLDYgKzI3Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNo
ID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElG
SUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5U
X1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVR
VUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQo
V0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA2ODllZDAwYmRiMGY1ZTU5YWJlZmE3
NzI2NWMwZDRmMmEyNDk3MzNiLi44MmJhZTc0YTRmYTEzYWM3MmJkZTYzYTY1OTEwMjRjNTkzNGJh
ZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpAQCAtMjcyLDYgKzI3Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxF
X05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7
CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0g
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNv
cmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IGYyNmU5NmQ0MmEwODRj
M2Q1M2MyYzA5NzA4Y2IxMjNlMDk2MjZkYWIuLmQyMDE2MzVjMDVhYzczNDZlYmMxNjkzMWI1OGNk
MTViM2ZiNGU0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9j
YWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2
aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUu
ICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSI7
CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudCIgPSAiJUAgUGF5bWVudCI7
CisKIC8qIFZpc2libGUgbmFtZSBvZiB0aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBXZWIgQ29udGVudCIgPSAiJUAgV2ViIENvbnRl
bnQiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVj
MGQ0ZjJhMjQ5NzMzYi4uODJiYWU3NGE0ZmExM2FjNzJiZGU2M2E2NTkxMDI0YzU5MzRiYWRkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjcyLDYgKzI3Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5B
QkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1f
TkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElP
TlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNU
ID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQK
aW5kZXggZjE2MTU0MjczMjZkODhiYWFkYjVlOTNjMjNkY2E3NTQzYjE4MDRjNS4uN2I3NDFlMTBh
NzJmMjJhNzgwN2Q0ZTc3MzYzODc5YzJhNDAwZDlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0z
MSw3ICszMSw5IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJl
ZC9QbHVnaW5zL05ldHNjYXBlL3gxMSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlIgorICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QYXltZW50IgogICAgICIke1dF
QktJVF9ESVJ9L1NoYXJlZC9XZWJzaXRlRGF0YSIKKyAgICAiJHtXRUJLSVRfRElSfS9QYXltZW50
UHJvY2VzcyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSSIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL0MiCkBA
IC00Nyw2ICs0OSw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUiCisgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1BheW1lbnQiCiAgICAgIiR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbiIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vTW9jayIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NB
R0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0
Lm1lc3NhZ2VzLmluCiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdl
cy5pbgorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCisKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNz
YWdlcy5pbgogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2
ICsxNTcsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3Mv
UGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9V
c2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjIxLDYgKzIyOSwxMCBAQCBzZXQoTmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0
CiApCiAKK3NldChQYXltZW50UHJvY2Vzc19MSUJSQVJJRVMKKyAgICBXZWJLaXQKKykKKwogc2V0
KFBsdWdpblByb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCkBAIC00NDAsMTAgKzQ1Miwy
MCBAQCBpZiAoV2ViS2l0X05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FKQogICAgIHNldF90YXJn
ZXRfcHJvcGVydGllcyhOZXR3b3JrUHJvY2VzcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FICR7V2Vi
S2l0X05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FfSkKIGVuZGlmICgpCiAKK2FkZF9leGVjdXRh
YmxlKFBheW1lbnRQcm9jZXNzICR7UGF5bWVudFByb2Nlc3NfU09VUkNFU30pCitBRERfV0VCS0lU
X1BSRUZJWF9IRUFERVIoUGF5bWVudFByb2Nlc3MpCit0YXJnZXRfbGlua19saWJyYXJpZXMoUGF5
bWVudFByb2Nlc3MgJHtQYXltZW50UHJvY2Vzc19MSUJSQVJJRVN9KQoraW5zdGFsbChUQVJHRVRT
IFBheW1lbnRQcm9jZXNzIERFU1RJTkFUSU9OICIke0xJQkVYRUNfSU5TVEFMTF9ESVJ9IikKKwor
aWYgKFdlYktpdF9QYXltZW50UHJvY2Vzc19PVVRQVVRfTkFNRSkKKyAgICBzZXRfdGFyZ2V0X3By
b3BlcnRpZXMoUGF5bWVudFByb2Nlc3MgUFJPUEVSVElFUyBPVVRQVVRfTkFNRSAke1dlYktpdF9Q
YXltZW50UHJvY2Vzc19PVVRQVVRfTkFNRX0pCitlbmRpZiAoKQorCiBpZiAoQ09NUElMRVJfSVNf
R0NDX09SX0NMQU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhXZWJLaXQgLVdu
by11bnVzZWQtcGFyYW1ldGVyKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhXZWJQ
cm9jZXNzIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhf
RkxBR1MoTmV0d29ya1Byb2Nlc3MgLVduby11bnVzZWQtcGFyYW1ldGVyKQorICAgIFdFQktJVF9B
RERfVEFSR0VUX0NYWF9GTEFHUyhQYXltZW50UHJvY2VzcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIp
CiBlbmRpZiAoKQogCiAjIEZJWE1FOiBNYWMgc2hvdWxkIGJ1aWxkIGEgcGx1Z2luIHByb2Nlc3Mu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcK
aW5kZXggNDA1ZDYzYmJiMDEyYTM5ZTY1ZGE4YmE4Yjg5MDgzNThhMjU4YmQ2Yy4uZWViN2EyNmFk
YTE0NjNkMmFkNWE4ZGNmZGIyMDZhNGQ2M2NmM2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwpAQCAtMTExLDYgKzExMSw4IEBAIFdL
X0hBVkVfQ09SRV9QUkVESUNUSU9OW3Nkaz1tYWNvc3gqXVthcmNoPWkzODZdID0gTk87CiBXS19D
T1JFX1BSRURJQ1RJT05fREVGSU5FUyA9ICQoV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVNfJChX
S19IQVZFX0NPUkVfUFJFRElDVElPTikpOwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVNfWUVT
ID0gSEFWRV9DT1JFX1BSRURJQ1RJT047CiAKK1dLX1BBWU1FTlRfU0VSVklDRV9QUk9EVUNUX05B
TUUgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzOworCiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJP
RFVDVF9OQU1FID0gJChXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FXyQoV0tfVVNFX0xF
R0FDWV9TVE9SQUdFX1NFUlZJQ0VfTkFNRSkpOwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1Rf
TkFNRV8gPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8pOwogV0tfU1RPUkFH
RV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCmluZGV4IDY4OWVkMDBiZGIwZjVlNTlhYmVmYTc3MjY1YzBkNGYyYTI0OTczM2IuLjgyYmFl
NzRhNGZhMTNhYzcyYmRlNjNhNjU5MTAyNGM1OTM0YmFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjcyLDYg
KzI3Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxF
X05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNf
bWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1Mg
PSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAog
RU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZP
Uk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXlt
ZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg2YWE3MTVh
ZTBlZjJlZDg0MDcxNDNjOWNmZWIwYTYyMWYxNWNlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMK
QEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgor
PCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0
cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVy
c2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Y29tLmFwcGxlLnJvb3RsZXNzLnBheW1lbnQuV2Vi
S2l0UGF5bWVudFNhbmRib3g8L2tleT4KKwk8dHJ1ZS8+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25m
aWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjNhMzc0ZTBmNWQ4YWJjNWQzODQyZDliZTA2YWQ3MDNkYjE0ZjA5NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNl
cnZpY2UueGNjb25maWcKQEAgLTAsMCArMSwzNCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8g
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgIkJhc2VYUENTZXJ2aWNlLnhjY29uZmlnIgorCitX
S19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEX05PID0gOworV0tfUEFZTUVOVF9FTlRJ
VExFTUVOVFNfUkVTVFJJQ1RFRF9ZRVMgPSBDb25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5k
Ym94LmVudGl0bGVtZW50czsKKworQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VDSF9O
TyA9ICQoV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF8kKFdLX1VTRV9SRVNUUklD
VEVEX0VOVElUTEVNRU5UUykpOworT1RIRVJfQ09ERV9TSUdOX0ZMQUdTID0gJChXS19MSUJSQVJZ
X1ZBTElEQVRJT05fQ09ERV9TSUdOX0ZMQUdTKTsKKworUFJPRFVDVF9OQU1FID0gJChXS19QQVlN
RU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FKTsKK1BST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAk
KFBST0RVQ1RfTkFNRSk7CitJTkZPUExJU1RfRklMRSA9IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCBmZTU1MWY0OTcxZTQxMDIwMmMzNzNiODVlMTc4YzU1M2E2Yzc1M2MxLi5hMzQ5
OTMzNDBhYWVkNDg0ZjA3OWExYTdkYmNmOTI3MDE5M2FmODJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0zNyw2ICszNyw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvU2hh
cmVkL0FQSS9Db2NvYSBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvQXV0aGVudGljYXRpb24gXAog
ICAgICQoV2ViS2l0MikvU2hhcmVkL21hYyBcCisgICAgJChXZWJLaXQyKS9QYXltZW50UHJvY2Vz
cyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxlUGF5IFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L0F1dG9tYXRpb24gXApAQCAtNzMsNiArNzQsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1
c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBc
CisgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGF5bWVudCBcCiAgICAgJChXZWJLaXQyKS9VSVBy
b2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTEzMSw2ICsxMzMsOSBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
IFwKICAgICBTdG9yYWdlQXJlYU1hcCBcCiAgICAgU3RvcmFnZU1hbmFnZXIgXAorICAgIFBheW1l
bnRQcm9jZXNzIFwKKyAgICBQYXltZW50UHJvY2Vzc1Byb3h5IFwKKyAgICBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbiBcCiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgXAogICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgXAogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgzMWM1MTAzOWRiZGY1ZjczM2I1ZWRhYzI5MWQ1N2FkYTYzMDc2YmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNz
LmNwcApAQCAtMCwwICsxLDE5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzcy5oIgorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
KyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFBy
b2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJX
ZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRFbmNvZGlu
Zy5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tB
Z2dyZWdhdG9yLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bh
eW1lbnRQcm9jZXNzJiBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+IHByb2Nlc3M7CisgICAgcmV0dXJuIHByb2Nl
c3M7Cit9CisKK1BheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2VzcygpCisgICAgOiBtX3F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRQcm9jZXNzIikpCit7
CisgICAgLy8gTWFrZSBzdXJlIHRoZSBVVEY4RW5jb2RpbmcgZW5jb2RpbmcgYW5kIHRoZSB0ZXh0
IGVuY29kaW5nIG1hcHMgaGF2ZSBiZWVuIGJ1aWx0IG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUg
YSBiYWNrZ3JvdW5kIHRocmVhZCBuZWVkcyBpdC4KKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTM2NSAtIE5lZWQgYSBtb3JlIGV4cGxpY2l0
IHdheSBvZiBkb2luZyB0aGlzIGJlc2lkZXMgYWNjZXNzaW5nIHRoZSBVVEY4RW5jb2RpbmcuCisg
ICAgVVRGOEVuY29kaW5nKCk7Cit9CisKK1BheW1lbnRQcm9jZXNzOjp+UGF5bWVudFByb2Nlc3Mo
KQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXpl
Q29ubmVjdGlvbihjb25uZWN0aW9uKTsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzczo6c2hvdWxk
VGVybWluYXRlKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNo
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vz
czo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRpZFJlY2VpdmVQYXltZW50UHJv
Y2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNo
aWxkUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIENoaWxkUHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMoY29u
c3QgU3RyaW5nJiBwYXRoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisg
ICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMocGF0aCkpCisgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIG1ha2UgYWxsIGRpcmVjdG9yaWVzIGZvciBwYXRoICclcyciLCBw
YXRoLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpwb3N0UGF5bWVu
dFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOworCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wYXltZW50VGFza011dGV4KTsKKwor
ICAgIG1fcGF5bWVudFRhc2tzLmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKKworICAgIG1fcXVldWUt
PmRpc3BhdGNoKFt0aGlzXSB7CisgICAgICAgIHBlcmZvcm1OZXh0UGF5bWVudFRhc2soKTsKKyAg
ICB9KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6cGVyZm9ybU5leHRQYXltZW50VGFzaygp
Cit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBDcm9zc1RocmVhZFRh
c2sgdGFzazsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGF5bWVudFRhc2tN
dXRleCk7CisgICAgICAgIEFTU0VSVCghbV9wYXltZW50VGFza3MuaXNFbXB0eSgpKTsKKyAgICAg
ICAgdGFzayA9IG1fcGF5bWVudFRhc2tzLnRha2VGaXJzdCgpOworICAgIH0KKworICAgIHRhc2su
cGVyZm9ybVRhc2soKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK3sKKyNpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKKyAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFp
ciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7CisgICAgbV9w
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUoc29ja2V0UGFpci5zZXJ2ZXIpKTsKKyAgICBwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjpEaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQoc29ja2V0UGFp
ci5jbGllbnQpKSwgMCk7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgLy8gQ3JlYXRlIHRoZSBsaXN0
ZW5pbmcgcG9ydC4KKyAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0ID0gTUFDSF9QT1JUX05V
TEw7CisgICAgYXV0byBrciA9IG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBN
QUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOworICAgIGlmIChrciAhPSBL
RVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWFj
aCBwb3J0LCBlcnJvciAleCIsIGtyKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisKKyAgICAv
LyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29ubmVjdGlvbi4KKyAgICBtX3BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9ucy5hcHBlbmQoUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0
ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIobGlzdGVuaW5nUG9ydCkpKTsKKworICAgIElQ
Qzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTUFL
RV9TRU5EKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bihjbGllbnRQb3J0KSwgMCk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBzZXJ2ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyOworICAgIGlm
ICghSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVycyhzZXJ2
ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBMT0dfRVJST1IoIkZh
aWxlZCB0byBjcmVhdGUgc2VydmVyIGFuZCBjbGllbnQgaWRlbnRpZmllcnMiKTsKKyAgICAgICAg
Q1JBU0goKTsKKyAgICB9CisKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKHNlcnZlcklkZW50aWZpZXIpOworICAgIG1fcGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKworICAg
IElQQzo6QXR0YWNobWVudCBjbGllbnRTb2NrZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94
eTo6RGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY2xpZW50U29ja2V0KSwg
MCk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKworI2lmICFQTEFU
Rk9STShDT0NPQSkKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0
IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCisgICAgeworI2lmIE9TKExJ
TlVYKQorICAgICAgICBhdXRvJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNpbmdsZXRvbigpOworICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0
TG93TWVtb3J5SGFuZGxlcihbdGhpc10gKENyaXRpY2FsLCBTeW5jaHJvbm91cykgeworICAgICAg
ICAgICAgLy8gRklYTUU6IG5vIGxvd01lbW9yeUhhbmRsZXIoKSBpbXBsZW1lbnRlZCBmb3IgUGF5
bWVudFByb2Nlc3MgY3VycmVudGx5LgorICAgICAgICAgICAgLy8gQnV0IGF0IGxlYXN0IGRlZmlu
ZSB0aGlzIHNldExvd01lbW9yeUhhbmRsZXIoKSBlbXB0eSBzbyBwbGF0Zm9ybVJlbGVhc2VNZW1v
cnkgaXMgY2FsbGVkLgorICAgICAgICB9KTsKKyAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVy
Lmluc3RhbGwoKTsKKyNlbmRpZgorICAgIH0KK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRlc3Ryb3lT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVT
YW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRi
b3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorI2VuZGlmIC8vICFQTEFURk9STShD
T0NPQSkKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTAyYzc4NjkwMzkzZWE2M2Q5M2U4NmRiNjgxZDBjZGU5ZmQ2OWM5
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFByb2Nlc3MuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOworc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOworCitjbGFzcyBQYXltZW50UHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFBheW1lbnRQcm9jZXNzKTsKKyAgICBmcmllbmQgTmV2ZXJE
ZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+OworcHVibGljOgorICAgIHN0YXRpYyBQYXltZW50UHJv
Y2VzcyYgc2luZ2xldG9uKCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBQcm9jZXNzVHlwZSBwcm9j
ZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpQYXltZW50OworCisgICAgflBheW1lbnRQcm9jZXNzKCk7
CisKKyAgICB2b2lkIHBvc3RQYXltZW50VGFzayhDcm9zc1RocmVhZFRhc2smJik7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFByb2Nlc3MoKTsKKworICAgIC8v
IENoaWxkUHJvY2VzcworICAgIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFs
aXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24qKSBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOwor
CisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8g
TWVzc2FnZSBIYW5kbGVycworICAgIHZvaWQgaW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoY29u
c3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2b2lkIGNyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYpOworCisgICAgdm9pZCBkZXN0cm95U2Vzc2lv
bihQQUw6OlNlc3Npb25JRCk7CisgICAgCisgICAgLy8gRm9yIGV4ZWN1dGlvbiBvbiB3b3JrIHF1
ZXVlIHRocmVhZCBvbmx5CisgICAgdm9pZCBwZXJmb3JtTmV4dFBheW1lbnRUYXNrKCk7CisgICAg
dm9pZCBlbnN1cmVQYXRoRXhpc3RzKGNvbnN0IFN0cmluZyYpOworCisgICAgVmVjdG9yPFJlZjxQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4+IG1fcGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25zOworCisgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKworICAgIERlcXVlPENyb3Nz
VGhyZWFkVGFzaz4gbV9wYXltZW50VGFza3M7CisgICAgTG9jayBtX3BheW1lbnRUYXNrTXV0ZXg7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllNzZjNDIxNzA1NjA4ZTY1Yjcx
YTFkOTBkYzZjNmU1NGQwMzUzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKKyAgICAKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTEyNjg5NjIwYWYyNDdlNTZlN2E3ODdlZDQ1
ZjRhMjg2ZTBkOTkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSw4OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKworUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlv
bklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICAvLyBVc2UgdGhpcyBmbGFnIHRvIGZvcmNlIHN5
bmNocm9ub3VzIG1lc3NhZ2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXN5bmNocm9ub3VzIG1lc3NhZ2Vz
IGluIHRoZSBXZWJQcm9jZXNzLgorICAgIC8vIE90aGVyd2lzZSwgdGhlIFdlYlByb2Nlc3Mgd291
bGQgcHJvY2VzcyBpbmNvbWluZyBzeW5jaHJvbm91cyBJUEMgd2hpbGUgd2FpdGluZyBmb3IgYSBz
eW5jaHJvbm91cyBJUEMKKyAgICAvLyByZXBseSBmcm9tIHRoZSBwYXltZW50IHByb2Nlc3MsIHdo
aWNoIHdvdWxkIGJlIHVuc2FmZS4KKyAgICBtX2Nvbm5lY3Rpb24tPnNldE9ubHlTZW5kTWVzc2Fn
ZXNBc0Rpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVz
c2FnZSh0cnVlKTsKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246On5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkuZGlkUmVjZWl2
ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0
cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlv
bik7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKKwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmJjMDFmYWY4NWE1
ZTU1MWNhZGJlNjc4ZTkzMWI4YzRiZGJmMmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0w
LDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZVNlbmRlci5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbj4sIHByaXZhdGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNz
YWdlU2VuZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKyAgICB+UGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3luY1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworCisgICAg
Ly8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQorICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4g
MDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ODQzMjI1OTY2MjY5MzU5MzkxNmUzZDk0Y2E5NTRmZDUwOTc5YTZjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorbWVzc2FnZXMg
LT4gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgeworfQorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQ
cm9jZXNzSU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhNmFhZWI1NmIyNGMwYTM2Y2ZlNjcxNTI4ZDlmY2Vm
YWVkNjg5YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBM
QVRGT1JNKElPUykKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpbXBvcnQgIlNhbmRi
b3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKworI2RlZmluZSBFTkFCTEVfTUFOVUFMX0RB
VEFCQVNFX1NBTkRCT1hJTkcgMAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3go
Y29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKK3sKKyNp
ZiBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcKKyAgICAvLyBOZWVkIHRvIG92ZXJy
aWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1bmRsZSBJ
RC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFz
czpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICBzYW5kYm94UGFyYW1ldGVy
cy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBwYXRoRm9yUmVz
b3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIiBvZlR5cGU6QCJzYiJdKTsKKyAgICBD
aGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0
ZXJzKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5QYXltZW50cy5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM3
Y2JmZjhjZGI3ODk2NGM3NjRlNGUyZTRkZmZkNjEwMzI4NTliCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzLnNiCkBAIC0wLDAgKzEsNDcgQEAKKzsgQ29weXJpZ2h0IChDKSAyMDE0LTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorOworOyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzsgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorOworOyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCis7
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCis7IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworOyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworOyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCis7IFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworKHZlcnNpb24gMSkKKyhkZW55IGRlZmF1bHQgKHdpdGggcGFy
dGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhhbGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFk
YXRhKQorCisoaW1wb3J0ICJjb21tb24uc2IiKQorCisoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNl
cnZpY2UtbmFtZS1wcmVmaXggIiIpKQorCisoZGVueSBsc29wZW4pCisKKyhhbGxvdyBmaWxlLXJl
YWQqIGZpbGUtd3JpdGUqIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdy
aXRlIikpCisKKyhkZW55IHN5c2N0bCopCisoYWxsb3cgc3lzY3RsLXJlYWQKKyAgICAoc3lzY3Rs
LW5hbWUKKyAgICAgICAgImh3LmF2YWlsY3B1IgorICAgICAgICAiaHcubmNwdSIKKyAgICAgICAg
Imh3Lm1vZGVsIgorICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2ZWwiCisgICAgICAgICJ2
bS5mb290cHJpbnRfc3VzcGVuZCIpKQorCis7OyBWYXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5
IHN5c3RlbSBmcmFtZXdvcmtzCisoYWxsb3cgbWFjaC1sb29rdXAKKyAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmFuYWx5dGljc2QiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5k
ZXggNTQ3OGE5ZGQ5ZmM1OTJiMTg3NjYzZjk1NGVmYTU5MWNmMDIwNGZkMS4uMTMyODkyMTdiOTgy
MzIzOTAxMmVhZmVmMzRiNzA5OTliZWY1ODMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmgKQEAgLTUwLDYgKzUwLDkgQEAgcHVibGljOgogICAgICAgICBOZXR3b3JrLAogICAgICAg
ICBTdG9yYWdlLAogICAgICAgICBQbHVnaW4KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB9
OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NzM3MDk3MzQwM2Q0NjM0MDhlZDYzYmJjZWY0NTYzYmQwMDk5ODFmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJz
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQoreworfQorCit2b2lkIFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOworfQorCitib29sIFBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQoreworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJhYzg2M2MwMGE4YTQwNzAxMzUxMmNhMjMxYzA1NTgzNTE3YjllZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CisKKyAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBD
OjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKworICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDJjZTcxNmU0YzcyZTU4MmFiZTMwZjQ4Nzlk
MmM2ZWI5ZTQ5OWE5N2IuLjYyYjU0NzRlZmFhNzI0ZWFiNTI4YjRmNjcwMTc5MWYwY2U5YWFkZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCkBAIC0z
Miw1ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZX
ZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKTsKIFN0
cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQYXltZW50UHJvY2VzcygpOworI2Vu
ZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBiNzFh
ZDQ5ODM0NWVkOWNhNDI4YjBhMzRjNGJhZTliODNiOTViMGQzLi45MGViMDhlM2IxYjkxMTJhZDc2
YjMxM2YwYzZjMTQ5MjhlNjUyNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTIxOSw4ICsyMTksMTMgQEAg
U2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgQG5vLXVu
aWZ5CiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgIEBu
by11bmlmeQogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwIEBu
by11bmlmeQogCitTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKwogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAogCitQYXltZW50UHJv
Y2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAgQG5vLXVuaWZ5CitQYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CisKIFVJUHJvY2Vzcy9CYWNrZ3Jv
dW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiBVSVByb2Nlc3MvQ2hpbGRQcm9jZXNz
UHJveHkuY3BwCiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTM4MSw2ICszODYs
OCBAQCBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5jcHAKIAorVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5j
cHAKKwogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmNwcAog
VUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAog
CkBAIC00OTMsNiArNTAwLDcgQEAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3Bw
CiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAK
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCitXZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKIFdlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKaW5kZXggNTk0YmY5MGRkNWYwOGJmZGM0MzRiOWY1ZGM1OWU0OGMzYWEyZDcxZS4u
MGU0MjBlZjY4ODcwZjE2ODUyZDBmM2E2ZDllNTM1NjE0ZmQ1MzE1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dApAQCAtMTk0LDYgKzE5NCw5IEBAIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCiAKKworUGF5bWVudFByb2Nlc3MvaW9z
L1BheW1lbnRQcm9jZXNzSU9TLm1tIEBuby11bmlmeQorCiBVSVByb2Nlc3MvX1dLV2ViVmlld1By
aW50Rm9ybWF0dGVyLm1tCiBVSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0KIFVJ
UHJvY2Vzcy9IaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDE5NjUyOGNiZTUxMjdm
NGI1OTdlZjY3MWM4YjEwMzg4YzIwY2M5NzQuLjI1MmFlZTUzMzRkOGU1Y2RhYjE3MzlmZWE3MjFk
OTk0OGI1NTBmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcApAQCAtNjIxLDExICs2MjEsMjcgQEAgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNl
V29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICB0b0ltcGwoY29udGV4dCkt
PnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKIH0KIAordm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVu
dFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K30KKwogUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5u
ZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBh
eW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPnBh
eW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRl
ZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJpbmdSZWYgZG9tYWluUmVmLCBX
S1N0cmluZ1JlZiBuYW1lUmVmLCBXS0FycmF5UmVmIG1pbWVUeXBlc1JlZiwgV0tBcnJheVJlZiBl
eHRlbnNpb25zUmVmKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IGVj
NmM4NjNiNmU0OGE2YWJjMjk4NTE3M2MzM2Q3NGVkMTNhNThiNTMuLjliYjFkNWMyYjk4NTM4ZGUw
YzU3ZDFlY2E5MjUwMTA0ZGQ4MThkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTkyLDYgKzkyLDggQEAgV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiAK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKFdLQ29udGV4
dFJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2VzcyhXS0NvbnRleHRSZWYpOworLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVu
IFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJt
aW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogCiBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcoV0tDb250
ZXh0UmVmLCBib29sKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yU2VydmljZVdvcmtlclRlc3RpbmcoV0tDb250ZXh0UmVmLCBib29sKTsKQEAg
LTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0
KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVj
b25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCk7
CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50
aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29u
dGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYg
Y29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWluLCBXS1N0cmluZ1JlZiBuYW1lLCBXS0FycmF5UmVm
IG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRlbnNpb25zKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhXS0NvbnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4
IDI4NzYzMTY1YzY0YTI2MmExMzFhZDQ4NTcxMjYyMjU4ODZhYjJkNTAuLjQ5YzA2ZGEwZjg5MmYz
M2ExNTBhODlkMzhkNmU5NzY4Mjk1NDg4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MjQsNiArNDI0LDEzIEBAIC0g
KHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwogICAgIF9wcm9jZXNzUG9vbC0+Y2xlYXJTdXBw
b3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQpX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzCit7
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0
ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzCiB7CiAgICAgX3By
b2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpAQCAtNDQ0LDYgKzQ1MSwxNSBA
QCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyCiAgICAgcmV0dXJuIF9wcm9jZXNz
UG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKKy0gKHBpZF90KV9wYXltZW50
UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJl
dHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAg
ICByZXR1cm4gKHBpZF90KTA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30K
KwogLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcwogewogICAgIF9wcm9jZXNzUG9v
bC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCA3ZDRi
NjE1YWQ4MDI0ODQzOGFmYTFmYWViM2E4NDA0ZThmZGFmY2Y5Li5mZjc5ZmRiNjg1Y2NiMTgzYzhj
MGVlMzYzNWMxOThhNTZiMGNhOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAtODQsMTIgKzg0LDE2
IEBACiAtIChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRhOihOU0RhdGEgKily
ZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUg
Y2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgor
Ly8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBF
TkFCTEVECistICh2b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1p
bmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nl
c3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lk
KV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLy8gVGVzdCBvbmx5LgogLSAocGlk
X3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MyksIGlvcygxMS4wKSk7CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZ
TUVOVF9QUk9DRVNTIGlzIEVOQUJMRUQKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMykpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXpl
X3QpX3dlYlByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NM
YXVuY2hlci5oCmluZGV4IDVjNGJiM2I5ZTExNjQxZDk4NzgxMWRhNjY3OTQ2NWI2ZTMxODQwYTUu
Ljk0NDE5NjMwMWQzNzJlZjQ5MDYyYzM5N2Y5MzYyOTJhNTViNTdhMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01OCw2
ICs1OCwxMCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKICAgICAgICAgU3Rv
cmFnZSwKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50LAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB9OwogCiAgICAgc3RydWN0IExh
dW5jaE9wdGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1l
bnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBiNDdjZWE5MjU1NzI1NDRm
MDA0NGEyZjczMDE2NTRiNGQxNTM1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKQEAgLTAsMCArMSwxNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgorCisjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNz
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGF5bWVudFByb2Nlc3NDYWxsYmFja0lE
KCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJhY2tJRDsKKworICAgIHJldHVybiArK2Nh
bGxiYWNrSUQ7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6OlBheW1lbnRQcm9jZXNzUHJveHko
V2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQorICAgIDogQ2hpbGRQcm9jZXNzUHJveHkocHJv
Y2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkpCisgICAgLCBtX3Byb2Nl
c3NQb29sKHByb2Nlc3NQb29sKQorICAgICwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3Rz
KDApCit7CisgICAgY29ubmVjdCgpOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5Ojp+UGF5bWVu
dFByb2Nlc3NQcm94eSgpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6dGVybWlu
YXRlRm9yVGVzdGluZygpCit7CisgICAgdGVybWluYXRlKCk7Cit9CisKK3ZvaWQgUGF5bWVudFBy
b2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlv
bnMmIGxhdW5jaE9wdGlvbnMpCit7CisgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9IFBy
b2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisgICAgQ2hpbGRQcm9jZXNzUHJv
eHk6OmdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7Cit9CisKK3ZvaWQgUGF5bWVudFBy
b2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24pCit7CisgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkg
PT0gJmNvbm5lY3Rpb24pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6UGF5bWVudFByb2Nlc3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAg
IGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNz
UHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJl
cGxpZXMuYXBwZW5kKFdURk1vdmUocmVwbHkpKTsKKworICAgIGlmIChzdGF0ZSgpID09IFN0YXRl
OjpMYXVuY2hpbmcpIHsKKyAgICAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKys7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBib29sIGlzU2VydmljZVdvcmtlclByb2Nl
c3MgPSBmYWxzZTsKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW47CisKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc2VjdXJpdHlPcmlnaW4pLCAwLCBJ
UEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFByb2Nlc3NQb29sID0gbWFrZVJlZihtX3Byb2Nl
c3NQb29sKTsKKworICAgIC8vIFRoZSBwYXltZW50IHByb2Nlc3MgbXVzdCBoYXZlIGNyYXNoZWQg
b3IgZXhpdGVkLCBzbyBzZW5kIGFueSBwZW5kaW5nIHN5bmMgcmVwbGllcyB3ZSBtaWdodCBoYXZl
LgorICAgIHdoaWxlICghbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy50YWtlRmlyc3Qo
KTsKKworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXBseShJUEM6OkF0
dGFjaG1lbnQoKSk7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNo
bWVudCgwLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAg
ICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KCkpOworI2Vsc2UKKyAgICAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyNlbmRpZgorICAgIH0KKyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdl
dCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVs
ZXRlZC4KKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK3ZvaWQgUGF5bWVudFBy
b2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3Qg
SVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIW1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSk7CisKKyAgICBhdXRvIHJlcGx5ID0g
bV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKKyAgICByZXBseShjb25uZWN0aW9uSWRlbnRpZmllcik7CisjZWxpZiBP
UyhEQVJXSU4pCisgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KGNvbm5lY3Rpb25JZGVudGlmaWVy
LnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisg
ICAgcmVwbHkoY29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCkpOworI2Vsc2UKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBDaGlsZFByb2Nlc3NQ
cm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7
CisKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlv
bklkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIEZJWE1FOiBEbyBiZXR0ZXIgY2xlYW51cCBoZXJl
LgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytpKQorICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
ZmFsc2UsIHsgfSksIDApOworICAgIAorICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0
cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50
L1BheW1lbnRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxM2Y1MmJhNzYxMmRhYTNjMjNjYjAx
NDVmMTYxMjUwMzg1NmQyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaApAQCAtMCwwICsxLDg1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNz
IFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmln
aW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CitlbnVtIGNs
YXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBXZWJzaXRlRGF0YTsKKworY2xhc3MgUGF5bWVu
dFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBDaGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOworICAg
IH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7CisgICAgCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisKKyAgICB2b2lk
IHRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKworcHJpdmF0ZToKKyAgICAvLyBDaGlsZFByb2Nlc3NQ
cm94eQorICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25u
ZWN0aW9uJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIGRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOworCisgICAgLy8gUHJvY2Vzc0xh
dW5jaGVyOjpDbGllbnQKKyAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNo
ZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOworCisgICAgV2ViUHJv
Y2Vzc1Bvb2wmIG1fcHJvY2Vzc1Bvb2w7CisKKyAgICB1bnNpZ25lZCBtX251bVBlbmRpbmdDb25u
ZWN0aW9uUmVxdWVzdHM7CisgICAgRGVxdWU8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IG1fcGVuZGluZ0Nvbm5lY3Rp
b25SZXBsaWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMGVmZmJiNTgyOWNhMDY2ZTVlYjM0YzFjN2U0OTZlN2EzZjM4NmU5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAtPiBQ
YXltZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKKyAgICBEaWRDcmVhdGVQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZp
ZXIpCisKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBmYTQ1NzYyZWNlYmEwMTNh
NmFjYTRmOTY0ZGE4NTY2Mzk3NDFkNTc1Li5iZWM3OWI1NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2
OTliNTUzZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmNwcApAQCAtNDYsNCArNDYsMTEgQEAgdm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICBtX2NsaWVudC5u
ZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYkNv
bnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nl
c3NQb29sKQoreworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dENsaWVudC5oCmluZGV4IDgwYzMxMTIyYzA3NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYu
LjU5YjNhNDA3OTEwOGYyMzhmMWQ2ZjhhYmYxYWI5ZWRjYzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNz
IFdlYkNvbnRleHRDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFz
ZT4gewogcHVibGljOgogICAgIHZvaWQgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdl
ZChXZWJQcm9jZXNzUG9vbCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQ
cm9jZXNzUG9vbCopOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXlt
ZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKik7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICAKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0
MDNkYjI5Zjk0MDA0MzhiYTMyYTYwYzc1ODI3NDkzNGZhNi4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVj
MDY3ZDFmMGQ5ZDQ1OWExMjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dFN1cHBsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b250ZXh0U3VwcGxlbWVudC5oCkBAIC0yOSw2ICsyOSwxMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7
CiAKQEAgLTU0LDYgKzU4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Rp
ZENsb3NlKE5ldHdvcmtQcm9jZXNzUHJveHkqKQogICAgIHsKICAgICB9CisgICAgCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBh
eW1lbnRQcm9jZXNzUHJveHkqKQorICAgIHsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogICAgIFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvY2Vzc1Bvb2w7IH0KICAgICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1f
cHJvY2Vzc1Bvb2wgPSBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggYTcyYjU3MTJlMWY2NjIzNjZmNDQ0YWU0OTZmMmIzNWJjN2M0OTk2
Yi4uODkxNTg5MGM1MDcwYWM4Mzc3MzVlMzRjNzA4ZWU3NzgwOTZjNTVjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTQsNiArNTQsMTAgQEAKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlH
YW1lcGFkLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKQEAgLTQ0MCw2ICs0NDQs
OSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlz
Q3JpdGljYWwpCiB7CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpDaGlsZFByb2Nl
c3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKICAgICBzZW5k
VG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVt
b3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRS
ZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBQ
bHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuc2VuZE1lbW9yeVByZXNzdXJlRXZlbnQo
aXNDcml0aWNhbCk7CiAjZW5kaWYKQEAgLTYwNCw2ICs2MTEsMzYgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJv
Y2Vzc1Byb3gKICAgICBtX25ldHdvcmtQcm9jZXNzLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3Mo
KQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgbV9wYXltZW50UHJvY2Vz
cyA9IHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVudFByb2Nlc3NQcm94eT4oKnRoaXMpOworfQorICAg
IAordm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7
CisgICAgbV9wYXltZW50UHJvY2Vzcy0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlBy
b2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpw
YXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3NQ
cm94eSkKK3sKKyAgICBBU1NFUlQobV9wYXltZW50UHJvY2Vzcyk7CisgICAgQVNTRVJUKHBheW1l
bnRQcm9jZXNzUHJveHkgPT0gbV9wYXltZW50UHJvY2Vzcy5nZXQoKSk7CisKKyAgICBmb3IgKGF1
dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQorICAgICAgICBzdXBwbGVt
ZW50LT5wcm9jZXNzRGlkQ2xvc2UocGF5bWVudFByb2Nlc3NQcm94eSk7CisKKyAgICBtX2NsaWVu
dC5wYXltZW50UHJvY2Vzc0RpZENyYXNoKHRoaXMpOworCisgICAgaWYgKG1fYXV0b21hdGlvblNl
c3Npb24pCisgICAgICAgIG1fYXV0b21hdGlvblNlc3Npb24tPnRlcm1pbmF0ZSgpOworCisgICAg
bV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmln
aW4sIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRCkKIHsKQEAgLTY4MCw2
ICs3MTcsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZQogICAgICAgICBzZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2FjeVByaXZhdGVTZXNzaW9uUGFyYW1ldGVycygpKSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgICAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC0x
MzE4LDYgKzEzNTgsMTYgQEAgUHJvY2Vzc0lEIFdlYlByb2Nlc3NQb29sOjpuZXR3b3JrUHJvY2Vz
c0lkZW50aWZpZXIoKQogICAgIHJldHVybiBtX25ldHdvcmtQcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5
bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFBy
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0
Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKIHsKICAgICBtX2Fsd2F5c1VzZXND
b21wbGV4VGV4dENvZGVQYXRoID0gYWx3YXlzVXNlQ29tcGxleFRleHQ7CkBAIC0xNTczLDYgKzE2
MjMsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAg
ICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDApOwog
fQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29s
Ojp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKQoreworICAgIGlmICghbV9wYXlt
ZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+dGVy
bWluYXRlRm9yVGVzdGluZygpOworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCmluZGV4IGZmOGViMTU3ZmVlMDM0YzVlYWU2ZjE2YTQ0MWNhNTU4ZDNiY2M5
N2MuLjg5YjZiYzg3NWVhZGIzOTI0Y2E2YWRhYTIyOWE4MjFmZGFmM2VlY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1
ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc1JlcXVlc3QuaCIKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHkuaCIKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNp
bmNsdWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rp
b25DbGllbnQuaCIKQEAgLTE3Myw2ICsxNzYsMTIgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHZvaWQgc2VuZFN5bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQm
JiBtZXNzYWdlLCBVJiYgcmVwbHkpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2Vu
ZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsK
IAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2Ug
dG8gV2ViUHJvY2VzcyBvciBQYXltZW50UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJl
bnQgcHJvY2VzcyBtb2RlbC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1Bh
eW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lk
IHNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZvaWQgcHJvY2Vzc0Rp
ZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkqKTsKIAogICAgIC8vIERpc2Nvbm5lY3Qg
dGhlIHByb2Nlc3MgZnJvbSB0aGUgY29udGV4dC4KQEAgLTIxNSw2ICsyMjQsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhclN1cHBvcnRlZFBsdWdpbnMoKTsKIAogICAgIFByb2Nlc3NJRCBuZXR3
b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IFByb2Nlc3NJRCBwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogCiAgICAgV2ViUGFnZUdyb3VwJiBkZWZhdWx0UGFnZUdyb3VwKCkg
eyByZXR1cm4gbV9kZWZhdWx0UGFnZUdyb3VwLmdldCgpOyB9CiAKQEAgLTI3NCw2ICsyODYsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tl
dChib29sKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygpOworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRl
c3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIHZvaWQgdGVy
bWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzZXMoKTsKICAgICB2b2lkIGRpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0
aW9uRGVsYXkoKTsKQEAgLTMzOCw2ICszNTMsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZW5zdXJlUGF5bWVudFBy
b2Nlc3MoKTsKKyAgICBQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2VzcygpIHsgcmV0
dXJuIG1fcGF5bWVudFByb2Nlc3MuZ2V0KCk7IH0KKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXlt
ZW50UHJvY2Vzc1Byb3h5Kik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPik7CiAg
ICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZy
b21QYWdlSUQodWludDY0X3QgcGFnZUlEKSBjb25zdDsKQEAgLTYyMyw2ICs2NDQsOSBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbiB7IHRy
dWUgfTsKICAgICBib29sIG1fZGlkTmV0d29ya1Byb2Nlc3NDcmFzaCB7IGZhbHNlIH07CiAgICAg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudFBy
b2Nlc3NQcm94eT4gbV9wYXltZW50UHJvY2VzczsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFj
az4+IG1fZGljdGlvbmFyeUNhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
U3RhdGlzdGljc1JlcXVlc3Q+PiBtX3N0YXRpc3RpY3NSZXF1ZXN0czsKQEAgLTcxOCw2ICs3NDIs
MjIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5j
aGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQo
c3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRv
UGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpCit7CisgICAgaWYgKG1fcGF5bWVudFByb2Nlc3Mg
JiYgbV9wYXltZW50UHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgbV9wYXltZW50
UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NS
ZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQoreworICAgIGVuc3VyZVBheW1lbnRQ
cm9jZXNzKCk7CisgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVz
c2FnZSksIDApOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9BbGxQcm9jZXNzZXMo
Y29uc3QgVCYgbWVzc2FnZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IGM5OTQ3ZGJkYjE1MmFjN2VlMmQxYzMyNDM2YTAyMTk1YmQzNmRkOWQu
LjVmOTZhMGUxZjI2MDUzZGQ1ZTI2YjAwODZiZjU4MDgxYjE1NTdjMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjM5LDYgKzYzOSwxMiBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldAogewogICAgIG1fcHJvY2Vzc1Bvb2wtPmdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigqdGhpcywgV1RGTW92ZShyZXBseSkpOwogfQorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYg
cmVwbHkpCit7CisgICAgbV9wcm9jZXNzUG9vbC0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
KCp0aGlzLCBpbml0aWFsU2Vzc2lvbklELCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogI2lmICFQTEFURk9STShDT0NPQSkKIGJvb2wgV2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDMzMjc0ZGY1ZDYxZTBiZDg2MzJj
ZTMwOTkzNDlhOTc2M2NmYjM5NDguLjkzOTQzZjk4ZDFhODYzNWM2YWQ3NThiNWE0NGI0MmMxNmY3
YjQwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0y
NzgsNiArMjc4LDkgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBp
bml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogICAgIGJvb2wgcGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25zdDsKICAg
ICBib29sIHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDMyZmRhOGIwYWRjZGNhYjk1MTI4ZjI2NDNiMzk5NmRlMTNiNmVhYzEuLmE1NWJlNWUyMjY1
ZTFlOWFkOThlYjNhMjA1OGYxYmU3ZjAyNDExNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3LDkgQEAg
bWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBHZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChJUEM6
OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c0lu
aXRpYWxpemF0aW9uKSBEZWxheWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIEdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKSAtPiAoSVBDOjpBdHRhY2htZW50IGNv
bm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3Bl
bnNpb24oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGY0MDc0NmM5NDFmODhlMTBjZDA2MmVhNzgz
ZGRmZGFkN2JmMTE5NjMuLjFhMmFhMWFlZDZkMjI5MzEyZGQ2YjNkYmQyNjQ4MzY3YzUyYjc3YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0zNCw2ICszNCwxMCBAQAogI2luY2x1ZGUgIk1vY2tBdXRo
ZW50aWNhdG9yTWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRl
ICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgpAQCAtMTM1LDYg
KzEzOSw5IEBAIFdlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCkKICAgICAgICAg
QVNTRVJUKG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KG1fc2Vzc2lvbklEKSA9PSB0aGlzKTsK
ICAgICAgICAgbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5yZW1vdmUobV9zZXNzaW9uSUQpOwogICAg
ICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQ
b29scygpKSB7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgICAgIHByb2Nl
c3NQb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRl
c3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKICAgICAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29s
LT5uZXR3b3JrUHJvY2VzcygpKQogICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5yZW1v
dmVTZXNzaW9uKG1fc2Vzc2lvbklEKTsKICAgICAgICAgfQpAQCAtMTYyNCw2ICsxNjMxLDE5IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQ
cm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJz
aXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVE
aXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Np
b25JRDsKKworICAgIHJldHVybiBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6
OnBlbmRpbmdDb29raWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVu
ZGluZ0Nvb2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDkxNjNkOTg5NDUxMTY0Y2ZiYmQzYTc4MDll
MjI0YTk4NjFmZjc5NzguLjhkMTI0MDI2ZmE4YjlkN2QwMTVkNmJhMWRhNWI5NTk4YTljMTU3MGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmgKQEAgLTYyLDYgKzYyLDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBj
bGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnM7CiAKQEAgLTE2OSw2ICsxNzIsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fzc29jaWF0
ZWRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGF5bWVudFByb2Nlc3NQYXJh
bWV0ZXJzKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAgICAgdm9pZCBhZGRQ
ZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjYyZTYwNDMxYmVmYjUyYThl
MDAwMTJhNzU0OTQ2ODBhNWZjOTk1ZS4uYzM5YmUxZTc1Y2FjNzllMGVjNjRhMTViZDM3NWZjNzUx
Y2U0MzY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC04NDQsNiArODQ0LDggQEAKIAkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8q
IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tO
U1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CisJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDky
QSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29t
LmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsKKwkJMzkxMzYwMjcyMTkzQzE3MDAwNTY0
OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzkxMzYwMjYyMTkzQzE2RjAwNTY0OTJBIC8qIGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5
NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAw
Mjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5
MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JD
aG9vc2VyLmggKi87IH07CkBAIC04ODUsNyArODg3LDYgQEAKIAkJNDYwRjQ4OTAxRjk5NkY3MTAw
Q0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEY0ODhFMUY5OTZGNkMw
MENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07
CiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0
N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRkQ0ODIxRUI5
NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJD
IC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OwotCQk0NjZCQzAzQzFGQTI2NkRB
MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlD
MSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovOyB9OwogCQk0NkEyQjYwOTFF
NTY3NkE2MDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkEyQjYwNzFF
NTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmgg
Ki87IH07CiAJCTQ2REYwNjNDMUYzOTA1RjgwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdo
dENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2REYwNjNBMUYzOTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIu
aCAqLzsgfTsKIAkJNEEzQ0MxOEIxOUIwNjQwRjAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QTQxMEYzQTE5QUY3QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLzsgfTsKQEAgLTkwMiw2ICs5MDMsMTEgQEAKIAkJ
NTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5NzkxRERENzg1
NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAv
KiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29u
RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxMThFOUExMUYyOTUzMjYw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5OUYxRjI5NTMxRjAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CisJCTUxMThF
OUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNTFG
Mjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OworCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTYx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTEx
OEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEx
OEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1l
c3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hp
bUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLzsgfTsK
IAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2
MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CkBAIC05NTMsNiArOTU5
LDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAw
QzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTEx
NjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIg
LyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNz
UHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRN
ZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3
MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJNTE4QUNB
RUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDQUU5MTJBRUU2QkIwMEIw
NEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNGMTExMkIwMTVGODAwQjA0QjgzIC8qIFdL
Q3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTY3LDcg
Kzk3NCw2IEBACiAJCTUxQUNCQjgyMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVBy
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFD
QkI4MTEyN0E4QkFEMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eS5oICovOyB9OwogCQk1
MUFDQkJBMDEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQ0JCOUUxMjdBOEYy
QzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCAqLzsgfTsKIAkJNTFCMTVBODUx
Mzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIxNUE4MzEzODQzQTM5MDAzMjFBRDgg
LyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk1MUJFQjYyQzFGM0E1QUQ3MDA1MDI5QjkgLyogV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUJFQjYyQTFGM0E1QUNEMDA1MDI5QjkgLyogV2ViU2VydmljZVdvcmtlclByb3Zp
ZGVyLmggKi87IH07CiAJCTUxQzBDOTc0MURERDc2MDAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0Rl
bGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUMwQzk3MjFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovOyB9Owog
CQk1MUNEMUM1RTFCMzQ5M0I0MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpblJlZi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNUExQjM0OTNB
OTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5SZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUNEMUM2NTFCMzRCOUQ0MDAxNDJDQTUgLyog
V0tTZWN1cml0eU9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFDRDFDNUYxQjM0QjlDOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW4uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC05ODAsNiAr
OTg2LDggQEAKIAkJNTFERDlGMjgxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI2MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxREQ5
RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MURE
OUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlcy5oICovOyB9OwogCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFD
OTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi87IH07CisJCTUxRTM1MUZGMTgw
RjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5
bWVudFByb2Nlc3MuY3BwICovOyB9OworCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJNTFFNkMxNjQxRjI5MzVERDAwRkQz
NDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNkMxNjExRjI5MzVDRDAw
RkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oICovOyB9
OwogCQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEy
RDU0MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2MEUwMTY1
NDMxN0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1MDBGMzI4
MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMTE4NSw3ICsxMTkz
LDYgQEAKIAkJODNCM0NCMTAyMEUyQUIwMTAwNDQxRTlCIC8qIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM2ODFEQ0EyMEUyOTA0QTAwQzI0OUNEIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5oICovOyB9OwogCQk4M0Q0NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29y
a0xvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNCRCAvKiBOZXR3b3JrTG9hZENsaWVudC5oICovOyB9
OwogCQk4M0VFNTc1QzFEQjdENjExMDBDNzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRUU1
NzVBMURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9
OwotCQk4M0YxQTA3QTFGOTZFNzc5MDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGMUEwNzgxRjk2RTc3
MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCAqLzsgfTsKIAkJODNGOTY0NEUxRkEwRjc2
RTAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3
NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCAqLzsgfTsKIAkJODQ0Nzc4NTMx
NzZGQ0MwODAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ0Nzc4NTEx
NzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5o
ICovOyB9OwogCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFNjdBMjEx
OTBGNDExODAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCAqLzsgfTsKQEAgLTExOTgsNyAr
MTIwNSw2IEBACiAJCTkzMjYxMTYxMjE0MDU0RjQwMDA4MDZFNyAvKiBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOTI4OEREMjE0MDRENkMwMEVCQkEzMyAvKiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCAq
LzsgfTsKIAkJOTMzREY4MkUxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzM0RGODJEMUIzQkMwOTAwMEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
LmggKi87IH07CiAJCTkzNEI3MjQ0MTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJdGVt
VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5MzU2RjJEQzIxNTJC
NkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkREMjE1MkI2RjYwMEU2RDVE
RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEUwMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREUyMTUyQjcxMDAwRTZENURGIC8qIFdlYlNX
T3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQkEwNERFMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmggKi87IH07
CiAJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNERGMjE1MUFE
RjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCAqLzsgfTsKQEAgLTE1NDksNiArMTU1
NSw3IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJj
aFBvcHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGlu
Z1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07CisJCUUxMTVD
NzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1
OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2M0QxQjAwNkQy
M0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBO
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdv
cmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIw
MDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJv
Y2Vzc1Byb3h5LmggKi87IH07CkBAIC0yOTUxLDYgKzI5NTgsMjUgQEAKIAkJMzdGQzE5NDYxODUw
RkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDgxODUx
MEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDkxODUxMEQ2
QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDIyMTkzNzYwODAwNTY0OTJBIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzOTEzNjAwMzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwNDIxOTM3NjA4MDA1NjQ5
MkEgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzOTEzNjAwNTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVu
dEZldGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwNjIxOTM3
NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDA3MjE5Mzc2MDgw
MDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwODIxOTM3NjA4MDA1
NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzkxMzYwMDkyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBBMjE5Mzc2
MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEIyMTkzNzYwODAwNTY0OTJB
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEMyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTM5MTM2MDBEMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXT3JpZ2luVGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEUyMTkzNzYwODAwNTY0OTJBIC8q
IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzOTEzNjAwRjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzOTEzNjAxMDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYw
MTEyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDEyMjE5Mzc2MDgwMDU2
NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBs
ZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldl
YktpdC5QYXltZW50cy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMjYy
MTkzQzE2RjAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNjE4ODdCRDk3MDAyNzk1RkQgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTk1LDEwICszMDIxLDYgQEAKIAkJ
NDEzMDc1QTYxREU4NUVFNzAwMzlFQzY5IC8qIExpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOyBw
YXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTMwNzVBNzFERTg1RUU3MDAzOUVDNjkgLyogTGliV2ViUlRD
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0g
MDsgbmFtZSA9IExpYldlYlJUQ1Byb3ZpZGVyLmNwcDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNw
ZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJCTQxMzA3NUE4MURF
ODVFRTcwMDM5RUM2OSAvKiBMaWJXZWJSVENQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBuYW1lID0gTGliV2ViUlRDUHJvdmlkZXIuaDsgcGF0aCA9
IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OwotCQk0MTMxRjNDRTFGOTZBNDk1MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTMxRjNDRjFGOTZBOTM2
MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEzMUYzRDAxRjk2QkNDODAwNTk5OTVBIC8qIFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MTMxRjNFMDFGOTg3MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEzNUZCQ0YxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNh
Y2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM1RkJE
MDFGNEZCN0YyMDA3NEM0N0IgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTNDQ0Q0RjIwREVCQzJGMDA2NUEyMUEgLyogY29t
Lmdvb2dsZS5nb29nbGV0YWxrYnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBjb20uZ29vZ2xlLmdvb2dsZXRhbGticm93c2VycGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzAxMSw2ICszMDMzLDcgQEAKIAkJNDE1N0U0QUYyMEUyRUM5ODAwQTZD
MEQ3IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxODhDMTU0MjExMzc3NzAwMDEyQUJDRCAvKiBwcm9jZXNzLW5ldHdvcmstc2Fu
ZGJveC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJw
cm9jZXNzLW5ldHdvcmstc2FuZGJveC1lbnRpdGxlbWVudHMuc2giOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTg4QzE1NjIxMTM3N0U4MDAxMkFCQ0QgLyogcHJvY2Vzcy13ZWJjb250
ZW50LXNhbmRib3gtZW50aXRsZW1lbnRzLnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7IHBhdGggPSAicHJvY2Vzcy13ZWJj
b250ZW50LXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE4OEMxNTcyMTEzNzg1MjAwMTJBQkNEIC8qIFBheW1lbnQtT1NYLXNhbmRib3guZW50
aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVudHM7IHBhdGggPSAiUGF5
bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTg4QzE1ODIxMTM3ODUyMDAxMkFCQ0QgLyogV2ViQ29udGVudC1PU1gtc2FuZGJveC5l
bnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgcGF0aCA9ICJX
ZWJDb250ZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxODk3RUNCMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUNDMUY0MTVENUMwMDE2
RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zMDIxLDcgKzMwNDQsNiBAQAogCQk0MTg5N0VENDFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUQ1MUY0
MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUQ2MUY0MTVEODYwMDE2RkE0MiAvKiBDYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgz
IC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUFDODY4MTFFMDQyRTUzMDAzMDMwNzQgLyogV2ViUlRD
UmVzb2x2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBsaW5lRW5kaW5nID0gMDsgbmFt
ZSA9IFdlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29yay93ZWJydGMvV2Vi
UlRDUmVzb2x2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9ICI8bm9uZT4iOyB9OwogCQk0MUIyOEIwODFGODNB
RDNFMDBGQjUyQUMgLyogUlRDUGFja2V0T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSVENQYWNrZXRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxQjI4QjA5MUY4M0FEM0UwMEZCNTJBQyAvKiBSVENQYWNrZXRPcHRpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1BhY2tldE9wdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA1Nyw5ICszMDc5LDYgQEAKIAkJNDYzRkQ0
N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAv
KiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2NTI1MEU1MUVDRjUyQ0QwMDIwMjVDQiAvKiBXZWJLaXQySW5pdGlhbGl6ZUNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViS2l0MkluaXRp
YWxpemVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDY2QkMwMzgxRkEy
NjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDY2QkMwMzkxRkEyNjZDOTAw
MkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91
bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyog
QmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYzOTFGMzkwNUU1MDAxOTgwQkIgLyog
TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zMDc3LDYgKzMwOTYsNyBAQAogCQk0RjYwMTQzMDE1NUM1QTMy
MDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1h
Y2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGli
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4
MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEgLyogQ29va2llU3RvcmFnZVV0aWxzQ0YubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29raWVTdG9yYWdlVXRpbHND
Ri5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzExQzczRDIyQjAwNzk5
M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcyMUM3M0QzN0IwMDc5OTNDQiAvKiBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwOTksMTIgKzMxMTksMTIgQEAK
IAkJNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEwQUUwQTEzM0MxNkNCMDA3MjcxN0Eg
LyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEw
QUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTMxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTQxRjI5NTk2MzAwM0VG
OUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4
RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTk5
RTFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTk5RjFGMjk1MzFGMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1l
bnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vz
c1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTExRjdEM0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdENDAxRUIx
QkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJ
dGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2VjSXRl
bVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxp
YnJhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMjIsNiArMzE0Miw3IEBA
CiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyog
UGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RTEyQTg4
Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEYxMkE4ODM4ODAwNjI5
NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGlj
YXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMTgzLDE1ICszMjA0LDE0IEBACiAJCTUxN0EzM0I0MTMwQjMwOEMw
MEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTUyRDYxRjQzQTlCNjAwRENEQzBBIC8qIFdlYlNXU2VydmVy
Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxN0E1MkQ3MUY0M0E5QjYwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NsaWVudENvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE3QTUzMDMxRjQ3OTNCMjAw
RENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk1MTdBNTMwQzFGNDc5RTk3MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXQ2xpZW50
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3
QTUzMEQxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MzBFMUY0N0E4NDMw
MERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3Q0YwRTEx
NjNBNDg2QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUyMTYzQTQ4
NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2
MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUg
LyogU2hpbS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBTaGltLnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1OTEyN0NCODlEMDBG
NzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViQ29udGV4dE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTMyMTEsNiArMzIzMSw3IEBACiAJCTUxQTU1NjAwMTI4QzZEOTIwMDlB
QkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFBNTg3N0UxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJREJSZXN1bHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3RjFEMUM0Q0I5MDA0QkE5QUYgLyogV2Vi
SURCUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQlJlc3Vs
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JG
NTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUGF5bWVudFNlcnZp
Y2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTcyOERDMUIxQkFE
MkQwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFE
IC8qIExvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2luZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGNDEyNUJGOEQ0MDA4QUVCMUQg
LyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dn
aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMjgsOCArMzI0OSw2IEBA
CiAJCTUxQUNDOTM1MTYyODA2NDgwMDM0MjU1MCAvKiBOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCMTVBODIxMzg0M0EzOTAwMzIxQUQ4
IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEVudmlyb25tZW50VXRpbGl0aWVzLmNwcDsgcGF0aCA9IHVuaXgvRW52aXJvbm1l
bnRVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIxNUE4MzEz
ODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRW52aXJvbm1lbnRVdGlsaXRpZXMuaDsgcGF0aCA9IHVuaXgvRW52
aXJvbm1lbnRVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFCRUI2
MjkxRjNBNUFDRDAwNTAyOUI5IC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk1MUJFQjYyQTFGM0E1QUNEMDA1MDI5QjkgLyogV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUMwQzk3MjFEREQ3NEYwMDAzMkNBRDMg
LyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJY29uTG9hZGluZ0RlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
QzBDOTczMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8q
IF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMyNzAsNiArMzI4OSwxMSBAQAogCQk1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJV
dGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzUxQzkxODBGMkND
QzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUx
RkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFF
MzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZD
MTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFF
MzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJvdmlkZXJDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYxRjI5MzU1MTAwRkQz
NDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFn
ZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTYxMUYyOTM1Q0Qw
MEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjUzLDggKzM2NzcsNiBAQAogCQk4M0Q0NTRE
NjFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0xvYWRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODNFRTU3NTkxREI3RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZh
bGlkYXRpb25NZXNzYWdlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODNFRTU3NUExREI3RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzRjFBMDc3MUY5NkU3NzAwMDQ1
Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlNXT3JpZ2luVGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk4M0YxQTA3ODFGOTZFNzcxMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRjk2NDRCMUZBMEY3NjIwMEM0Nzc1MCAvKiBTaGFyZWRT
dHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdI
YXNoVGFibGVSZWFkT25seS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFy
ZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NDQ3Nzg1MTE3NkZDQUMxMDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
TWVkaWFUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzgzMCw3ICszODUyLDYgQEAKIAkJQTVEMzUwNEQxRDc4RjBEMjAwNTEyNEE5IC8qIFJlbW90
ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1RUZEMzhCMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5
VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlVmlzaWJpbGl0
eVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MkQ1RDdGMTIzNkNCQTgw
MEE4OEIxNSAvKiBBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2Vi
S2l0LlN0b3JhZ2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhDQ0REODE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFw
cGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2lu
Zy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4Q0NERDkxOTNBQzlFMzAwNUVD
QzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkQ5ODYz
MTk0NjUzRDQwMEQzNTY5OCAvKiBEYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQueG1sOyBwYXRoID0gIkRhdGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNDksNyArNDM3MCw2IEBACiAJCURGNThDNjMxMTM3MUFD
NTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRpdmVXZWJX
aGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA1RkU1MzE4
RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlF
MTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktp
dC5pY25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
aW1hZ2UuaWNuczsgbmFtZSA9IFdlYktpdC5pY25zOyBwYXRoID0gUmVzb3VyY2VzL1dlYktpdC5p
Y25zOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERF
ODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERF
ODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzOTQsNiArNDQxNCw3IEBACiAJCUUxRTU1MkMz
MTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAw
Q0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVu
dFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQ
YXltZW50UHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1
OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRy
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVF
bnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQw
MEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00NTY4LDYgKzQ1ODksNyBAQAogCQkJCTFBQURERjRCMTBEODJBRjAwMEQzRDYz
RCAvKiBTaGFyZWQgKi8sCiAJCQkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2Vz
cyAqLywKIAkJCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKKwkJ
CQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8sCiAJCQkJNTEw
Q0M3REExNjEzOEUwMTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzICovLAogCQkJCTFBMEVDNkIw
MTI0QkJEMzYwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzICovLAogCQkJCUMwQ0U3MjlEMTI0N0U3
MUQwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCkBAIC00NzY5LDYgKzQ3OTEsOCBAQAog
CQkJCTdDMEJCOUE5MThEQ0RGNUEwMDA2QzA4NiAvKiBOZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMg
Ki8sCiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3gu
ZW50aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3Jr
U2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQk0MTg4QzE1NzIxMTM3ODUyMDAxMkFCQ0QgLyogUGF5
bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCisJCQkJNTFBNjBCMjkxODBDQ0Q5MDAw
RjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovLAogCQkJCUExRUREMkRCMTg4NEI5
NjQwMEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNG
MjE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZyAqLywKIAkJCQlC
QzgyODNGNDE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZyAqLywK
QEAgLTQ5MjYsNiArNDk1MCw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAzNDAwREQ3QzY4IC8qIEdh
bWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlC
QzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTUxMThFOTlEMUYyOTUzMUYw
MDNFRjlGNSAvKiBQYXltZW50ICovLAogCQkJCTFBQUUwNThDMTI3OURDRDQwMDg1MjQxOCAvKiBQ
bHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAvKiBSZW1vdGVMYXllclRy
ZWUgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhICovLApA
QCAtNjIwMCw2ICs2MjI1LDMwIEBACiAJCQlwYXRoID0gUmVzb3VyY2VzL21hYzsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM5MTM2MDAxMjE5Mzc2MDgwMDU2NDkyQSAvKiBT
dG9yYWdlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkz
OTEzNjAwRTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAq
LywKKwkJCQkzOTEzNjAwNTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLmggKi8sCisJCQkJMzkxMzYwMTEyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaC5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTEzNjAwNzIxOTM3NjA4MDA1NjQ5MkEg
LyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi8sCisJCQkJMzkxMzYwMEEy
MTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLywK
KwkJCQkzOTEzNjAxMjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
LmNwcCAqLywKKwkJCQkzOTEzNjAwNDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyLmggKi8sCisJCQkJMzkxMzYwMDIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAgKi8sCisJCQkJMzkxMzYwMDMyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oICovLAorCQkJCTM5MTM2MDA5MjE5Mzc2MDgwMDU2NDkyQSAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYwMEIyMTkz
NzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLywKKwkJ
CQkzOTEzNjAxMDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaCAqLywKKwkJCQkzOTEzNjAwNjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYwMDgyMTkzNzYwODAwNTY0
OTJBIC8qIFdlYlNXT3JpZ2luVGFibGUuY3BwICovLAorCQkJCTM5MTM2MDBEMjE5Mzc2MDgwMDU2
NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmggKi8sCisJCQkJMzkxMzYwMEYyMTkzNzYwODAwNTY0
OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOTEzNjAw
QzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywK
KwkJCSk7CisJCQlwYXRoID0gU3RvcmFnZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTQxMzA3NTk3MURFODRFRDcwMDM5RUM2OSAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjM5NCwyNiArNjQ0MywxMyBAQAogCQkJ
cGF0aCA9IE5ldHdvcms7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk1MTE4
RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLyA9IHsKKwkJNTExOEU5OUQxRjI5NTMx
RjAwM0VGOUY1IC8qIFBheW1lbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAotCQkJCTQxMzFGM0QwMUY5NkJDQzgwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2guY3BwICovLAotCQkJCTQxMzFGM0NFMUY5NkE0OTUwMDU5OTk1QSAvKiBTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2guaCAqLywKLQkJCQk0MTMxRjNDRjFGOTZBOTM2MDA1OTk5NUEgLyog
U2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluICovLAotCQkJCTQxMzFGM0UwMUY5
ODcxMkMwMDU5OTk1QSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCAqLywK
LQkJCQk0MTlBQ0Y5QjFGOTgxRDI2MDA5RjFBODMgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudC5oICovLAotCQkJCTUxQkVCNjI5MUYzQTVBQ0QwMDUwMjlCOSAvKiBXZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXIuY3BwICovLAotCQkJCTUxQkVCNjJBMUYzQTVBQ0QwMDUwMjlCOSAvKiBX
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCAqLywKLQkJCQk1MTdBNTMwMzFGNDc5M0IyMDBEQ0RD
MEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCAqLywKLQkJCQk1MTdBNTMwMjFGNDc5M0Iy
MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi8sCi0JCQkJNTE3QTUzMEMxRjQ3
OUU5NzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKLQkJ
CQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwICovLAotCQkJCTQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oICovLAotCQkJCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKLQkJCQk4M0YxQTA3
NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8sCi0JCQkJODNGMUEw
NzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCAqLywKKwkJCQk1MTE4RTk5
RTFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
ICovLAorCQkJCTUxMThFOTlGMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oICovLAogCQkJKTsKLQkJCXBhdGggPSBTdG9yYWdlOworCQkJcGF0aCA9
IFBheW1lbnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwogCQk1MTFGOEVEQTE4
MDg4MTY2MDA0N0RBOTYgLyogSW5kZXhlZERCICovID0gewpAQCAtNjUxOSw2ICs2NTU1LDE2IEBA
CiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3
REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyog
UGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQ
YXltZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTE4RThFRjExNkIy
MDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY1NzUsNiArNjYyMSwyMCBAQAogCQkJcGF0aCA9IGlvczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBBMTgwQ0M0MTEwMDIx
MkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLywKKwkJCQk1
MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAorCQkJCTUx
RTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAorCQkJCTUxRTM1
MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJ
CQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlw
YXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTc4LDcgKzcwMzgsOCBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FDOUUzMDA1RUNDMjUg
LyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAotCQkJCUE3OENDREQ3MTkzQUM5
RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCisJCQkJMzkxMzYw
MjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8sCisJ
CQkJMzkxMzYwMjYyMTkzQzE2RjAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5z
YiAqLywKIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LnNiICovLAogCQkJKTsKIAkJCXBhdGggPSBpb3M7CkBAIC03MDI3LDcgKzcwODgs
NyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJCTMx
MDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKIAkJCQkx
QTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKLQkJCQk1MTE4RTk5ODFGMjk1
MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywKKwkJCQkzOTEzNjAwMTIxOTM3NjA4MDA1NjQ5MkEg
LyogU3RvcmFnZSAqLywKIAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRl
bnQgKi8sCiAJCQkJNTc2MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9u
ICovLAogCQkJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9ydCAqLywK
QEAgLTcxODIsNiArNzI0Myw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1h
YyAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkz
MUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKKwkJCQk1MTdERDVC
QjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudCAqLywKIAkJCQkxQUVGQ0MwNTExRDAxRjM0MDA4
MjE5RDMgLyogUGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5QjQyMDAwNkUzRkUgLyogUmVt
b3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2MzkwQyAvKiBVc2VyQ29u
dGVudCAqLywKQEAgLTgyNDAsNyArODMwMiw2IEBACiAJCQkJNTFGQUVDMzcxQjA2NTczMTAwMDlD
NEU3IC8qIENoaWxkUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJRTE3QUUyQzIxNkI5QzYzQTAw
MUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgKi8sCiAJCQkJN0Ex
NTA2NzIxREQ1NjI5ODAwMUY0QjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5z
YiAqLywKLQkJCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5T
dG9yYWdlLnNiICovLAogCQkJCUUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYiAqLywKIAkJCQkxQUI3RDYxNzEyODhCOUQ5MDBDRkQwOEMgLyogRG93bmxv
YWRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCN0Q2MTgxMjg4QjlEOTAwQ0ZE
MDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdlcy5oICovLApAQCAtODI3Myw2ICs4MzM0LDEwIEBA
CiAJCQkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNz
YWdlcy5oICovLAogCQkJCTFBMkQ4NDM3MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdGNjVENTAw
MUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4
RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VzLmggKi8sCisJCQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNDFDQkVC
NjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJQ0RBMjlBMjUxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI2MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODMwNywxMiAr
ODM3Miw2IEBACiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFw
TWVzc2FnZXMuaCAqLywKIAkJCQkxQUIzMUE5NDE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQjMxQTk1MTZCQzY4ODEwMEY2REJD
OSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8sCi0JCQkJNTExOEU5QTUxRjI5NTk2MzAw
M0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQk1MTE4
RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oICovLAotCQkJ
CTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKLQkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVBy
b2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCi0JCQkJNTExOEU5QTMxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJ
CQk1MTE4RTlBNDFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oICovLAogCQkJCUNENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0Q0OTFCMEMxRTcz
MkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJ
CQlDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04NTkxLDYgKzg2NTAsMTQgQEAKIAkJCW5hbWUg
PSBQREY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZFRjM5QjE5MEY3
OTFDMDA3MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1Mu
bW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MDU2LDYgKzkxMjMsMTAgQEAKIAkJ
CQkxQUM3NTM3QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4QjY2QjAxQkM0M0M4NjAwODJERjc3IC8qIFBhZ2VMb2FkU3RhdGVPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3Rl
Ym9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QTExRjI5NTMyNjAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9j
ZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxRTEy
M0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDMjk4REEwMUMzREYwMjEwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCBp
biBIZWFkZXJzICovLApAQCAtOTM4NSw3ICs5NDU2LDYgQEAKIAkJCQk0MURDNDU5RjFFM0RCREE1
MDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzM2MUQ3MzE5
MjdGQTM2MDAzNkE1OUQgLyogV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBp
biBIZWFkZXJzICovLAotCQkJCTUxQkVCNjJDMUYzQTVBRDcwMDUwMjlCOSAvKiBXZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDOEREMzgwMUZFNDUyMTYwMEYy
QTU1NiAvKiBXZWJzaXRlQXV0b3BsYXlQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDgz
MkQ3MUE5Q0RGOTYwMDhCNERGRSAvKiBXZWJzaXRlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE0ODMyRDExQTlCREMyRjAwOEI0REZFIC8qIFdlYnNpdGVEYXRhUmVjb3JkLmggaW4gSGVhZGVy
cyAqLywKQEAgLTkzOTQsMTMgKzk0NjQsMTAgQEAKIAkJCQkwRURFODUwMzIwMDRFNzVEMDAwMzA1
NjAgLyogV2Vic2l0ZVBvcFVwUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYwMzRBMDFB
Q0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTMxMDFGNDdB
ODYyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQ2NkJDMDNDMUZBMjY2REEwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwRjQ4OTAxRjk5NkY3MTAwQ0Y0Qjg3
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUMxMUE5RUNDMjE0MDM1RjgwMENGQjIwQSAvKiBXZWJTd2l0Y2hpbmdHUFVDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTZGMkRFMjE1MkI3MTAwMEU2RDVERiAvKiBXZWJTV09y
aWdpblN0b3JlLmggaW4gSGVhZGVycyAqLywKLQkJCQk4M0YxQTA3QTFGOTZFNzc5MDA0NUI5NEUg
LyogV2ViU1dPcmlnaW5UYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NkYyREQyMTUyQjZG
NjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE3QTUyRDkxRjQzQTlEQTAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTUyNjJCQzFGQjk1MTVEMDA3MEU1NzkgLyogV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTAw
NDMsNiArMTAxMTAsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZp
bGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0
Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKKwkJCQkzOTEzNjAyNTIxOTNDMTQz
MDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJMzkxMzYwMjcyMTkzQzE3MDAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZS5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRERDM3OTIwQkY0
M0Y1MDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBSZXNvdXJj
ZXMgKi8sCiAJCQkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21v
ZGVsIGluIFJlc291cmNlcyAqLywKQEAgLTEwMjU1LDcgKzEwMzI0LDYgQEAKIAkJCWZpbGVzID0g
KAogCQkJKTsKIAkJCWlucHV0UGF0aHMgPSAoCi0JCQkJIiQoU1JDUk9PVCkvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiIiwKIAkJCQkiJChT
UkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcuc2IiLAogCQkJCSIkKFNSQ1JPT1QpL1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMv
aW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiIsCiAJCQkpOwpAQCAtMTA2NDUsNiAr
MTA3MTMsMTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lT2Jq
ZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5RjAwMDEyOEFGRCAv
KiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3OTQyMTJC
NkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFF
MzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBp
biBTb3VyY2VzICovLAorCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBQTFGMjk1
OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMjgxQ0JFQjY3
QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCAyYmZhZWU0NzZlMWY0YmNjY2RiMjY2MGZlNWQ4ZTY2YmQ2NzRhM2Q3
Li41ZGZjNTU1MDBjNTY5MzgxNDVjYjYzYmY3NmQ1ZDhiNzY5MzkwYTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lz
dHJhdGlvblByb21pc2UoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYpIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVsZVN0b3JhZ2VKb2IoY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHNjaGVkdWxlUGF5bWVudEpvYihjb25z
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwogCiAgICAgdm9pZCBydW5PckRlbGF5
VGFza0ZvckltcG9ydChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWU3ODg5NjQ4NzliOWI5NzZk
YjQ5YWUwM2VhMmQ1YmEwZDQ2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTAs
MCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisg
Ki8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworCisjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25J
ZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xp
ZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIG1fY29u
bmVjdGlvbi0+b3BlbigpOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6fldl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFs
aWRhdGUoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmJiZTIwYWJmNmJkMzQ2YzZiMWRjMmU3MTVlMzEwZWQzZDVmMzI1Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyLmg+Cisj
aW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHByaXZhdGUgSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVj
dGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4g
bV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpN
ZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlv
bigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQorICAgIHVpbnQ2NF90
IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2OWMyMzM1Zjc5MWQyODhmOTVlYzAwYWI4
ZjMxNzdlYTI1YjUwNDBhLi41N2RhYjZlNWMyMzFiOWM4MzAxMzA4MGQwMWM4ODg0M2MzNDk0ZTky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2ICs0Myw5
IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5o
IgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVXNlckRhdGEu
aCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
Q2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKQEAgLTY5LDYgKzcyLDkgQEAKICNpbmNsdWRlICJXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0U3RyZWFtLmgiCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgpAQCAtMTIxNyw2ICsxMjIzLDUwIEBAIFdlYkxvYWRl
clN0cmF0ZWd5JiBXZWJQcm9jZXNzOjp3ZWJMb2FkZXJTdHJhdGVneSgpCiB7CiAgICAgcmV0dXJu
IG1fd2ViTG9hZGVyU3RyYXRlZ3k7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3Zv
aWQgV2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKG1fd2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOworCisgICAgbV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7Cit9CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6
OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKQoreworICAgIGlmICghbV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbikgeworICAgICAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGlmaWVyOworCisgICAgICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKGluaXRpYWxTZXNzaW9uSUQpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRlbnRp
ZmllciksIDApKSB7CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgICAg
ICAgICAvLyBHVEsrIGFuZCBXUEUgcG9ydHMgZG9uJ3QgZXhpdCBvbiBzZW5kIHN5bmMgbWVzc2Fn
ZSBmYWlsdXJlLgorICAgICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRoZSBw
YXltZW50IHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhlIFVJIHByb2Nlc3Mgd2hpbGUg
dGhlCisgICAgICAgICAgICAvLyBjb25uZWN0aW9uIGlzIGJlaW5nIGRvbmUsIHNvIHdlIGFsd2F5
cyB3YW50IHRvIGV4aXQgaW5zdGVhZCBvZiBjcmFzaGluZy4KKyAgICAgICAgICAgIC8vIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMzQ4LgorICAgICAgICAg
ICAgZXhpdCgwKTsKKyNlbHNlCisgICAgICAgICAgICBDUkFTSCgpOworI2VuZGlmCisgICAgICAg
IH0KKworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICBJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBlbmNvZGVkQ29ubmVjdGlvbklk
ZW50aWZpZXIucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7CisjZWxpZiBPUyhEQVJXSU4pCisgICAg
ICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNv
ZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAg
ICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNv
ZGVkQ29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCkpOworI2Vsc2UKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246Omlk
ZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgICAgIENSQVNI
KCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklkZW50aWZpZXIpOworCisg
ICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKK30KKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEVu
aGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCAzZDIxY2M4ODNhNTI2NDFhNDBhYzEzOTljMWEyZjk5Y2Q0N2JkNTdk
Li40NTRhOTFiNmQxZTkwNzczYWQxNzMyMDA4NDA4OTkwMDE2M2YwNzkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4LDYgKzk4LDkgQEAgY2xhc3MgV2ViTG9hZGVy
U3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CiBjbGFz
cyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xh
c3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YTsKQEAgLTE3NSw2ICsx
NzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2ViUlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29y
aygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKik7
CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIGVuc3VyZVdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lkIHNldENhY2hlTW9kZWwodWlu
dDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uSW5O
ZXR3b3JrUHJvY2VzcygpOwpAQCAtNDMwLDYgKzQzOCwxMCBAQCBwcml2YXRlOgogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk+IG1fYXV0b21hdGlvblNlc3Np
b25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUmVmUHRyPFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
PiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwppbmRleCA2ODllZDAwYmRiMGY1ZTU5YWJlZmE3NzI2NWMwZDRmMmEyNDk3
MzNiLi44MmJhZTc0YTRmYTEzYWM3MmJkZTYzYTY1OTEwMjRjNTkzNGJhZGQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjcyLDYgKzI3Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5B
QkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1f
TkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElP
TlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNU
ID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMzOTM1NDZiODA1ZjVhMWUyZDIz
YTlkZGQxNTMyMzQxM2YzMzNmYzguLmEwNzZhNDMwMWI3MGE0NTc3Y2Y3ZDkxNjRhMTdhOTJmNzBh
MGQyNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxl
LmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cGF5bWVudFByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBh
eW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6dGVy
bWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE4LTEwLTExICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJT1MgMTIgLSBTZXJ2aWNlIHdvcmtlciBjYWNo
ZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
aW5kZXggNjg5ZWQwMGJkYjBmNWU1OWFiZWZhNzcyNjVjMGQ0ZjJhMjQ5NzMzYi4uODJiYWU3NGE0
ZmExM2FjNzJiZGU2M2E2NTkxMDI0YzU5MzRiYWRkMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBA
IC0yNzIsNiArMjcyLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2gg
PSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQo
RU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJ
Q0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRf
UFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFV
RVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChX
S19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXggM2Yx
YTYyODg2ODIxMDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4uYzM0NmFiZmQ2MjBmOTM1NTVm
ZDgwMDVjOGExYjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpA
QCAtMTQ0LDYgKzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9j
ZXNzZXNOb3RMYXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlZCBwcm9jZXNzIHBvb2wg
ZXhpc3RzIHNvIHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2UncmUgYWJvdXQgdG8gZG8gd29y
ayB3aXRoIGl0LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFByb2Nlc3NQb29sID0gW1dLUHJv
Y2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwg
W3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBF
Q1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0p
OwogCiAgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0
YVN0b3JlXTsKQEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3Ms
IENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1h
bmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGFyZ2V0VVJMLnBhdGhdKTsK
IAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vz
c1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmlu
ZGV4IDRjYjhmYTk3YTY2YzhhN2ZkODQ1OWVlZDBhNDU4NDJiMmI4MWZhODMuLmJkYWEyYzlmZWE5
NDA3NTk0MTQ2NDQxOWFhY2EzMzVkNTM5MWM4OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBA
IC0xMDQ2LDYgKzEwNDYsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTZXJ2aWNlV29ya2VyUHJv
Y2Vzc0NyZWF0aW9uKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCisgICAgLy8gTWFrZSBzdXJlIHBheW1lbnQgcHJvY2VzcyBpcyBub3Qg
bGF1bmNoZWQuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5w
cm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAgIC8vIE1ha2Ugc3Vy
ZSB0aGF0IGxvYWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRpZCBub3Qgc3RhcnQgdGhlIHNlcnZpY2Ug
d29ya2VyIHByb2Nlc3MuCiAgICAgRVhQRUNUX0VRKDF1LCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3Vy
YXRpb24ucHJvY2Vzc1Bvb2wuX3dlYlByb2Nlc3NDb3VudCk7CiAKQEAgLTExMzAsNiArMTEzMyw5
IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25CaXQp
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKKyAgICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gcGF5bWVudCBwcm9jZXNzIGNyZWF0ZWQuCisg
ICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5f
cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAgIC8vIExldCdzIHVzZSB0aGUgd2ViIHNp
dGUgZGF0YSBzdG9yZSB0aGF0IGhhcyBzZXJ2aWNlIHdvcmtlciBhbmQgbG9hZCBhIHBhZ2UuCiAg
ICAgbmV3Q29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW2NvbmZpZ3VyYXRp
b24gd2Vic2l0ZURhdGFTdG9yZV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDFl
ZDRlZDRmNmU5NDdiOWJiZDQ1MzgwNTQ0NmZlNTYxY2RjZTVmNDEuLjcwMDlhMDNhN2RkMjRhNGJl
ZWZhNDBlZmU2ZjE3MWM3MjIzNzRiNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAt
MzMwLDYgKzMzMCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIHZvaWQgdGVybWlu
YXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmlu
ZGV4IDQ1YWQ2NmIzNmJkYjk2MTE5OGI1YjBkMDc5MjcxMmNjNWNmNTRiYTguLjNhMmY4OGFkOWVi
MWNlNmNmOWNjMTkwNzE1NmY0OGU0N2YxYTY5NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTI0OCw2ICsxMjQ4
LDEyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKQog
ICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51
bGxwdHIsIG51bGxwdHIpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzIikpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5n
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUu
Z2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBzdGF0aWMgdW5zaWduZWQgbmV4dFVJU2Ny
aXB0Q2FsbGJhY2tJRCgpCiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBGaXJz
dFVJU2NyaXB0Q2FsbGJhY2tJRDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYmEwZDZhNjU3ZDU0NWQ5ZTYzZTA0YzA2N2Ji
MzQwOWNkM2JhZDVhOS4uOTdlMTk1N2Q5OTdiNTU2NWExZTlmNWVlODhhZjllMGVkMjcwMjgxMiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKQEAgLTQ0Myw2ICs0NDMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5l
dHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcygp
OworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3Zl
QWxsU2Vzc2lvbkNyZWRlbnRpYWxzKEpTVmFsdWVSZWYpOwogICAgIHZvaWQgY2FsbERpZFJlbW92
ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQ0MTAwZjhmMzc5ZDM5Y2FjZWZiOGEyOTRjZTE5ZTQ3
NDkxMGRkNGIuLjZjMDkxMGFmY2I1M2FkYzIzNGE2NzI1NmUxZmZlMTEyYjhjMzNhYWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDYyLDYgKzEwNjIs
MTUgQEAgY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAj
ZW5kaWYKIH0KIAorY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFt
ZSgpCit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5Q
YXltZW50IjsKKyNlbHNlCisgICAgcmV0dXJuICJQYXltZW50IHByb2Nlc3Mgbm90IGF2YWlsYWJs
ZSBvbiBhbnl0aGluZyBidXQgaU9TIjsKKyNlbmRpZgorfQorCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykKIHsKICAgICBXS0NvbnRl
eHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcocGxhdGZvcm1D
b250ZXh0KCksIGFsbG93cyk7CkBAIC0xNDg1LDYgKzE0OTQsMTEgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qg
dm9pZCAqY2wKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwogfQogCit2b2lkIFRl
c3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9s
bGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5wYXltZW50UHJvY2Vzc0RpZENy
YXNoKCk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVLZXlEb3duTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZShXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCBib29sIHN5bmNocm9ub3VzKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlL
ZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJLZXkiKSk7CkBAIC0x
ODE4LDYgKzE4MzIsMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRD
cmFzaCgpCiAgICAgZXhpdCgxKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFBy
b2Nlc3NEaWRDcmFzaCgpCit7CisgICAgcGlkX3QgcGlkID0gV0tDb250ZXh0R2V0UGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyKG1fY29udGV4dC5nZXQoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICIj
Q1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgcGF5bWVudFByb2Nlc3NOYW1lKCksIHN0YXRpY19j
YXN0PGxvbmc+KHBpZCkpOworICAgIGV4aXQoMSk7Cit9CisKIC8vIFdLUGFnZU5hdmlnYXRpb25D
bGllbnQKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKQEAgLTI2MTcsNiArMjYzOCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVy
Ojp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tDb250ZXh0VGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOwogfQogCit2b2lkIFRlc3RD
b250cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tDb250ZXh0VGVy
bWluYXRlUGF5bWVudFByb2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOworfQorCiAjaWYgIVBMQVRG
T1JNKENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25z
dCBUZXN0SW52b2NhdGlvbiYpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggNWMzZmU1M2QxNjc0NjgwZDk2NmJiMjI5NGE0ZWM0ZTQ0ODNhMWVkZi4uMTVmYjVi
NDQ3NTI5YTQ0ODkwNWRjYWQxYWZmZmY4MTI5Y2Y1ZjZlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTYwLDYgKzE2MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgY2hhciogd2ViUHJvY2Vzc05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciog
bmV0d29ya1Byb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRhdGFiYXNlUHJv
Y2Vzc05hbWUoKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogcGF5bWVudFByb2Nlc3NOYW1lKCk7
CiAKICAgICBXb3JrUXVldWVNYW5hZ2VyJiB3b3JrUXVldWVNYW5hZ2VyKCkgeyByZXR1cm4gbV93
b3JrUXVldWVNYW5hZ2VyOyB9CiAKQEAgLTIzMSw2ICsyMzIsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAog
ICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7CiAKQEAgLTMyOCw2ICszMzAs
OCBAQCBwcml2YXRlOgogICAgIC8vIFdLQ29udGV4dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5l
dHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9p
ZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CisgICAgc3RhdGljIHZvaWQgcGF5bWVudFByb2Nl
c3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIHBheW1lbnRQ
cm9jZXNzRGlkQ3Jhc2goKTsKIAogICAgIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKICAgICBz
dGF0aWMgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVm
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYzRkZGM5MjhhNGY1NjBiMzQwOWFjNWJjYzJlNGM3
NGJlOWU2YzZkZC4uM2U3MmRiZWM1OGM3YTYzMDY3ZmIzMDRjNTY3MTExM2JjZTI2MmUxYSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0NDAsNiArMTQ0
MCwxMiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFt
ZSwgIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKCFtZXNzYWdl
Qm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZU5ldHdv
cmtQcm9jZXNzIikpIHsKICAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CiAgICAgICAgIFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDhlY2Y3MzA2YTg1ODE5ODZiZGNlZGUzNWU0NTNlYjFiOTUxMDc1OGMuLmI1OTkzNDMzYWYy
NmUzNGRmOWZiMjNkZDBiMzMzNDQ1MjRiNGQyZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
OC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXlt
ZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVy
c2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWw6CisKIDIwMTgtMTAtMTIgIERhd2VpIEZlbnRvbiAg
PHJlYWxkYXdlaUBhcHBsZS5jb20+CiAKICAgICAgICAgW01vamF2ZSBXazJdIExheW91dCBUZXN0
IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhbGlkYXRpb24tYXR0YWNo
bWVudC5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwKaW5k
ZXggMDhhOWE1OTYyMzIxMDRiODY1ZTNhYjJkZjg1YTliOTQ1N2VjODRlOS4uNmM5ZGNmMzFmOTk4
YzZiMjhmYmNhZDhiMjU3ZjQzODljNWQ1YjZjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNj
cmlwdHMuaHRtbApAQCAtMzYsOCArMzYsMTAgQEAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgewog
ICAgIGxldCByYW5kb21JZCA9IGF3YWl0IGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3JrZXIpOwog
CiAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaGFzaC5sZW5ndGgpIHsKLSAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAg
ICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIudGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKKyAgICAgICAgfQogICAgICAg
ICBhd2FpdCB3YWl0Rm9yKDEwMCk7CiAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiArPSAiP3Rlc3Qj
IiArIHJhbmRvbUlkOwogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354226</attachid>
            <date>2018-11-08 02:15:14 -0800</date>
            <delta_ts>2018-11-08 02:45:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181108021513.patch</filename>
            <type>text/plain</type>
            <size>148447</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmZiZmI1NzRmNTQyZTA0NDU3YjRmNjc3MTA1OWIyODZjNjU0MTQwLi43YjcyYWFjMGZlODI3YzIw
YjM0ZDczYjY4MDU4YTI4MTY1N2Y1NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0wNyAgQ2FpbyBMaW1hICA8dGlj
YWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gQWRkIHN1cHBvcnQgdG8gQmln
SW50IGludG8gVmFsdWVBZGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDMyMGVlMzQ4NTQ3MzY0ZjIzMTYyZGQw
ZDE1NWYyMzkyYzEzOTMyLi43MzUxODcyMGNlMzExOWUwYjc1Y2ZlM2U2YjgyZjEyNzAxYmM0MmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzOgorCiAyMDE4LTExLTA3ICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVk
QGFwcGxlLmNvbT4KIAogICAgICAgICBDU1MgUGFpbnRpbmcgQVBJIHNob3VsZCBwYXNzIHNpemUs
IGFyZ3VtZW50cyBhbmQgaW5wdXQgcHJvcGVydGllcyB0byBwYWludCBjYWxsYmFjawpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2IwZmVmNmU1Njk1NWU1ZTM5NWVmOGU2NjhiMWQ0MmUwYjQ4NzQ2Yy4u
MDJjOWZlNGE3YjcyNzlhNjliNzdmNDg5YTk0ZDc5ZjlkMTA0ODRkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMDYgIEp1c3Rp
biBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBFeHBlcmlt
ZW50YWwgcHJvdG90eXBlIGZvciBXZWJHUFVSZW5kZXJQaXBlbGluZSBhbmQgV2ViR1BVU3dhcENo
YWluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGIwYmQ0ZjZlZGZhYTU1YmYxYTM5MzYwNTIzMzhiYWQ1N2JlNDkwYzMu
LmI3OWMyNzM2MmVlMjJmZjQ5YzQzMGJmMGMwNTA3MDYyNDFhYmE3NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIzIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29t
PgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWc6CisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHM6IEFkZGVkLgor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnOiBBZGRlZC4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzOjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6UGF5bWVu
dFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6flBheW1lbnRQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjplbnN1cmVQYXRoRXhpc3RzKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnBvc3RQYXltZW50VGFzayk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4dFBheW1lbnRUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAg
ICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaDogQWRkZWQuCisgICAgICAgICog
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlv
bik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXlt
ZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFs
aXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9DaGls
ZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRU
ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRleHRHZXRQYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgor
ICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgorICAg
ICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6Z2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0U3VwcGxlbWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0U3VwcGxlbWVu
dDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQ
cm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRBbnlQ
YWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rpbmcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxOC0xMS0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQ3Jhc2ggd2hlbiBydW5uaW5nIHdp
dGggc2FuZGJveCBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMzVlMjYz
MDJhNzc3YTI3YzkwODcxNDk4NTJmMmFhOTZjNDcyZTAwMi4uOTRmNWU2N2ZhNjc5M2RlYjM0NzZm
YzdjZWJjZThhNjM5YzM0OWYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgor
CisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTA2ICBKdXN0aW4gRmFuICA8anVz
dGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3Rv
dHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJj
ZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3
MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4Yzgy
NDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9O
U18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVO
QUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZL
SVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2Iy
Y2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCkBAIC0yODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFM
T05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7
CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAor
RU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BE
RktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1
ZjY2ODI5ZmJkNjExLi4xMmI1MDkzYzhiMDdiM2Q2ODllNjg0YjVmODk0MWY4OTc4NTUwYzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYg
KzQzLDkgQEAKIC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIg
KCVAKSIgPSAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0
aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUu
ICovCisiJUAgUGF5bWVudCIgPSAiJUAgUGF5bWVudCI7CisKIC8qIFZpc2libGUgbmFtZSBvZiB0
aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8K
ICIlQCBXZWIgQ29udGVudCIgPSAiJUAgV2ViIENvbnRlbnQiOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApp
bmRleCBmMTYxNTQyNzMyNmQ4OGJhYWRiNWU5M2MyM2RjYTc1NDNiMTgwNGM1Li43Yjc0MWUxMGE3
MmYyMmE3ODA3ZDRlNzczNjM4NzljMmE0MDBkOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTMx
LDcgKzMxLDkgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUveDExIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BheW1lbnQiCiAgICAgIiR7V0VC
S0lUX0RJUn0vU2hhcmVkL1dlYnNpdGVEYXRhIgorICAgICIke1dFQktJVF9ESVJ9L1BheW1lbnRQ
cm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2VzcyIKICAgICAiJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvQyIKQEAg
LTQ3LDYgKzQ5LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZSIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAiJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrIgpAQCAtMTIxLDYgKzEyNCw5IEBAIHNldChXZWJLaXRfTUVTU0FH
RVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQu
bWVzc2FnZXMuaW4KIAorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2Vz
LmluCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3Nh
Z2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAg
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMTUxLDYg
KzE1Nyw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9Q
YXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
MjEsNiArMjI5LDEwIEBAIHNldChOZXR3b3JrUHJvY2Vzc19MSUJSQVJJRVMKICAgICBXZWJLaXQK
ICkKIAorc2V0KFBheW1lbnRQcm9jZXNzX0xJQlJBUklFUworICAgIFdlYktpdAorKQorCiBzZXQo
UGx1Z2luUHJvY2Vzc19MSUJSQVJJRVMKICAgICBXZWJLaXQKICkKQEAgLTQ0MCwxMCArNDUyLDIw
IEBAIGlmIChXZWJLaXRfTmV0d29ya1Byb2Nlc3NfT1VUUFVUX05BTUUpCiAgICAgc2V0X3Rhcmdl
dF9wcm9wZXJ0aWVzKE5ldHdvcmtQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgJHtXZWJL
aXRfTmV0d29ya1Byb2Nlc3NfT1VUUFVUX05BTUV9KQogZW5kaWYgKCkKIAorYWRkX2V4ZWN1dGFi
bGUoUGF5bWVudFByb2Nlc3MgJHtQYXltZW50UHJvY2Vzc19TT1VSQ0VTfSkKK0FERF9XRUJLSVRf
UFJFRklYX0hFQURFUihQYXltZW50UHJvY2VzcykKK3RhcmdldF9saW5rX2xpYnJhcmllcyhQYXlt
ZW50UHJvY2VzcyAke1BheW1lbnRQcm9jZXNzX0xJQlJBUklFU30pCitpbnN0YWxsKFRBUkdFVFMg
UGF5bWVudFByb2Nlc3MgREVTVElOQVRJT04gIiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iKQorCitp
ZiAoV2ViS2l0X1BheW1lbnRQcm9jZXNzX09VVFBVVF9OQU1FKQorICAgIHNldF90YXJnZXRfcHJv
cGVydGllcyhQYXltZW50UHJvY2VzcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FICR7V2ViS2l0X1Bh
eW1lbnRQcm9jZXNzX09VVFBVVF9OQU1FfSkKK2VuZGlmICgpCisKIGlmIChDT01QSUxFUl9JU19H
Q0NfT1JfQ0xBTkcpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYktpdCAtV25v
LXVudXNlZC1wYXJhbWV0ZXIpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYlBy
b2Nlc3MgLVduby11bnVzZWQtcGFyYW1ldGVyKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9G
TEFHUyhOZXR3b3JrUHJvY2VzcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCisgICAgV0VCS0lUX0FE
RF9UQVJHRVRfQ1hYX0ZMQUdTKFBheW1lbnRQcm9jZXNzIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikK
IGVuZGlmICgpCiAKICMgRklYTUU6IE1hYyBzaG91bGQgYnVpbGQgYSBwbHVnaW4gcHJvY2Vzcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwpp
bmRleCA0MDVkNjNiYmIwMTJhMzllNjVkYThiYThiODkwODM1OGEyNThiZDZjLi5lZWI3YTI2YWRh
MTQ2M2QyYWQ1YThkY2ZkYjIwNmE0ZDYzY2YzZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCkBAIC0xMTEsNiArMTExLDggQEAgV0tf
SEFWRV9DT1JFX1BSRURJQ1RJT05bc2RrPW1hY29zeCpdW2FyY2g9aTM4Nl0gPSBOTzsKIFdLX0NP
UkVfUFJFRElDVElPTl9ERUZJTkVTID0gJChXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU18kKFdL
X0hBVkVfQ09SRV9QUkVESUNUSU9OKSk7CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU19ZRVMg
PSBIQVZFX0NPUkVfUFJFRElDVElPTjsKIAorV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFN
RSA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9E
VUNUX05BTUUgPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfJChXS19VU0VfTEVH
QUNZX1NUT1JBR0VfU0VSVklDRV9OQU1FKSk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9O
QU1FXyA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyk7CiBXS19TVE9SQUdF
X1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUw
ODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1l
bnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODZhYTcxNWFl
MGVmMmVkODQwNzE0M2M5Y2ZlYjBhNjIxZjE1Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cwpA
QCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRw
Oi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJz
aW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5jb20uYXBwbGUucm9vdGxlc3MucGF5bWVudC5XZWJL
aXRQYXltZW50U2FuZGJveDwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29u
ZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZp
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42M2EzNzRlMGY1ZDhhYmM1ZDM4NDJkOWJlMDZhZDcwM2RiMTRmMDk1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2Vy
dmljZS54Y2NvbmZpZwpAQCAtMCwwICsxLDM0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisv
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dL
X1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19QQVlNRU5UX0VOVElU
TEVNRU5UU19SRVNUUklDVEVEX1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRi
b3guZW50aXRsZW1lbnRzOworCitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05P
ID0gJChXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JFU1RSSUNU
RURfRU5USVRMRU1FTlRTKSk7CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJQlJBUllf
VkFMSURBVElPTl9DT0RFX1NJR05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdLX1BBWU1F
TlRfU0VSVklDRV9QUk9EVUNUX05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQo
UFJPRFVDVF9OQU1FKTsKK0lORk9QTElTVF9GSUxFID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IGU0OTIxNTFlMDRiNjNkNGY4ZjA2YzA5MDMxNmU1MjAxYTFiYjhlOWUuLmFiOGZi
Yzk5ZDU5MzE3YTc3NDc4MjllZjg4NTdiODQzZTBhYjZkYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTM3LDYgKzM3LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9TaGFy
ZWQvQVBJL0NvY29hIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbiBcCiAg
ICAgJChXZWJLaXQyKS9TaGFyZWQvbWFjIFwKKyAgICAkKFdlYktpdDIpL1BheW1lbnRQcm9jZXNz
IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGVQYXkgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
QXV0b21hdGlvbiBcCkBAIC03Myw2ICs3NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0Mikv
VUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwK
KyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QYXltZW50IFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUg
XAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTMxLDYgKzEzMyw5IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIg
XAogICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCisgICAgUGF5bWVu
dFByb2Nlc3MgXAorICAgIFBheW1lbnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uIFwKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCiAgICAgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODMxYzUxMDM5ZGJkZjVmNzMzYjVlZGFjMjkxZDU3YWRhNjMwNzZiYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
Y3BwCkBAIC0wLDAgKzEsMTk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldl
YnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVuY29kaW5n
Lmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0Fn
Z3JlZ2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGF5
bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2VzczsKKyAgICByZXR1cm4gcHJvY2Vz
czsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkKKyAgICA6IG1fcXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudFByb2Nlc3MiKSkKK3sK
KyAgICAvLyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhlIHRleHQg
ZW5jb2RpbmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBh
IGJhY2tncm91bmQgdGhyZWFkIG5lZWRzIGl0LgorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhwbGljaXQg
d2F5IG9mIGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGluZy4KKyAg
ICBVVEY4RW5jb2RpbmcoKTsKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcygp
Cit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRU
ZXJtaW5hdGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q2hp
bGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyhjb25z
dCBTdHJpbmcmIHBhdGgpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAg
ICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhwYXRoKSkKKyAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gbWFrZSBhbGwgZGlyZWN0b3JpZXMgZm9yIHBhdGggJyVzJyIsIHBh
dGgudXRmOCgpLmRhdGEoKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OnBvc3RQYXltZW50
VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BheW1lbnRUYXNrTXV0ZXgpOworCisg
ICAgbV9wYXltZW50VGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykpOworCisgICAgbV9xdWV1ZS0+
ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgcGVyZm9ybU5leHRQYXltZW50VGFzaygpOworICAg
IH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4dFBheW1lbnRUYXNrKCkK
K3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIENyb3NzVGhyZWFkVGFz
ayB0YXNrOworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wYXltZW50VGFza011
dGV4KTsKKyAgICAgICAgQVNTRVJUKCFtX3BheW1lbnRUYXNrcy5pc0VtcHR5KCkpOworICAgICAg
ICB0YXNrID0gbV9wYXltZW50VGFza3MudGFrZUZpcnN0KCk7CisgICAgfQorCisgICAgdGFzay5w
ZXJmb3JtVGFzaygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luKQoreworI2lmIFVTRShVTklYX0RP
TUFJTl9TT0NLRVRTKQorICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWly
ID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oKTsKKyAgICBtX3Bh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmNyZWF0ZShzb2NrZXRQYWlyLnNlcnZlcikpOworICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudChzb2NrZXRQYWly
LmNsaWVudCkpLCAwKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAvLyBDcmVhdGUgdGhlIGxpc3Rl
bmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQgPSBNQUNIX1BPUlRfTlVM
TDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1B
Q0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7CisgICAgaWYgKGtyICE9IEtF
Uk5fU1VDQ0VTUykgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtYWNo
IHBvcnQsIGVycm9yICV4Iiwga3IpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIC8v
IENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIG1fcGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLmFwcGVuZChQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
KElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSkpOworCisgICAgSVBD
OjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KGNsaWVudFBvcnQpLCAwKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXI7CisgICAgaWYg
KCFJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckFuZENsaWVudElkZW50aWZpZXJzKHNlcnZl
cklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBzZXJ2ZXIgYW5kIGNsaWVudCBpZGVudGlmaWVycyIpOworICAgICAgICBD
UkFTSCgpOworICAgIH0KKworICAgIGF1dG8gY29ubmVjdGlvbiA9IFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpjcmVhdGUoc2VydmVySWRlbnRpZmllcik7CisgICAgbV9wYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFdURk1vdmUoY29ubmVjdGlvbikpOworCisgICAg
SVBDOjpBdHRhY2htZW50IGNsaWVudFNvY2tldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5
OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjbGllbnRTb2NrZXQpLCAw
KTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCisjaWYgIVBMQVRG
T1JNKENPQ09BKQordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKKyAgICB7CisjaWYgT1MoTElO
VVgpCisgICAgICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6c2luZ2xldG9uKCk7CisgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRM
b3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwsIFN5bmNocm9ub3VzKSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogbm8gbG93TWVtb3J5SGFuZGxlcigpIGltcGxlbWVudGVkIGZvciBQYXlt
ZW50UHJvY2VzcyBjdXJyZW50bHkuCisgICAgICAgICAgICAvLyBCdXQgYXQgbGVhc3QgZGVmaW5l
IHRoaXMgc2V0TG93TWVtb3J5SGFuZGxlcigpIGVtcHR5IHNvIHBsYXRmb3JtUmVsZWFzZU1lbW9y
eSBpcyBjYWxsZWQuCisgICAgICAgIH0pOworICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aW5zdGFsbCgpOworI2VuZGlmCisgICAgfQordm9pZCBQYXltZW50UHJvY2Vzczo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisjZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MDJjNzg2OTAzOTNlYTYzZDkzZTg2ZGI2ODFkMGNkZTlmZDY5Yzll
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
UHJvY2Vzcy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRl
c3Ryb3llZDxQYXltZW50UHJvY2Vzcz47CitwdWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9j
ZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nl
c3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsK
KworICAgIHZvaWQgcG9zdFBheW1lbnRUYXNrKENyb3NzVGhyZWFkVGFzayYmKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8g
Q2hpbGRQcm9jZXNzCisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxp
emVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBN
ZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25z
dCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZvaWQgY3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEKTsKKyAgICAKKyAgICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdvcmsgcXVl
dWUgdGhyZWFkIG9ubHkKKyAgICB2b2lkIHBlcmZvcm1OZXh0UGF5bWVudFRhc2soKTsKKyAgICB2
b2lkIGVuc3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJik7CisKKyAgICBWZWN0b3I8UmVmPFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPj4gbV9wYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbnM7CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworCisgICAgRGVxdWU8Q3Jvc3NU
aHJlYWRUYXNrPiBtX3BheW1lbnRUYXNrczsKKyAgICBMb2NrIG1fcGF5bWVudFRhc2tNdXRleDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU3NmM0MjE3MDU2MDhlNjViNzFh
MWQ5MGRjNmM2ZTU0ZDAzNTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
eworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTI2ODk2MjBhZjI0N2U1NmU3YTc4N2VkNDVm
NGEyODZlMGQ5OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDg4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworfQorCitQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9u
SWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIC8vIFVzZSB0aGlzIGZsYWcgdG8gZm9yY2Ugc3lu
Y2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hyb25vdXMgbWVzc2FnZXMg
aW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUgV2ViUHJvY2VzcyB3b3Vs
ZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3YWl0aW5nIGZvciBhIHN5
bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1lbnQgcHJvY2Vzcywgd2hp
Y2ggd291bGQgYmUgdW5zYWZlLgorICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdl
c0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNz
YWdlKHRydWUpOworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZl
UGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9u
KTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmMwMWZhZjg1YTVl
NTUxY2FkYmU2NzhlOTMxYjhjNGJkYmYyZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3Nh
Z2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5QYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAw
OyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
NDMyMjU5NjYyNjkzNTkzOTE2ZTNkOTRjYTk1NGZkNTA5NzlhNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAt
PiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7Cit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQ
cm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFBy
b2Nlc3NJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE2YWFlYjU2YjI0YzBhMzZjZmU2NzE1MjhkOWZjZWZh
ZWQ2ODliNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
aW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExB
VEZPUk0oSU9TKQorI2ltcG9ydCAiUGF5bWVudFByb2Nlc3MuaCIKKworI2ltcG9ydCAiU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgorCisjZGVmaW5lIEVOQUJMRV9NQU5VQUxfREFU
QUJBU0VfU0FOREJPWElORyAwCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJv
Y2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQoreworI2lm
IEVOQUJMRV9NQU5VQUxfREFUQUJBU0VfU0FOREJPWElORworICAgIC8vIE5lZWQgdG8gb3ZlcnJp
ZGUgdGhlIGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElE
LgorICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNz
Ok5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3IildOworICAgIHNhbmRib3hQYXJhbWV0ZXJz
LnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhGb3JSZXNv
dXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiIG9mVHlwZTpAInNiIl0pOworICAgIENo
aWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRl
cnMpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKQorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBw
bGUuV2ViS2l0LlBheW1lbnRzLnNiIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFBy
b2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzdj
YmZmOGNkYjc4OTY0Yzc2NGU0ZTJlNGRmZmQ2MTAzMjg1OWIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuUGF5bWVudHMuc2IKQEAgLTAsMCArMSw0NyBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
OyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0
aWFsLXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRh
dGEpCisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2Vy
dmljZS1uYW1lLXByZWZpeCAiIikpCisKKyhkZW55IGxzb3BlbikKKworKGFsbG93IGZpbGUtcmVh
ZCogZmlsZS13cml0ZSogKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3Jp
dGUiKSkKKworKGRlbnkgc3lzY3RsKikKKyhhbGxvdyBzeXNjdGwtcmVhZAorICAgIChzeXNjdGwt
bmFtZQorICAgICAgICAiaHcuYXZhaWxjcHUiCisgICAgICAgICJody5uY3B1IgorICAgICAgICAi
aHcubW9kZWwiCisgICAgICAgICJrZXJuLm1lbW9yeXN0YXR1c19sZXZlbCIKKyAgICAgICAgInZt
LmZvb3RwcmludF9zdXNwZW5kIikpCisKKzs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQgYnkg
c3lzdGVtIGZyYW1ld29ya3MKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuYW5hbHl0aWNzZCIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAppbmRl
eCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdhNjFmZmFiZGYzNzY5Li41ZDBjYzZlMmY1NGQz
NjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nl
c3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkNvbnRlbnQsCiAgICAg
ICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAg
IH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU3MzcwOTczNDAzZDQ2MzQwOGVkNjNiYmNlZjQ1NjNiZDAwOTk4MWYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCit7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7Cit9CisKK2Jvb2wgUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCit7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmFjODYzYzAwYThhNDA3MDEzNTEyY2EyMzFjMDU1ODM1MTdiOWVlYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKKworICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworCisgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRjNzJlNTgyYWJlMzBmNDg3
OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2NzAxNzkxZjBjZTlhYWRl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRo
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAg
LTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
ZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwog
U3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1lbnRQcm9jZXNzKCk7Cisj
ZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVk
YmI1ZTFmNjc5NGI2ZjQ4MTNlM2FjYTZjZTUwM2ViZmMzMjBlMTkuLmNlZDY4ZjUzODQ2NTIxNzFk
YWM0ZTNkODQzYTQ0MWJlNzJkNzE5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjE5LDggKzIxOSwxMyBA
QCBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBAbm8t
dW5pZnkKIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCAg
QG5vLXVuaWZ5CiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAg
QG5vLXVuaWZ5CiAKK1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorCiBTaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCiAKK1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcCBAbm8tdW5pZnkKK1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKKwogVUlQcm9jZXNzL0JhY2tn
cm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKIFVJUHJvY2Vzcy9DaGlsZFByb2Nl
c3NQcm94eS5jcHAKIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcApAQCAtMzgxLDYgKzM4
Niw4IEBAIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcAogCitVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5
LmNwcAorCiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIuY3Bw
CiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3Bw
CiAKQEAgLTQ5MSw2ICs0OTgsNyBAQCBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5j
cHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNw
cAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKK1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIAogV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dAppbmRleCA1OTRiZjkwZGQ1ZjA4YmZkYzQzNGI5ZjVkYzU5ZTQ4YzNhYTJkNzFl
Li4wZTQyMGVmNjg4NzBmMTY4NTJkMGYzYTZkOWU1MzU2MTRmZDUzMTVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CkBAIC0xOTQsNiArMTk0LDkgQEAgU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKIAorCitQYXltZW50UHJvY2Vzcy9p
b3MvUGF5bWVudFByb2Nlc3NJT1MubW0gQG5vLXVuaWZ5CisKIFVJUHJvY2Vzcy9fV0tXZWJWaWV3
UHJpbnRGb3JtYXR0ZXIubW0KIFVJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbQog
VUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggMDQwMWU3MmI0YzZm
NWU0ZTU5ZGQ4Y2FiNDBiNjY0MzVkNGY1OGZiOS4uN2JmM2Y1YTEyYzk3ZWNhNzlkYjc0MGU2OWM0
NWRmYzllYTRhYmI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCkBAIC02MjEsMTEgKzYyMSwyNyBAQCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHRvSW1wbChjb250ZXh0
KS0+dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcygpOwogfQogCit2b2lkIFdLQ29udGV4
dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQoreworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVQYXlt
ZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorfQorCiBQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZikt
Pm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCitQcm9jZXNzSUQgV0tDb250ZXh0R2V0
UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+
cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9y
dGVkUGx1Z2luKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkb21haW5SZWYs
IFdLU3RyaW5nUmVmIG5hbWVSZWYsIFdLQXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5UmVm
IGV4dGVuc2lvbnNSZWYpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXgg
NDZkMzdlMWU4YTE1ODk1ODBhMzU1MzhlZTVmNmY5YmMyZDgwZTIyYy4uMWYxZTg3MzlkMzJlZDc2
ZDUxNzExYzZiZDdiZWEwNjk0MTNmOTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTIsNiArOTIsOCBAQCBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlTmV0d29ya1Byb2Nlc3MoV0tDb250
ZXh0UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzKFdLQ29udGV4dFJlZik7CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdo
ZW4gUEFZTUVOVF9QUk9DRVNTIGlzIEVOQUJMRUQKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZik7CiAKIFdLX0VYUE9SVCB2b2lkIFdL
Q29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhXS0Nv
bnRleHRSZWYsIGJvb2wpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyVGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wpOwpA
QCAtMTEyLDYgKzExNCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxp
c3QoV0tDb250ZXh0UmVmLCBXS0FycmF5UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFBy
ZWNvbm5lY3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJM
KTsKIAogV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRl
bnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tD
b250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBkb21haW4sIFdLU3RyaW5nUmVmIG5hbWUsIFdLQXJyYXlS
ZWYgbWltZVR5cGVzLCBXS0FycmF5UmVmIGV4dGVuc2lvbnMpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0Q2xlYXJTdXBwb3J0ZWRQbHVnaW5zKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5k
ZXggY2YyODExZThiM2FjYWFiMGQwODFlMDg4MmNiZmQ4M2M3ZDVkZDVjZS4uMGYzMjEyOGEyZjNk
YTg1NTZmNDQ0ZDc0OWNiNTM5Mjc4NTA4MTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQyNCw2ICs0MjQsMTMgQEAg
LSAodm9pZClfY2xlYXJTdXBwb3J0ZWRQbHVnaW5zCiAgICAgX3Byb2Nlc3NQb29sLT5jbGVhclN1
cHBvcnRlZFBsdWdpbnMoKTsKIH0KIAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3MK
K3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIF9wcm9jZXNzUG9vbC0+dGVybWlu
YXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK30KKwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKIHsKICAgICBf
cHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC00NDQsNiArNDUxLDE1
IEBAIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIKICAgICByZXR1cm4gX3Byb2Nl
c3NQb29sLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorLSAocGlkX3QpX3BheW1l
bnRQcm9jZXNzSWRlbnRpZmllcgoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
cmV0dXJuIF9wcm9jZXNzUG9vbC0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQor
ICAgIHJldHVybiAocGlkX3QpMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
fQorCiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzCiB7CiAgICAgX3Byb2Nlc3NQ
b29sLT5zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDRk
M2ExOTEyMGFiZDQ5ZWVlMDQ5Mjc5NGE3N2Y0YWZiMDZjZGU5MGMuLjBiOTk5ZTg2NGE5MTlhYzU4
YzkwMTljODQ2M2U2MDdjNWYzN2VjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC04NCwxMiArODQs
MTYgQEAKIC0gKF9XS0Rvd25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAq
KXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilwYXRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBi
ZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcu
CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZTUVOVF9QUk9DRVNTIGlz
IEVOQUJMRUQKKy0gKHZvaWQpX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzOwogLSAodm9pZClfdGVy
bWluYXRlTmV0d29ya1Byb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZv
aWQpX2Rpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChw
aWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzKSwgaW9zKDExLjApKTsKKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQ
QVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAocGlkX3QpX3BheW1lbnRQcm9jZXNzSWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4zKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHNp
emVfdClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9z
KDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKaW5kZXggODdiMGJiZWM4MTMwM2E3NWM4NWUyYThjYmMzMGU3YWMyMmQ4M2Rj
ZS4uOTI1NTVhNDg2OGQwNGRiMzFiODVjZmUwYjM4ODY3OTM3ZGU4ZjZkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTU3
LDYgKzU3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgUGx1Z2luNjQsCiAjZW5kaWYKICAgICAgICAg
TmV0d29yaywKKyAgICAgICAgU3RvcmFnZSwKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAg
fTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEwYjQ3Y2VhOTI1NTcyNTQ0ZjAwNDRhMmY3MzAxNjU0YjRkMTUzNWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHku
Y3BwCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzUHJveHkuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBheW1l
bnRQcm9jZXNzQ2FsbGJhY2tJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQ7
CisKKyAgICByZXR1cm4gKytjYWxsYmFja0lEOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQ
YXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENo
aWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0
eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQoreworICAgIGNvbm5lY3QoKTsKK30KKworUGF5bWVudFBy
b2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQoreworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIHRlcm1pbmF0ZSgpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlv
bnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50Owor
ICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwg
dGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nl
c3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBp
ZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVuZGluZ0Nv
bm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9vbCBp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNl
Y3VyaXR5T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MsIHNl
Y3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBwcm90ZWN0ZWRQcm9jZXNzUG9v
bCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBUaGUgcGF5bWVudCBwcm9jZXNz
IG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkgcGVuZGluZyBzeW5jIHJl
cGxpZXMgd2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBs
aWVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlv
blJlcGxpZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAg
ICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KCkpOworI2VsaWYgT1MoREFSV0lOKQorICAgICAg
ICByZXBseShJUEM6OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNl
bGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVudCgpKTsKKyNlbHNl
CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKKyAgICB9CisgICAgLy8gVGVsbCBQ
cm9jZXNzUG9vbCB0byBmb3JnZXQgYWJvdXQgdGhpcyBwYXltZW50IHByb2Nlc3MuIFRoaXMgbWF5
IGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgbV9wcm9jZXNzUG9vbC5wYXltZW50UHJvY2Vz
c0NyYXNoZWQodGhpcyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQorewor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbklkZW50aWZpZXIp
Cit7CisgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpOwor
CisgICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgp
OworCisjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgcmVwbHkoY29ubmVjdGlvbklk
ZW50aWZpZXIpOworI2VsaWYgT1MoREFSV0lOKQorICAgIHJlcGx5KElQQzo6QXR0YWNobWVudChj
b25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7Cisj
ZWxpZiBPUyhXSU5ET1dTKQorICAgIHJlcGx5KGNvbm5lY3Rpb25JZGVudGlmaWVyLmhhbmRsZSgp
KTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5j
aGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7
CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29u
bmVjdGlvbklkZW50aWZpZXIpOworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZp
ZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTogRG8g
YmV0dGVyIGNsZWFudXAgaGVyZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkK
KyAgICAgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRp
bmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTNm
NTJiYTc2MTJkYWEzYzIzY2IwMTQ1ZjE2MTI1MDM4NTZkMjY4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAg
LTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUg
IlByb2Nlc3NMYXVuY2hlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIFNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJv
Y2Vzc1Byb3h5OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURh
dGE7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9j
ZXNzUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmKTsKKyAgICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAorICAgIHZv
aWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5JiYpOworCisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisKK3ByaXZhdGU6Cisg
ICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcm9jZXNzV2ls
bFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgdm9pZCBk
aWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBkaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsK
KworICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRGaW5pc2hMYXVu
Y2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVy
cmlkZTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisgICAgdW5zaWdu
ZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5
PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBlZmZiYjU4MjljYTA2NmU1ZWIzNGMxYzdlNDk2ZTdhM2Yz
ODZlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7Cisg
ICAgRGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5k
ZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uYmVjNzliNTRjYmY2
YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQgKzQ2LDExIEBAIHZvaWQgV2ViQ29udGV4
dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bv
b2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShwcm9jZXNzUG9v
bCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdl
YlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2ZDRlZThkNzc4
ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFiOWVkY2M4NDUz
OTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC00
NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50
PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxl
bWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5MzRmYTYuLjJj
NmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiArMjksMTAgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5OworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikKICAgICB7CiAg
ICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmlydHVhbCB2b2lk
IHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7CisgICAgfQorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNzUG9vbCogcHJv
Y2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAgdm9pZCBjbGVh
clByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGU0YTg3NzA0NzU3OGM0OGY0MGQ3
MWM2OTI3Yzk2NWRiOTYyYjc5NDAuLmVlNTk2MmUxNzJiN2I4YmZmYzZlNTJlOTA1MDg0YjUwZGNm
ZTljMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5o
IgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgi
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJUZXh0Q2hlY2tl
ci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVy
LmgiCkBAIC00NDIsNiArNDQ2LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVBy
ZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0Ny
aXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJv
Y2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6
OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkp
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRN
ZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MDcsNiArNjE0LDM2
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwog
fQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVu
c3VyZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAg
ICAgIG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJv
eHk+KCp0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNz
aW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBlbnN1
cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPmdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKK30KKwordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJv
eHkqIHBheW1lbnRQcm9jZXNzUHJveHkpCit7CisgICAgQVNTRVJUKG1fcGF5bWVudFByb2Nlc3Mp
OworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1Byb3h5ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0
KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMo
KSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vzc0RpZENsb3NlKHBheW1lbnRQcm9jZXNzUHJv
eHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFByb2Nlc3NEaWRDcmFzaCh0aGlzKTsKKworICAg
IGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAgICAgICBtX2F1dG9tYXRpb25TZXNzaW9uLT50
ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRv
TmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYgcHJveHksIFNlY3VyaXR5T3JpZ2lu
RGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNz
aW9uSUQpCiB7CkBAIC02ODMsNiArNzIwLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55
UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGUKICAg
ICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRl
RGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lv
blBhcmFtZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkt
PnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgc2VuZFRvUGF5bWVudFByb2Nl
c3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
KSk7CiAgICAgfQogfQpAQCAtMTMzNiw2ICsxMzc2LDE1IEBAIFZlY3RvcjxTdHJpbmc+IFdlYlBy
b2Nlc3NQb29sOjphY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nl
c3NJCiAgICAgfQogICAgIHJldHVybiB7IH07CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCkK
K3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisgICAg
cmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWx3
YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKIHsK
QEAgLTE2MDcsNiArMTY1NiwxNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhckNhY2hlZENy
ZWRlbnRpYWxzKCkKICAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKICAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQ2FjaGVkQ3JlZGVu
dGlhbHMoKSwgMCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpCit7Cisg
ICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BheW1l
bnRQcm9jZXNzLT50ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgbV9wYXltZW50UHJvY2VzcyA9
IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZDNhOGQ4ZTViMGFmZGY2YWU0ZTUzMDZm
NDkzYThiOWNiNTBjMjVlZC4uNDJhNzBhYTgwNzViZTVmOWVjZWExOWQ5YjhlOTI4MmJhMzBhZjU0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MCw2ICs0
MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzUmVxdWVzdC5oIgorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5o
IgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVmlzaXRlZExp
bmtTdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgpAQCAtMTczLDYgKzE3NiwxMiBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gdm9pZCBzZW5kU3luY1RvTmV0d29y
a2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBseSk7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nhcnko
VCYmIG1lc3NhZ2UpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAvLyBTZW5k
cyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9yIFBheW1lbnRQcm9jZXNzIGFzIGFwcHJvcG9y
aWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5
KFQmJiBtZXNzYWdlKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAg
dm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSopOwogCiAgICAg
Ly8gRGlzY29ubmVjdCB0aGUgcHJvY2VzcyBmcm9tIHRoZSBjb250ZXh0LgpAQCAtMjE3LDYgKzIy
Niw5IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7
CiAgICAgVmVjdG9yPFN0cmluZz4gYWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVz
dGluZyhQcm9jZXNzSUQpOwogICAgIGJvb2wgbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZv
clRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VHcm91cCYgZGVmYXVsdFBhZ2VHcm91cCgp
IHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQoKTsgfQogCkBAIC0yNzYsNiArMjg4LDkg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2Nr
ZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKTsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JU
ZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB2b2lkIHRl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
UHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5h
dGlvbkRlbGF5KCk7CkBAIC0zNDIsNiArMzU3LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYp
OwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGVuc3VyZVBheW1lbnRQ
cm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3MoKSB7IHJl
dHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9CisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Np
b25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5
bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4
dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4pOwog
ICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlG
cm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBAIC02NDAsNiArNjYxLDkgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24geyB0
cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2ggeyBmYWxzZSB9OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBtX25ldHdvcmtQcm9jZXNzOwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRQ
cm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJh
Y2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CkBAIC03NDEsNiArNzY1
LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVu
Y2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5k
KHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRU
b1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQoreworICAgIGlmIChtX3BheW1lbnRQcm9jZXNz
ICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIG1fcGF5bWVu
dFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNz
UmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKK3sKKyAgICBlbnN1cmVQYXltZW50
UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1l
c3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvQWxsUHJvY2Vzc2Vz
KGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCAxOTljNWEwMTZkYjVmM2JmMWVmN2Q0NWY1MjFiY2U3Y2U0NmE0YTU0
Li5lNDE2YWEwMGMwMTg3N2UzNDc0NjRmZmE5M2Y3NDcwM2M0MmFkZDg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTYyMyw2ICs2MjMsMTIgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3Byb2Nlc3NQb29sLT5nZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVwbHkpKTsKIH0KKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShyZXBseSkpOworfQorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiBib29sIFdl
YlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxYmI4ODNjZjJmMjNhNzA2NGFi
ZDRjZWY3ZTU5Yjc2Y2RlZWQ4MmYzLi40ZjQ0MGQ3ZmYxNzIyZTQ2YTNiNDY2OWFiZTQ4ZjU4NTZl
MjhjNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAt
Mjc2LDYgKzI3Niw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIGdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQg
aW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7CiAg
ICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCA1YTdmNWQzZDQ2OWYyMzIwY2JjMjg3MGZiOWMxZDgxZmViNmUyMWVlLi5kNDQzNTRmMzNi
ZTZjMDI0YjZmNzRhMjBhY2FlNTkwZGFlOTUyY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw5IEBA
IG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgR2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAoSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJ
bml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nlc3NTdXNw
ZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAxYTI1NWI4OTU2MmRlNTg0NGJiZjMyMjFj
YzRiN2U4MjIyZjljNjQ4Li5jNTAzZmZkNmY1YmVmYmRmZTBhMGYwYzZiMzczNGM4NTkyNjhlNDJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRlICJNb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVk
ZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKQEAgLTEzNSw2
ICsxMzksOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAgICAgICAg
IEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldChtX3Nlc3Npb25JRCkgPT0gdGhpcyk7
CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCkucmVtb3ZlKG1fc2Vzc2lvbklEKTsKICAg
ICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNz
UG9vbHMoKSkgeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgICAgICBwcm9j
ZXNzUG9vbC0+c2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpE
ZXN0cm95U2Vzc2lvbihtX3Nlc3Npb25JRCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAgICAgICAgICAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9v
bC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+cmVt
b3ZlU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgICAgIH0KQEAgLTE2MjYsNiArMTYzMywxOSBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2Vi
UHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAogICAgIGNhbGxiYWNrKCk7CiB9CiAKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgV2Vi
c2l0ZURhdGFTdG9yZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCkKK3sKKyAgICByZXNvbHZl
RGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOworCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNz
aW9uSUQ7CisKKyAgICByZXR1cm4gcGFyYW1ldGVyczsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBXZWJzaXRlRGF0YVN0b3Jl
OjpwZW5kaW5nQ29va2llcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvcHlUb1ZlY3RvcihtX3Bl
bmRpbmdDb29raWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBiZDU3OTEzZDM5OTQ3NDUxZDBlOTlhMGFk
NWYxOGI5ODNhZTEwMzFlLi41ZWE4MGViOWFmNTFjZGFlZDBjNmViNTE4MzM4ZDFjMGU5OTg1MjRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCkBAIC02Miw2ICs2Miw5IEBAIGNsYXNzIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjsKIGVudW0g
Y2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb247CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3N0cnVjdCBQYXltZW50UHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzOwogCkBAIC0xNjksNiArMTcyLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNBc3NvY2lh
dGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vzc1Bvb2wmKSBjb25zdDsKIAogICAgIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnMoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBheW1lbnRQcm9jZXNzUGFy
YW1ldGVycygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBwZW5kaW5nQ29va2llcygpIGNvbnN0OwogICAgIHZvaWQgYWRk
UGVuZGluZ0Nvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1NmQyYzIwNGE2YjM4ZDY4
YjI4ODcyOTllMDA3NmQ4ZTkxMzc3OTQuLjhiOWEyZmI0Y2JhYzQ2ZGQwNTRlYWFmYjRkODllODMx
MWVmNmY5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODQ0LDYgKzg0NCw3IEBACiAJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAv
KiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFj
Y2VwdFBvbGljeS5oICovOyB9OwogCQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93
c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93
c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdL
TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OworCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5
MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi87IH07CiAJCTNGNDE4RUY5MTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY1MTg4N0JEOTcw
MDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJM0Y4N0I5QkUxNTg5NDAx
OTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9y
Q2hvb3Nlci5oICovOyB9OwpAQCAtOTAyLDYgKzkwMywxMSBAQAogCQk1MTBGNTkxMTFEREUyOTcw
MDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUMwQzk3OTFEREQ3ODU0MDAzMkNBRDMgLyogX1dL
TGlua0ljb25QYXJhbWV0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51
SXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87
IH07CiAJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEFFMEIxMzNDMTZD
QjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTExOEU5QTExRjI5NTMyNjAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTk5RjFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKKwkJNTExOEU5QTgxRjI5NTk3NzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUE5MUYy
OTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovOyB9OworCQk1MTE4RTlBQTFGMjk1OTc3MDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNzFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJ
CTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUEy
MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsK
IAkJNTExRjdENDExRUIxQkNGNTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGN0Q0
MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLzsgfTsK
IAkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjhBNzcxMzhCNDYw
OTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICovOyB9OwogCQk1MTFGOEE4MTEzOEI0
ODVEMDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFNl
Y0l0ZW1TaGltTGlicmFyeS5tbSAqLzsgfTsKQEAgLTk1Myw2ICs5NTksNyBAQAogCQk1MTdDRjBF
MzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
N0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYg
LyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggKi87IH07CisJCTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vz
c1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovOyB9Owog
CQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQwMEY3
NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9OwogCQk1MThBQ0FFQTEyQUVFNkJCMDBCMDRC
ODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVj
dGlvblNwYWNlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MThBQ0YxMTEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDRjEw
MTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05ODAsNiArOTg3LDggQEAKIAkJNTFE
RDlGMjgxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxREQ5RjI2MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxREQ5RjI5MTYzNjdEQTIwMDE1
NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNzE2MzY3REEyMDAx
NTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovOyB9Owog
CQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFDOTE4MEYyQ0NDMDBFNTNC
RTkgLyogSURCVXRpbGl0aWVzLmggKi87IH07CisJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAv
KiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3Bw
ICovOyB9OworCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcCAqLzsgfTsKIAkJNTFFNkMxNjQxRjI5MzVERDAwRkQzNDM3IC8qIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oICovOyB9OwogCQk1MUVGQzFDRjE1
MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDU0MTUyMTExODYwMEMx
QkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2MEUwMTY1NDMxN0YwMEYzMjgxQiAv
KiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVzb3Vy
Y2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMTU1Miw2ICsxNTYxLDcgQEAKIAkJRDNCOTQ4
NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87
IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUw
MDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKKwkJRTExNUM3MTQxOTBGODlFNDAwRUND
NTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9j
ZXNzSU9TLm1tICovOyB9OwogCQlFMTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxl
LldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5z
YiAqLzsgfTsKIAkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxk
UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCAqLzsg
fTsKQEAgLTI5NTgsNiArMjk2OCwyOCBAQAogCQkzRjQxOEVGNjE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZE
IC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzRjQxOEVGODE4ODdCRDk3MDAyNzk1RkQgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzkxMzYwMDIyMTkz
NzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwMzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAw
NDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwNTIxOTM3NjA4MDA1NjQ5MkEgLyogU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzOTEzNjAwNjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5
MTM2MDA3MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEz
NjAwODIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDkyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0Ns
aWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM5MTM2MDBBMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEIy
MTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEMyMTkzNzYw
ODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBEMjE5Mzc2MDgwMDU2NDkyQSAvKiBX
ZWJTV09yaWdpblRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNX
T3JpZ2luVGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEUyMTkz
NzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwRjIxOTM3NjA4MDA1NjQ5MkEgLyog
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAxMDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzkxMzYwMTEyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2gubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2
MDEyMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0
OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTNGNDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y0MThFRjgxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xv
ckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29s
b3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5
M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMDE0LDYgKzMwNDYsNyBAQAogCQk0MTU3RTRBRjIwRTJFQzk4MDBB
NkMwRDcgLyogY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE4OEMxNTQyMTEzNzc3MDAwMTJBQkNEIC8qIHByb2Nlc3MtbmV0d29yay1z
YW5kYm94LWVudGl0bGVtZW50cy5zaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0g
InByb2Nlc3MtbmV0d29yay1zYW5kYm94LWVudGl0bGVtZW50cy5zaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxODhDMTU2MjExMzc3RTgwMDEyQUJDRCAvKiBwcm9jZXNzLXdlYmNv
bnRlbnQtc2FuZGJveC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJwcm9jZXNzLXdl
YmNvbnRlbnQtc2FuZGJveC1lbnRpdGxlbWVudHMuc2giOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTg4QzE1NzIxMTM3ODUyMDAxMkFCQ0QgLyogUGF5bWVudC1PU1gtc2FuZGJveC5l
bnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgcGF0aCA9ICJQ
YXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxODhDMTU4MjExMzc4NTIwMDEyQUJDRCAvKiBXZWJDb250ZW50LU9TWC1zYW5kYm94
LmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRsZW1lbnRzOyBwYXRoID0g
IldlYkNvbnRlbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE4OTdFQ0IxRjQxNUQ1QzAwMTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OTdFQ0MxRjQxNUQ1QzAw
MTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTMwODAsNiArMzExMyw3IEBACiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9j
a2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2Nr
aW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYx
Mzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5j
bHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJD
b250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDRGNUExMUYxOUQ3
Q0YwMDRDRjgyMSAvKiBDb29raWVTdG9yYWdlVXRpbHNDRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MTFDNzNEMjJCMDA3OTkzQ0IgLyogV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwNTIzNzIxQzczRDM3QjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMzEwOCw2ICsz
MTQyLDEyIEBACiAJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9y
YWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0
b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5OUUxRjI5NTMxRjAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTExOEU5OUYxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUEyMUYy
OTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEx
OEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDNGMUVCMUJDRUUw
MEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNlY0l0ZW1TaGltTGlicmFyeS5oOyBw
YXRoID0gLi4vLi4vV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTI1LDYgKzMxNjUsNyBAQAogCQk1MTI5MzVENjEyODhE
MTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEUxMkE4ODM4ODAwNjI5NTMwIC8qIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhGMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyRjU4OTAxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzE5NSw2ICszMjM2LDggQEAKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vz
c1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBTaGltLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlEMDBGNzYy
MzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMTQsNiAr
MzI1Nyw3IEBACiAJCTUxQTU1NjAwMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRl
bVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVJ
dGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0UxRDFDNENC
OTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJJREJSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUE1ODc3RjFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQlJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnhjY29uZmlnOyBwYXRoID0gUGF5bWVudFNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxQTcyOERDMUIxQkFEMkQwMDEwMkVFRSAvKiBXS0J1bmRsZU5h
dmlnYXRpb25BY3Rpb25Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MUE3RjJGNDEyNUJGOEQ0MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTMyNzMsNiArMzMxNywxMSBAQAogCQk1MUREOUYyNzE2MzY3REEyMDAx
NTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJNTFFMzUxQzgxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJVdGlsaXRpZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQlV0aWxpdGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzk5MDUxRDZGNTRDNTAwOUM4
ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUU2QzE1RjFGMjkzNTUxMDBGRDM0MzcgLyogUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBwYXRoID0gaW9z
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ0MDEsNiArNDQ1MCw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVk
aXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0lPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYw
IC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNG
NTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3Jr
Q2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29y
a0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTc1LDYg
KzQ2MjUsNyBAQAogCQkJCTFBQURERjRCMTBEODJBRjAwMEQzRDYzRCAvKiBTaGFyZWQgKi8sCiAJ
CQkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLywKIAkJCQlCQzAzMkQ1
QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKKwkJCQk1MUY3REMwQTE4MENDNDEx
MDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8sCiAJCQkJNTEwQ0M3REExNjEzOEUwMTAwRDAz
RUQzIC8qIE5ldHdvcmtQcm9jZXNzICovLAogCQkJCTFBMEVDNkIwMTI0QkJEMzYwMDdFRjRBNSAv
KiBQbHVnaW5Qcm9jZXNzICovLAogCQkJCUMwQ0U3MjlEMTI0N0U3MUQwMEJDMEVDNCAvKiBEZXJp
dmVkIFNvdXJjZXMgKi8sCkBAIC00Nzc4LDYgKzQ4MjksOCBAQAogCQkJCTQxRDBGQzdEMjBFNDNB
NTEwMDA3NkFFOCAvKiBOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyAqLywKIAkJCQk1
QzdBQ0ZEMTIxOEREOEJEMDA0Q0JCNTkgLyogTmV0d29yay1PU1guZW50aXRsZW1lbnRzICovLAog
CQkJCUJDODI4M0FCMTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZS54Y2NvbmZpZyAq
LywKKwkJCQk0MTg4QzE1NzIxMTM3ODUyMDAxMkFCQ0QgLyogUGF5bWVudC1PU1gtc2FuZGJveC5l
bnRpdGxlbWVudHMgKi8sCisJCQkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnICovLAogCQkJCUExRUREMkRCMTg4NEI5NjQwMEJCRkU5OCAvKiBQbHVn
aW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNGMjE2QjRGQzUzMDBBMjc4RkUg
LyogUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNGNDE2QjRGQzUzMDBB
Mjc4RkUgLyogUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZyAqLywKQEAgLTQ5MzUsNiArNDk4OCw3
IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAzNDAwREQ3QzY4IC8qIEdhbWVwYWQgKi8sCiAJCQkJMkRB
OTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAz
MzdCQUIgLyogbWFjICovLAorCQkJCTUxMThFOTlEMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50
ICovLAogCQkJCTFBQUUwNThDMTI3OURDRDQwMDg1MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJE
MkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFCRjQz
NzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhICovLApAQCAtNjIxMSw2ICs2MjY1LDMw
IEBACiAJCQlwYXRoID0gUmVzb3VyY2VzL21hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTM5MTM2MDAxMjE5Mzc2MDgwMDU2NDkyQSAvKiBTdG9yYWdlICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOTEzNjAwRTIxOTM3NjA4MDA1
NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLywKKwkJCQkzOTEzNjAwNTIx
OTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmggKi8sCisJCQkJMzkx
MzYwMTEyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdl
cy5pbiAqLywKKwkJCQkzOTEzNjAwNzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5jcHAgKi8sCisJCQkJMzkxMzYwMEEyMTkzNzYwODAwNTY0OTJBIC8q
IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLywKKwkJCQkzOTEzNjAxMjIxOTM3
NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCAqLywKKwkJCQkzOTEz
NjAwNDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmggKi8sCisJ
CQkJMzkxMzYwMDIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAg
Ki8sCisJCQkJMzkxMzYwMDMyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oICovLAorCQkJCTM5MTM2MDA5MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYwMEIyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOTEzNjAxMDIxOTM3NjA4
MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLywKKwkJCQkzOTEz
NjAwNjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gKi8sCisJCQkJMzkxMzYwMDgyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXT3JpZ2lu
VGFibGUuY3BwICovLAorCQkJCTM5MTM2MDBEMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdp
blRhYmxlLmggKi8sCisJCQkJMzkxMzYwMEYyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOTEzNjAwQzIxOTM3NjA4MDA1NjQ5MkEg
LyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCSk7CisJCQlwYXRoID0g
U3RvcmFnZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQxMzA3NTk3MURF
ODRFRDcwMDM5RUM2OSAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtNjQwOCw2ICs2NDg2LDggQEAKIAkJNTExOEU5OTgxRjI5NTI1OTAwM0VG
OUY1IC8qIFN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTUxMThFOTlFMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgKi8sCisJCQkJNTExOEU5OUYxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJNDEzMUYzRDAxRjk2QkNDODAw
NTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgKi8sCiAJCQkJNDEzMUYzQ0Ux
Rjk2QTQ5NTAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oICovLAogCQkJCTQx
MzFGM0NGMUY5NkE5MzYwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2Fn
ZXMuaW4gKi8sCkBAIC02NTMwLDYgKzY2MTAsMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyog
UGF5bWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovLAor
CQkJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8s
CisJCQkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnQ7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0aGVudGlj
YXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjU4
Niw2ICs2Njc2LDIwIEBACiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNzICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QjE5
MEY3OTFDMDA3MzE2NTggLyogaW9zICovLAorCQkJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAv
KiBQYXltZW50UHJvY2Vzcy5jcHAgKi8sCisJCQkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRQcm9jZXNzLmggKi8sCisJCQkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8qIFBh
eW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovLAorCQkJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JF
OSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTFFMzUxRkUx
ODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8sCisJ
CQkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50UHJvY2VzczsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUzOUJENUIyMURBREIwQkEwMEYyRTRF
MSAvKiBjYXB0dXJlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTY5ODksNiArNzA5Myw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdv
cmtpbmcuc2IgKi8sCisJCQkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuUGF5bWVudHMuc2IgKi8sCiAJCQkJQTc4Q0NERDcxOTNBQzlFMzAwNUVDQzI1IC8qIGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLywKIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUND
MjUgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiICovLAogCQkJKTsKQEAgLTcxOTMs
NiArNzI5OCw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1hYyAqLywKIAkJ
CQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkzMUEyRUM0MDE0
ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKKwkJCQk1MTdERDVCQjE4MERBN0M0
MDA4MTY2MEIgLyogUGF5bWVudCAqLywKIAkJCQkxQUVGQ0MwNTExRDAxRjM0MDA4MjE5RDMgLyog
UGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5QjQyMDAwNkUzRkUgLyogUmVtb3RlTGF5ZXJU
cmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywK
QEAgLTgyODQsNiArODM5MCwxMCBAQAogCQkJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBO
ZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLywKIAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAx
RUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1l
c3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1
MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
Ki8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQTI5QTI1MUNCRUI2N0EwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNjFDQkVC
NjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKQEAgLTg2MDIsNiArODcxMiwxNCBAQAogCQkJbmFtZSA9IFBERjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBp
b3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVG
MzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLywKKwkJCSk7CisJ
CQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ4OUQy
ODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTkwNjcsNiArOTE4NSwxMCBAQAogCQkJCTFBQzc1MzdDMTgzQTlG
REIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZC
MDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1MTE4RTlBMTFGMjk1MzI2MDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUE5MUYyOTU5
NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzFFMTIzQkEyMEExMTU3MzAwMjY0
NkY0IC8qIFBERkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NC
RkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMyOThE
QTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMDA1MSw2ICsxMDE3Myw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owog
CQkJZmlsZXMgPSAoCiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI1MjE5
M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNl
cyAqLywKIAkJCQlFMTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBj
b20uY2lzY28ud2ViZXgucGx1Z2luLmdwYzY0LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5
NjlDMTFFNTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2Vz
ICovLApAQCAtMTA2NTQsNiArMTA3NzcsMTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhB
RkQgLyogTlBSdW50aW1lT2JqZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4
MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ5MkE3OTQyMTJCNkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNz
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXlt
ZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNC
RTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RBMjlBMjgxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCAyYmZhZWU0NzZlMWY0YmNjY2RiMjY2
MGZlNWQ4ZTY2YmQ2NzRhM2Q3Li41ZGZjNTU1MDBjNTY5MzgxNDVjYjYzYmY3NmQ1ZDhiNzY5Mzkw
YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVsZVN0b3JhZ2VK
b2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHNjaGVk
dWxlUGF5bWVudEpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwogCiAg
ICAgdm9pZCBydW5PckRlbGF5VGFza0ZvckltcG9ydChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0
YXNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3
ZWU3ODg5NjQ4NzliOWI5NzZkYjQ5YWUwM2VhMmQ1YmEwZDQ2MDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKKworCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TV0Nv
bnRleHRNYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBB
TDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRo
aXMpKQoreworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBt
X2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30KKwordm9p
ZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJiZTIwYWJmNmJkMzQ2YzZiMWRjMmU3
MTVlMzEwZWQzZDVmMzI1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1NXU2VydmVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHBy
aXZhdGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNz
YWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIo
KTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3MGNlOGVh
NGVlZTgwOTZlMDRiM2VlNjdkMWY0Y2YyMTI3MzUwZGFjLi5iNDljNjMxNmU1YTZhNzQxOGViN2Ix
ODdmNThjNzNhZDY3ZTg5NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCkBAIC00Myw2ICs0Myw5IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0
aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAj
aW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKQEAgLTY5LDYgKzcyLDkg
QEAKICNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
U3RyZWFtLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgpAQCAtMTIxNyw2ICsx
MjIzLDUwIEBAIFdlYkxvYWRlclN0cmF0ZWd5JiBXZWJQcm9jZXNzOjp3ZWJMb2FkZXJTdHJhdGVn
eSgpCiB7CiAgICAgcmV0dXJuIG1fd2ViTG9hZGVyU3RyYXRlZ3k7CiB9CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb25DbG9zZWQoV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7
CisgICAgQVNTRVJUKG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOworICAgIEFTU0VS
VChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOworCisgICAg
bV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7Cit9CisKK1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKQoreworICAgIGlm
ICghbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbikgeworICAgICAgICBJUEM6OkF0dGFj
aG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyOworCisgICAgICAgIGlmICghcGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGluaXRpYWxTZXNzaW9uSUQpLCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29k
ZWRDb25uZWN0aW9uSWRlbnRpZmllciksIDApKSB7CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCisgICAgICAgICAgICAvLyBHVEsrIGFuZCBXUEUgcG9ydHMgZG9uJ3QgZXhpdCBv
biBzZW5kIHN5bmMgbWVzc2FnZSBmYWlsdXJlLgorICAgICAgICAgICAgLy8gSW4gdGhpcyBwYXJ0
aWN1bGFyIGNhc2UsIHRoZSBwYXltZW50IHByb2Nlc3MgY2FuIGJlIHRlcm1pbmF0ZWQgYnkgdGhl
IFVJIHByb2Nlc3Mgd2hpbGUgdGhlCisgICAgICAgICAgICAvLyBjb25uZWN0aW9uIGlzIGJlaW5n
IGRvbmUsIHNvIHdlIGFsd2F5cyB3YW50IHRvIGV4aXQgaW5zdGVhZCBvZiBjcmFzaGluZy4KKyAg
ICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzMzQ4LgorICAgICAgICAgICAgZXhpdCgwKTsKKyNlbHNlCisgICAgICAgICAgICBDUkFTSCgp
OworI2VuZGlmCisgICAgICAgIH0KKworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAg
ICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBl
bmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7CisjZWxp
ZiBPUyhEQVJXSU4pCisgICAgICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcihlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKKyNlbGlm
IE9TKFdJTkRPV1MpCisgICAgICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcihlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIuaGFuZGxlKCkpOworI2Vs
c2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICAgICAgaWYgKCFJ
UEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkK
KyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlv
bklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lk
IFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBiZGEwMDM2N2QyNDkzN2EzZDNmOTQ1
MGRhNmM0ZjU0NDkxYTE1ZTljLi4xYzZmZGFiOWRlNGJmYmVmZGNiN2FlOTU5NDJlMWE3OTcyZmNm
Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4LDYgKzk4LDkg
QEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2ViUGFn
ZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBl
Owogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdyb3Vw
RGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2ViUlRDTmV0d29y
ayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIGVu
c3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxT
ZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lk
IHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDMxLDYgKzQzOSwxMCBAQCBw
cml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk+
IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjg4LDYgKzI4OCw3IEBA
IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRP
Ul9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0g
RU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BE
RktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg0
ZTViMzZlN2E5YzRlYTBjYmE4YWNiM2IxN2NlOGU4NzE4M2FiYjYuLmQwZmI2ZGNlYzkxMmJjMGNm
YWMwMzFkMWU5YzJlODFlZDMwN2ZhZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhh
cXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3
aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE4LTExLTA3
ICBDYWlvIExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBbQmlnSW50XSBB
ZGQgc3VwcG9ydCB0byBCaWdJbnQgaW50byBWYWx1ZUFkZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFh
NWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0y
ODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5B
QkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJP
Q0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNU
OwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19Q
TEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXggM2YxYTYy
ODg2ODIxMDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4uYzM0NmFiZmQ2MjBmOTM1NTVmZDgw
MDVjOGExYjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpAQCAt
MTQ0LDYgKzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNz
ZXNOb3RMYXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlZCBwcm9jZXNzIHBvb2wgZXhp
c3RzIHNvIHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2UncmUgYWJvdXQgdG8gZG8gd29yayB3
aXRoIGl0LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFByb2Nlc3NQb29sID0gW1dLUHJvY2Vz
c1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3No
YXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1Rf
RVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwog
CiAgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0
b3JlXTsKQEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENo
aWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGFyZ2V0VVJMLnBhdGhdKTsKIAor
ICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vz
c0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bv
b2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4
IDRjYjhmYTk3YTY2YzhhN2ZkODQ1OWVlZDBhNDU4NDJiMmI4MWZhODMuLmJkYWEyYzlmZWE5NDA3
NTk0MTQ2NDQxOWFhY2EzMzVkNTM5MWM4OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0x
MDQ2LDYgKzEwNDYsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTZXJ2aWNlV29ya2VyUHJvY2Vz
c0NyZWF0aW9uKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCisgICAgLy8gTWFrZSBzdXJlIHBheW1lbnQgcHJvY2VzcyBpcyBub3QgbGF1
bmNoZWQuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9j
ZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IGxvYWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRpZCBub3Qgc3RhcnQgdGhlIHNlcnZpY2Ugd29y
a2VyIHByb2Nlc3MuCiAgICAgRVhQRUNUX0VRKDF1LCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRp
b24ucHJvY2Vzc1Bvb2wuX3dlYlByb2Nlc3NDb3VudCk7CiAKQEAgLTExMzAsNiArMTEzMyw5IEBA
IFRFU1QoU2VydmljZVdvcmtlcnMsIEhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25CaXQpCiAg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
KyAgICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gcGF5bWVudCBwcm9jZXNzIGNyZWF0ZWQuCisgICAg
RVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5
bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAgIC8vIExldCdzIHVzZSB0aGUgd2ViIHNpdGUg
ZGF0YSBzdG9yZSB0aGF0IGhhcyBzZXJ2aWNlIHdvcmtlciBhbmQgbG9hZCBhIHBhZ2UuCiAgICAg
bmV3Q29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW2NvbmZpZ3VyYXRpb24g
d2Vic2l0ZURhdGFTdG9yZV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDhkYjU2
OTBiMzk0MzEwOTRiNTM1OGQwZDJhZmI4NzY5OWQyMDZkYTAuLmQ2MmM2MGY3OGNjNTMwYTM1YWM3
M2FlOGE0ODRkNTYwOGIxMTdkN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzMz
LDYgKzMzMyw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIHZvaWQgdGVybWluYXRl
TmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
KCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4
IGRmMWFkYWYwZTBhMDIyZDgzYmQ5ZDI5NzQ0ZGIyMjllNDc3ZTU5NTQuLmVlOTQ0ZjkwNGJkMDYw
YTQzMGUxNWI2MGRkNTFiMDI4NjlkMzExODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTI1NSw2ICsxMjU1LDEy
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKQogICAg
IFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxw
dHIsIG51bGxwdHIpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
IikpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0
KCksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBzdGF0aWMgdW5zaWduZWQgbmV4dFVJU2NyaXB0
Q2FsbGJhY2tJRCgpCiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBGaXJzdFVJ
U2NyaXB0Q2FsbGJhY2tJRDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZjViMmMyMGQyMGI0ZDkzOWFkYjFkZDAyMTBmM2Qw
ZWUyN2YwNDVkOC4uMDFiNGJkNjJlZTI0MGQ1MGQ1MTg5NWEwNDdjNDZjMDA0M2FlNzJjMCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKQEAgLTQ0Niw2ICs0NDYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdv
cmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOwor
ICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxs
U2Vzc2lvbkNyZWRlbnRpYWxzKEpTVmFsdWVSZWYpOwogICAgIHZvaWQgY2FsbERpZFJlbW92ZUFs
bFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IGQ1NWE5ZmM4MWY5MzIyYzlhNTg5YzJhMDVjNGUzZTdlOTc0
ZTQzNTYuLmEyNTk3NTZmMTNjMDE3YTZlODkwOGE4ZjZhZDk3MWEwYTkxZmUzOWYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDY0LDYgKzEwNjQsMTUg
QEAgY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5k
aWYKIH0KIAorY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSgp
Cit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QYXlt
ZW50IjsKKyNlbHNlCisgICAgcmV0dXJuICJQYXltZW50IHByb2Nlc3Mgbm90IGF2YWlsYWJsZSBv
biBhbnl0aGluZyBidXQgaU9TIjsKKyNlbmRpZgorfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpz
ZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykKIHsKICAgICBXS0NvbnRleHRT
ZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcocGxhdGZvcm1Db250
ZXh0KCksIGFsbG93cyk7CkBAIC0xNDg5LDYgKzE0OTgsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9p
ZCAqY2wKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwogfQogCit2b2lkIFRlc3RD
b250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVy
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5wYXltZW50UHJvY2Vzc0RpZENyYXNo
KCk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVLZXlEb3duTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBi
b29sIHN5bmNocm9ub3VzKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJLZXkiKSk7CkBAIC0xODIy
LDYgKzE4MzYsMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFz
aCgpCiAgICAgZXhpdCgxKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nl
c3NEaWRDcmFzaCgpCit7CisgICAgcGlkX3QgcGlkID0gV0tDb250ZXh0R2V0UGF5bWVudFByb2Nl
c3NJZGVudGlmaWVyKG1fY29udGV4dC5nZXQoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICIjQ1JB
U0hFRCAtICVzIChwaWQgJWxkKVxuIiwgcGF5bWVudFByb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0
PGxvbmc+KHBpZCkpOworICAgIGV4aXQoMSk7Cit9CisKIC8vIFdLUGFnZU5hdmlnYXRpb25DbGll
bnQKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYg
cGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKQEAgLTI2MjEsNiArMjY0MiwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjp0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tDb250ZXh0VGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOwogfQogCit2b2lkIFRlc3RDb250
cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tDb250ZXh0VGVybWlu
YXRlUGF5bWVudFByb2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOworfQorCiAjaWYgIVBMQVRGT1JN
KENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBU
ZXN0SW52b2NhdGlvbiYpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
aW5kZXggNjI1YTViNTQ2NTkyMmM3YmFmZDk0YjdhY2M4MTI3NjU3YjhiYzkxZi4uN2YwZjc1YjRk
YmFmNWQ5MWNmNDUwNjc5MTU2NTQzNWZjMzVmODQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaApAQCAtMTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogd2ViUHJvY2Vzc05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogbmV0
d29ya1Byb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRhdGFiYXNlUHJvY2Vz
c05hbWUoKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogcGF5bWVudFByb2Nlc3NOYW1lKCk7CiAK
ICAgICBXb3JrUXVldWVNYW5hZ2VyJiB3b3JrUXVldWVNYW5hZ2VyKCkgeyByZXR1cm4gbV93b3Jr
UXVldWVNYW5hZ2VyOyB9CiAKQEAgLTI1Miw2ICsyNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAg
IHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7CiAKQEAgLTM1Nyw2ICszNTksOCBA
QCBwcml2YXRlOgogICAgIC8vIFdLQ29udGV4dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdv
cmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBu
ZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CisgICAgc3RhdGljIHZvaWQgcGF5bWVudFByb2Nlc3NE
aWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIHBheW1lbnRQcm9j
ZXNzRGlkQ3Jhc2goKTsKIAogICAgIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKICAgICBzdGF0
aWMgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBX
S1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggZDgxZTU4YjM5MTdhMjNiYzMxZDVkNzY4ZWJhODFkZjBm
MGVhNzJhZC4uNjVlOWM1NjkxZDVhNTZkMGY2MjJjNTY3NTBmYTMwNDZlNTY4MDExNSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0NDcsNiArMTQ0Nywx
MiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3lu
Y2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9k
eSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVQYXltZW50
UHJvY2VzcygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZU5ldHdvcmtQ
cm9jZXNzIikpIHsKICAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CiAgICAgICAgIFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDJmZGE0YjE2M2IyMWVkMWMyZjkyMTIyYzc2MDMxMjQyZDBiNGM3YzkuLmU2NzRjOGM2YTdmNDUz
NmIyM2MyODE3YTJkZmRjNzM4MjUwNjk0YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0x
MS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50
IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lz
dGVudC1pbXBvcnRTY3JpcHRzLmh0bWw6CisKIDIwMTgtMTEtMDcgIEp1c3RpbiBNaWNoYXVkICA8
anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIENTUyBQYWludGluZyBBUEkgc2hv
dWxkIHBhc3Mgc2l6ZSwgYXJndW1lbnRzIGFuZCBpbnB1dCBwcm9wZXJ0aWVzIHRvIHBhaW50IGNh
bGxiYWNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwKaW5kZXggMDhhOWE1OTYy
MzIxMDRiODY1ZTNhYjJkZjg1YTliOTQ1N2VjODRlOS4uNmM5ZGNmMzFmOTk4YzZiMjhmYmNhZDhi
MjU3ZjQzODljNWQ1YjZjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbApA
QCAtMzYsOCArMzYsMTAgQEAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgewogICAgIGxldCByYW5k
b21JZCA9IGF3YWl0IGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3JrZXIpOwogCiAgICAgaWYgKCF3
aW5kb3cubG9jYXRpb24uaGFzaC5sZW5ndGgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RS
dW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKKyAgICAgICAgfQogICAgICAgICBhd2FpdCB3YWl0
Rm9yKDEwMCk7CiAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiArPSAiP3Rlc3QjIiArIHJhbmRvbUlk
OwogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354230</attachid>
            <date>2018-11-08 02:45:51 -0800</date>
            <delta_ts>2018-11-08 15:32:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181108024550.patch</filename>
            <type>text/plain</type>
            <size>149028</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmZiZmI1NzRmNTQyZTA0NDU3YjRmNjc3MTA1OWIyODZjNjU0MTQwLi43YjcyYWFjMGZlODI3YzIw
YjM0ZDczYjY4MDU4YTI4MTY1N2Y1NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0wNyAgQ2FpbyBMaW1hICA8dGlj
YWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gQWRkIHN1cHBvcnQgdG8gQmln
SW50IGludG8gVmFsdWVBZGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDMyMGVlMzQ4NTQ3MzY0ZjIzMTYyZGQw
ZDE1NWYyMzkyYzEzOTMyLi43MzUxODcyMGNlMzExOWUwYjc1Y2ZlM2U2YjgyZjEyNzAxYmM0MmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzOgorCiAyMDE4LTExLTA3ICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVk
QGFwcGxlLmNvbT4KIAogICAgICAgICBDU1MgUGFpbnRpbmcgQVBJIHNob3VsZCBwYXNzIHNpemUs
IGFyZ3VtZW50cyBhbmQgaW5wdXQgcHJvcGVydGllcyB0byBwYWludCBjYWxsYmFjawpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2IwZmVmNmU1Njk1NWU1ZTM5NWVmOGU2NjhiMWQ0MmUwYjQ4NzQ2Yy4u
MDJjOWZlNGE3YjcyNzlhNjliNzdmNDg5YTk0ZDc5ZjlkMTA0ODRkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMDYgIEp1c3Rp
biBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBFeHBlcmlt
ZW50YWwgcHJvdG90eXBlIGZvciBXZWJHUFVSZW5kZXJQaXBlbGluZSBhbmQgV2ViR1BVU3dhcENo
YWluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGIwYmQ0ZjZlZGZhYTU1YmYxYTM5MzYwNTIzMzhiYWQ1N2JlNDkwYzMu
LmI3OWMyNzM2MmVlMjJmZjQ5YzQzMGJmMGMwNTA3MDYyNDFhYmE3NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIzIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29t
PgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWc6CisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHM6IEFkZGVkLgor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnOiBBZGRlZC4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzOjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6UGF5bWVu
dFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6flBheW1lbnRQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjplbnN1cmVQYXRoRXhpc3RzKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnBvc3RQYXltZW50VGFzayk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4dFBheW1lbnRUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAg
ICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaDogQWRkZWQuCisgICAgICAgICog
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlv
bik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXlt
ZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFs
aXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9DaGls
ZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRU
ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRleHRHZXRQYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgor
ICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgorICAg
ICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6Z2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0U3VwcGxlbWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0U3VwcGxlbWVu
dDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQ
cm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRBbnlQ
YWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rpbmcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxOC0xMS0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQ3Jhc2ggd2hlbiBydW5uaW5nIHdp
dGggc2FuZGJveCBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMzVlMjYz
MDJhNzc3YTI3YzkwODcxNDk4NTJmMmFhOTZjNDcyZTAwMi4uOTRmNWU2N2ZhNjc5M2RlYjM0NzZm
YzdjZWJjZThhNjM5YzM0OWYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgor
CisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTA2ICBKdXN0aW4gRmFuICA8anVz
dGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3Rv
dHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJj
ZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3
MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4Yzgy
NDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9O
U18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVO
QUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZL
SVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2Iy
Y2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCkBAIC0yODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFM
T05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7
CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAor
RU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BE
RktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1
ZjY2ODI5ZmJkNjExLi4xMmI1MDkzYzhiMDdiM2Q2ODllNjg0YjVmODk0MWY4OTc4NTUwYzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYg
KzQzLDkgQEAKIC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIg
KCVAKSIgPSAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0
aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUu
ICovCisiJUAgUGF5bWVudCIgPSAiJUAgUGF5bWVudCI7CisKIC8qIFZpc2libGUgbmFtZSBvZiB0
aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8K
ICIlQCBXZWIgQ29udGVudCIgPSAiJUAgV2ViIENvbnRlbnQiOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApp
bmRleCBmMTYxNTQyNzMyNmQ4OGJhYWRiNWU5M2MyM2RjYTc1NDNiMTgwNGM1Li43Yjc0MWUxMGE3
MmYyMmE3ODA3ZDRlNzczNjM4NzljMmE0MDBkOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTMx
LDcgKzMxLDkgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUveDExIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BheW1lbnQiCiAgICAgIiR7V0VC
S0lUX0RJUn0vU2hhcmVkL1dlYnNpdGVEYXRhIgorICAgICIke1dFQktJVF9ESVJ9L1BheW1lbnRQ
cm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2VzcyIKICAgICAiJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvQyIKQEAg
LTQ3LDYgKzQ5LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZSIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAiJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrIgpAQCAtMTIxLDYgKzEyNCw5IEBAIHNldChXZWJLaXRfTUVTU0FH
RVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQu
bWVzc2FnZXMuaW4KIAorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2Vz
LmluCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3Nh
Z2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAg
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMTUxLDYg
KzE1Nyw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9Q
YXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
MjEsNiArMjI5LDEwIEBAIHNldChOZXR3b3JrUHJvY2Vzc19MSUJSQVJJRVMKICAgICBXZWJLaXQK
ICkKIAorc2V0KFBheW1lbnRQcm9jZXNzX0xJQlJBUklFUworICAgIFdlYktpdAorKQorCiBzZXQo
UGx1Z2luUHJvY2Vzc19MSUJSQVJJRVMKICAgICBXZWJLaXQKICkKQEAgLTQ0MCwxMCArNDUyLDIw
IEBAIGlmIChXZWJLaXRfTmV0d29ya1Byb2Nlc3NfT1VUUFVUX05BTUUpCiAgICAgc2V0X3Rhcmdl
dF9wcm9wZXJ0aWVzKE5ldHdvcmtQcm9jZXNzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgJHtXZWJL
aXRfTmV0d29ya1Byb2Nlc3NfT1VUUFVUX05BTUV9KQogZW5kaWYgKCkKIAorYWRkX2V4ZWN1dGFi
bGUoUGF5bWVudFByb2Nlc3MgJHtQYXltZW50UHJvY2Vzc19TT1VSQ0VTfSkKK0FERF9XRUJLSVRf
UFJFRklYX0hFQURFUihQYXltZW50UHJvY2VzcykKK3RhcmdldF9saW5rX2xpYnJhcmllcyhQYXlt
ZW50UHJvY2VzcyAke1BheW1lbnRQcm9jZXNzX0xJQlJBUklFU30pCitpbnN0YWxsKFRBUkdFVFMg
UGF5bWVudFByb2Nlc3MgREVTVElOQVRJT04gIiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iKQorCitp
ZiAoV2ViS2l0X1BheW1lbnRQcm9jZXNzX09VVFBVVF9OQU1FKQorICAgIHNldF90YXJnZXRfcHJv
cGVydGllcyhQYXltZW50UHJvY2VzcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FICR7V2ViS2l0X1Bh
eW1lbnRQcm9jZXNzX09VVFBVVF9OQU1FfSkKK2VuZGlmICgpCisKIGlmIChDT01QSUxFUl9JU19H
Q0NfT1JfQ0xBTkcpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYktpdCAtV25v
LXVudXNlZC1wYXJhbWV0ZXIpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYlBy
b2Nlc3MgLVduby11bnVzZWQtcGFyYW1ldGVyKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9G
TEFHUyhOZXR3b3JrUHJvY2VzcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCisgICAgV0VCS0lUX0FE
RF9UQVJHRVRfQ1hYX0ZMQUdTKFBheW1lbnRQcm9jZXNzIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikK
IGVuZGlmICgpCiAKICMgRklYTUU6IE1hYyBzaG91bGQgYnVpbGQgYSBwbHVnaW4gcHJvY2Vzcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwpp
bmRleCA0MDVkNjNiYmIwMTJhMzllNjVkYThiYThiODkwODM1OGEyNThiZDZjLi5lZWI3YTI2YWRh
MTQ2M2QyYWQ1YThkY2ZkYjIwNmE0ZDYzY2YzZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCkBAIC0xMTEsNiArMTExLDggQEAgV0tf
SEFWRV9DT1JFX1BSRURJQ1RJT05bc2RrPW1hY29zeCpdW2FyY2g9aTM4Nl0gPSBOTzsKIFdLX0NP
UkVfUFJFRElDVElPTl9ERUZJTkVTID0gJChXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU18kKFdL
X0hBVkVfQ09SRV9QUkVESUNUSU9OKSk7CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU19ZRVMg
PSBIQVZFX0NPUkVfUFJFRElDVElPTjsKIAorV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFN
RSA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9E
VUNUX05BTUUgPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfJChXS19VU0VfTEVH
QUNZX1NUT1JBR0VfU0VSVklDRV9OQU1FKSk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9O
QU1FXyA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyk7CiBXS19TVE9SQUdF
X1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUw
ODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1l
bnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODZhYTcxNWFl
MGVmMmVkODQwNzE0M2M5Y2ZlYjBhNjIxZjE1Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cwpA
QCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRw
Oi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJz
aW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5jb20uYXBwbGUucm9vdGxlc3MucGF5bWVudC5XZWJL
aXRQYXltZW50U2FuZGJveDwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29u
ZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZp
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42M2EzNzRlMGY1ZDhhYmM1ZDM4NDJkOWJlMDZhZDcwM2RiMTRmMDk1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2Vy
dmljZS54Y2NvbmZpZwpAQCAtMCwwICsxLDM0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisv
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dL
X1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19QQVlNRU5UX0VOVElU
TEVNRU5UU19SRVNUUklDVEVEX1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRi
b3guZW50aXRsZW1lbnRzOworCitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05P
ID0gJChXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JFU1RSSUNU
RURfRU5USVRMRU1FTlRTKSk7CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJQlJBUllf
VkFMSURBVElPTl9DT0RFX1NJR05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdLX1BBWU1F
TlRfU0VSVklDRV9QUk9EVUNUX05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQo
UFJPRFVDVF9OQU1FKTsKK0lORk9QTElTVF9GSUxFID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IGU0OTIxNTFlMDRiNjNkNGY4ZjA2YzA5MDMxNmU1MjAxYTFiYjhlOWUuLmFiOGZi
Yzk5ZDU5MzE3YTc3NDc4MjllZjg4NTdiODQzZTBhYjZkYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTM3LDYgKzM3LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9TaGFy
ZWQvQVBJL0NvY29hIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbiBcCiAg
ICAgJChXZWJLaXQyKS9TaGFyZWQvbWFjIFwKKyAgICAkKFdlYktpdDIpL1BheW1lbnRQcm9jZXNz
IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGVQYXkgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
QXV0b21hdGlvbiBcCkBAIC03Myw2ICs3NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0Mikv
VUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwK
KyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QYXltZW50IFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUg
XAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTMxLDYgKzEzMyw5IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIg
XAogICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCisgICAgUGF5bWVu
dFByb2Nlc3MgXAorICAgIFBheW1lbnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uIFwKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCiAgICAgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODMxYzUxMDM5ZGJkZjVmNzMzYjVlZGFjMjkxZDU3YWRhNjMwNzZiYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
Y3BwCkBAIC0wLDAgKzEsMTk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldl
YnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVuY29kaW5n
Lmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0Fn
Z3JlZ2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGF5
bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2VzczsKKyAgICByZXR1cm4gcHJvY2Vz
czsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkKKyAgICA6IG1fcXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudFByb2Nlc3MiKSkKK3sK
KyAgICAvLyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhlIHRleHQg
ZW5jb2RpbmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBh
IGJhY2tncm91bmQgdGhyZWFkIG5lZWRzIGl0LgorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhwbGljaXQg
d2F5IG9mIGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGluZy4KKyAg
ICBVVEY4RW5jb2RpbmcoKTsKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcygp
Cit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRU
ZXJtaW5hdGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q2hp
bGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyhjb25z
dCBTdHJpbmcmIHBhdGgpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAg
ICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhwYXRoKSkKKyAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gbWFrZSBhbGwgZGlyZWN0b3JpZXMgZm9yIHBhdGggJyVzJyIsIHBh
dGgudXRmOCgpLmRhdGEoKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OnBvc3RQYXltZW50
VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BheW1lbnRUYXNrTXV0ZXgpOworCisg
ICAgbV9wYXltZW50VGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykpOworCisgICAgbV9xdWV1ZS0+
ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgcGVyZm9ybU5leHRQYXltZW50VGFzaygpOworICAg
IH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4dFBheW1lbnRUYXNrKCkK
K3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIENyb3NzVGhyZWFkVGFz
ayB0YXNrOworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wYXltZW50VGFza011
dGV4KTsKKyAgICAgICAgQVNTRVJUKCFtX3BheW1lbnRUYXNrcy5pc0VtcHR5KCkpOworICAgICAg
ICB0YXNrID0gbV9wYXltZW50VGFza3MudGFrZUZpcnN0KCk7CisgICAgfQorCisgICAgdGFzay5w
ZXJmb3JtVGFzaygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luKQoreworI2lmIFVTRShVTklYX0RP
TUFJTl9TT0NLRVRTKQorICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWly
ID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oKTsKKyAgICBtX3Bh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmNyZWF0ZShzb2NrZXRQYWlyLnNlcnZlcikpOworICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudChzb2NrZXRQYWly
LmNsaWVudCkpLCAwKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAvLyBDcmVhdGUgdGhlIGxpc3Rl
bmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQgPSBNQUNIX1BPUlRfTlVM
TDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1B
Q0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7CisgICAgaWYgKGtyICE9IEtF
Uk5fU1VDQ0VTUykgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtYWNo
IHBvcnQsIGVycm9yICV4Iiwga3IpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIC8v
IENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIG1fcGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLmFwcGVuZChQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
KElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSkpOworCisgICAgSVBD
OjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KGNsaWVudFBvcnQpLCAwKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXI7CisgICAgaWYg
KCFJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckFuZENsaWVudElkZW50aWZpZXJzKHNlcnZl
cklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBzZXJ2ZXIgYW5kIGNsaWVudCBpZGVudGlmaWVycyIpOworICAgICAgICBD
UkFTSCgpOworICAgIH0KKworICAgIGF1dG8gY29ubmVjdGlvbiA9IFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpjcmVhdGUoc2VydmVySWRlbnRpZmllcik7CisgICAgbV9wYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFdURk1vdmUoY29ubmVjdGlvbikpOworCisgICAg
SVBDOjpBdHRhY2htZW50IGNsaWVudFNvY2tldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5
OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjbGllbnRTb2NrZXQpLCAw
KTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCisjaWYgIVBMQVRG
T1JNKENPQ09BKQordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKKyAgICB7CisjaWYgT1MoTElO
VVgpCisgICAgICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6c2luZ2xldG9uKCk7CisgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRM
b3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwsIFN5bmNocm9ub3VzKSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogbm8gbG93TWVtb3J5SGFuZGxlcigpIGltcGxlbWVudGVkIGZvciBQYXlt
ZW50UHJvY2VzcyBjdXJyZW50bHkuCisgICAgICAgICAgICAvLyBCdXQgYXQgbGVhc3QgZGVmaW5l
IHRoaXMgc2V0TG93TWVtb3J5SGFuZGxlcigpIGVtcHR5IHNvIHBsYXRmb3JtUmVsZWFzZU1lbW9y
eSBpcyBjYWxsZWQuCisgICAgICAgIH0pOworICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aW5zdGFsbCgpOworI2VuZGlmCisgICAgfQordm9pZCBQYXltZW50UHJvY2Vzczo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisjZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MDJjNzg2OTAzOTNlYTYzZDkzZTg2ZGI2ODFkMGNkZTlmZDY5Yzll
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
UHJvY2Vzcy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRl
c3Ryb3llZDxQYXltZW50UHJvY2Vzcz47CitwdWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9j
ZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nl
c3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsK
KworICAgIHZvaWQgcG9zdFBheW1lbnRUYXNrKENyb3NzVGhyZWFkVGFzayYmKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8g
Q2hpbGRQcm9jZXNzCisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxp
emVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBN
ZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25z
dCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZvaWQgY3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEKTsKKyAgICAKKyAgICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdvcmsgcXVl
dWUgdGhyZWFkIG9ubHkKKyAgICB2b2lkIHBlcmZvcm1OZXh0UGF5bWVudFRhc2soKTsKKyAgICB2
b2lkIGVuc3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJik7CisKKyAgICBWZWN0b3I8UmVmPFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPj4gbV9wYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbnM7CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworCisgICAgRGVxdWU8Q3Jvc3NU
aHJlYWRUYXNrPiBtX3BheW1lbnRUYXNrczsKKyAgICBMb2NrIG1fcGF5bWVudFRhc2tNdXRleDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU3NmM0MjE3MDU2MDhlNjViNzFh
MWQ5MGRjNmM2ZTU0ZDAzNTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
eworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTI2ODk2MjBhZjI0N2U1NmU3YTc4N2VkNDVm
NGEyODZlMGQ5OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDg4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworfQorCitQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9u
SWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIC8vIFVzZSB0aGlzIGZsYWcgdG8gZm9yY2Ugc3lu
Y2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hyb25vdXMgbWVzc2FnZXMg
aW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUgV2ViUHJvY2VzcyB3b3Vs
ZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3YWl0aW5nIGZvciBhIHN5
bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1lbnQgcHJvY2Vzcywgd2hp
Y2ggd291bGQgYmUgdW5zYWZlLgorICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdl
c0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNz
YWdlKHRydWUpOworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZl
UGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9u
KTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmMwMWZhZjg1YTVl
NTUxY2FkYmU2NzhlOTMxYjhjNGJkYmYyZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3Nh
Z2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5QYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAw
OyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
NDMyMjU5NjYyNjkzNTkzOTE2ZTNkOTRjYTk1NGZkNTA5NzlhNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAt
PiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7Cit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQ
cm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFBy
b2Nlc3NJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE2YWFlYjU2YjI0YzBhMzZjZmU2NzE1MjhkOWZjZWZh
ZWQ2ODliNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
aW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExB
VEZPUk0oSU9TKQorI2ltcG9ydCAiUGF5bWVudFByb2Nlc3MuaCIKKworI2ltcG9ydCAiU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgorCisjZGVmaW5lIEVOQUJMRV9NQU5VQUxfREFU
QUJBU0VfU0FOREJPWElORyAwCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJv
Y2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQoreworI2lm
IEVOQUJMRV9NQU5VQUxfREFUQUJBU0VfU0FOREJPWElORworICAgIC8vIE5lZWQgdG8gb3ZlcnJp
ZGUgdGhlIGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElE
LgorICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNz
Ok5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3IildOworICAgIHNhbmRib3hQYXJhbWV0ZXJz
LnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhGb3JSZXNv
dXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiIG9mVHlwZTpAInNiIl0pOworICAgIENo
aWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRl
cnMpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKQorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBw
bGUuV2ViS2l0LlBheW1lbnRzLnNiIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFBy
b2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzdj
YmZmOGNkYjc4OTY0Yzc2NGU0ZTJlNGRmZmQ2MTAzMjg1OWIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuUGF5bWVudHMuc2IKQEAgLTAsMCArMSw0NyBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
OyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0
aWFsLXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRh
dGEpCisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2Vy
dmljZS1uYW1lLXByZWZpeCAiIikpCisKKyhkZW55IGxzb3BlbikKKworKGFsbG93IGZpbGUtcmVh
ZCogZmlsZS13cml0ZSogKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3Jp
dGUiKSkKKworKGRlbnkgc3lzY3RsKikKKyhhbGxvdyBzeXNjdGwtcmVhZAorICAgIChzeXNjdGwt
bmFtZQorICAgICAgICAiaHcuYXZhaWxjcHUiCisgICAgICAgICJody5uY3B1IgorICAgICAgICAi
aHcubW9kZWwiCisgICAgICAgICJrZXJuLm1lbW9yeXN0YXR1c19sZXZlbCIKKyAgICAgICAgInZt
LmZvb3RwcmludF9zdXNwZW5kIikpCisKKzs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQgYnkg
c3lzdGVtIGZyYW1ld29ya3MKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuYW5hbHl0aWNzZCIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAppbmRl
eCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdhNjFmZmFiZGYzNzY5Li41ZDBjYzZlMmY1NGQz
NjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nl
c3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkNvbnRlbnQsCiAgICAg
ICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAg
IH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU3MzcwOTczNDAzZDQ2MzQwOGVkNjNiYmNlZjQ1NjNiZDAwOTk4MWYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCit7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7Cit9CisKK2Jvb2wgUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCit7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmFjODYzYzAwYThhNDA3MDEzNTEyY2EyMzFjMDU1ODM1MTdiOWVlYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKKworICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworCisgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRjNzJlNTgyYWJlMzBmNDg3
OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2NzAxNzkxZjBjZTlhYWRl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRo
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAg
LTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
ZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwog
U3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1lbnRQcm9jZXNzKCk7Cisj
ZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVk
YmI1ZTFmNjc5NGI2ZjQ4MTNlM2FjYTZjZTUwM2ViZmMzMjBlMTkuLmNlZDY4ZjUzODQ2NTIxNzFk
YWM0ZTNkODQzYTQ0MWJlNzJkNzE5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjE5LDggKzIxOSwxMyBA
QCBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBAbm8t
dW5pZnkKIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCAg
QG5vLXVuaWZ5CiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAg
QG5vLXVuaWZ5CiAKK1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorCiBTaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCiAKK1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcCBAbm8tdW5pZnkKK1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKKwogVUlQcm9jZXNzL0JhY2tn
cm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKIFVJUHJvY2Vzcy9DaGlsZFByb2Nl
c3NQcm94eS5jcHAKIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcApAQCAtMzgxLDYgKzM4
Niw4IEBAIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcAogCitVSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5
LmNwcAorCiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIuY3Bw
CiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3Bw
CiAKQEAgLTQ5MSw2ICs0OTgsNyBAQCBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5j
cHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNw
cAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHAKK1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIAogV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dAppbmRleCA1OTRiZjkwZGQ1ZjA4YmZkYzQzNGI5ZjVkYzU5ZTQ4YzNhYTJkNzFl
Li4wZTQyMGVmNjg4NzBmMTY4NTJkMGYzYTZkOWU1MzU2MTRmZDUzMTVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CkBAIC0xOTQsNiArMTk0LDkgQEAgU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKIAorCitQYXltZW50UHJvY2Vzcy9p
b3MvUGF5bWVudFByb2Nlc3NJT1MubW0gQG5vLXVuaWZ5CisKIFVJUHJvY2Vzcy9fV0tXZWJWaWV3
UHJpbnRGb3JtYXR0ZXIubW0KIFVJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbQog
VUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggMDQwMWU3MmI0YzZm
NWU0ZTU5ZGQ4Y2FiNDBiNjY0MzVkNGY1OGZiOS4uN2JmM2Y1YTEyYzk3ZWNhNzlkYjc0MGU2OWM0
NWRmYzllYTRhYmI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCkBAIC02MjEsMTEgKzYyMSwyNyBAQCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHRvSW1wbChjb250ZXh0
KS0+dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcygpOwogfQogCit2b2lkIFdLQ29udGV4
dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQoreworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVQYXlt
ZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorfQorCiBQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZikt
Pm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCitQcm9jZXNzSUQgV0tDb250ZXh0R2V0
UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+
cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9y
dGVkUGx1Z2luKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkb21haW5SZWYs
IFdLU3RyaW5nUmVmIG5hbWVSZWYsIFdLQXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5UmVm
IGV4dGVuc2lvbnNSZWYpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXgg
NDZkMzdlMWU4YTE1ODk1ODBhMzU1MzhlZTVmNmY5YmMyZDgwZTIyYy4uMWYxZTg3MzlkMzJlZDc2
ZDUxNzExYzZiZDdiZWEwNjk0MTNmOTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTIsNiArOTIsOCBAQCBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlTmV0d29ya1Byb2Nlc3MoV0tDb250
ZXh0UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzKFdLQ29udGV4dFJlZik7CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdo
ZW4gUEFZTUVOVF9QUk9DRVNTIGlzIEVOQUJMRUQKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZik7CiAKIFdLX0VYUE9SVCB2b2lkIFdL
Q29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhXS0Nv
bnRleHRSZWYsIGJvb2wpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyVGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wpOwpA
QCAtMTEyLDYgKzExNCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxp
c3QoV0tDb250ZXh0UmVmLCBXS0FycmF5UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFBy
ZWNvbm5lY3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJM
KTsKIAogV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRl
bnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tD
b250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBkb21haW4sIFdLU3RyaW5nUmVmIG5hbWUsIFdLQXJyYXlS
ZWYgbWltZVR5cGVzLCBXS0FycmF5UmVmIGV4dGVuc2lvbnMpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0Q2xlYXJTdXBwb3J0ZWRQbHVnaW5zKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5k
ZXggY2YyODExZThiM2FjYWFiMGQwODFlMDg4MmNiZmQ4M2M3ZDVkZDVjZS4uMGYzMjEyOGEyZjNk
YTg1NTZmNDQ0ZDc0OWNiNTM5Mjc4NTA4MTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQyNCw2ICs0MjQsMTMgQEAg
LSAodm9pZClfY2xlYXJTdXBwb3J0ZWRQbHVnaW5zCiAgICAgX3Byb2Nlc3NQb29sLT5jbGVhclN1
cHBvcnRlZFBsdWdpbnMoKTsKIH0KIAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3MK
K3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIF9wcm9jZXNzUG9vbC0+dGVybWlu
YXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK30KKwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKIHsKICAgICBf
cHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC00NDQsNiArNDUxLDE1
IEBAIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIKICAgICByZXR1cm4gX3Byb2Nl
c3NQb29sLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorLSAocGlkX3QpX3BheW1l
bnRQcm9jZXNzSWRlbnRpZmllcgoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
cmV0dXJuIF9wcm9jZXNzUG9vbC0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQor
ICAgIHJldHVybiAocGlkX3QpMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
fQorCiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzCiB7CiAgICAgX3Byb2Nlc3NQ
b29sLT5zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDRk
M2ExOTEyMGFiZDQ5ZWVlMDQ5Mjc5NGE3N2Y0YWZiMDZjZGU5MGMuLjBiOTk5ZTg2NGE5MTlhYzU4
YzkwMTljODQ2M2U2MDdjNWYzN2VjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC04NCwxMiArODQs
MTYgQEAKIC0gKF9XS0Rvd25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAq
KXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilwYXRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBi
ZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcu
CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZTUVOVF9QUk9DRVNTIGlz
IEVOQUJMRUQKKy0gKHZvaWQpX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzOwogLSAodm9pZClfdGVy
bWluYXRlTmV0d29ya1Byb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZv
aWQpX2Rpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChw
aWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzKSwgaW9zKDExLjApKTsKKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQ
QVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAocGlkX3QpX3BheW1lbnRQcm9jZXNzSWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4zKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHNp
emVfdClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9z
KDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKaW5kZXggODdiMGJiZWM4MTMwM2E3NWM4NWUyYThjYmMzMGU3YWMyMmQ4M2Rj
ZS4uNmQ2NmVjMzFhZmY2ZWRjMWE0MWY2ODQ4MzI1MjNjZDg3ZTZiZDJhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTU3
LDYgKzU3LDkgQEAgcHVibGljOgogICAgICAgICBQbHVnaW42NCwKICNlbmRpZgogICAgICAgICBO
ZXR3b3JrLAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQsCisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB9OwogCiAgICAgc3RydWN0IExh
dW5jaE9wdGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggM2I0NjE2MzRlODUxNzM5ZDY5
NWQwNTU1YmU1NGQ2OWI0ODQ2MDY0OC4uMDIyYWQzMjc3Y2RjZjMyZjQzODAzODEyMTgxNDA3M2Y5
ZDRhNDVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFj
L1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC02Miw2ICs2Miw3IEBAIHN0YXRpYyBj
b25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlv
bnMmIGxhdW5jaE9wdGlvCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQ
bHVnaW42NDoKICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NCI7CiAj
ZW5kaWYKKyAgICBkZWZhdWx0OiByZXR1cm4gbmlsOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTBiNDdjZWE5MjU1NzI1NDRmMDA0NGEyZjczMDE2NTRiNGQxNTM1ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NQcm94eS5jcHAKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NQcm94eS5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRl
RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIHVpbnQ2NF90IGdl
bmVyYXRlUGF5bWVudFByb2Nlc3NDYWxsYmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3Qg
Y2FsbGJhY2tJRDsKKworICAgIHJldHVybiArK2NhbGxiYWNrSUQ7Cit9CisKK1BheW1lbnRQcm9j
ZXNzUHJveHk6OlBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29s
KQorICAgIDogQ2hpbGRQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dy
b3VuZFByaW9yaXR5KCkpCisgICAgLCBtX3Byb2Nlc3NQb29sKHByb2Nlc3NQb29sKQorICAgICwg
bV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKDApCit7CisgICAgY29ubmVjdCgpOworfQor
CitQYXltZW50UHJvY2Vzc1Byb3h5Ojp+UGF5bWVudFByb2Nlc3NQcm94eSgpCit7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZygpCit7CisgICAgdGVy
bWluYXRlKCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9u
cyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCit7CisgICAg
bGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6
OlBheW1lbnQ7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMobGF1bmNo
T3B0aW9ucyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0
RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUX1VOVVNFRChj
b25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkp
Cit7CisgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuYXBwZW5kKFdURk1vdmUocmVwbHkp
KTsKKworICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpMYXVuY2hpbmcpIHsKKyAgICAgICAgbV9u
dW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKys7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MgPSBmYWxzZTsKKyAgICBTZWN1cml0eU9y
aWdpbkRhdGEgc2VjdXJpdHlPcmlnaW47CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJv
Y2Vzczo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29ya2Vy
UHJvY2Vzcywgc2VjdXJpdHlPcmlnaW4pLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVz
c2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKK3sKKyAgICBhdXRvIHByb3RlY3Rl
ZFByb2Nlc3NQb29sID0gbWFrZVJlZihtX3Byb2Nlc3NQb29sKTsKKworICAgIC8vIFRoZSBwYXlt
ZW50IHByb2Nlc3MgbXVzdCBoYXZlIGNyYXNoZWQgb3IgZXhpdGVkLCBzbyBzZW5kIGFueSBwZW5k
aW5nIHN5bmMgcmVwbGllcyB3ZSBtaWdodCBoYXZlLgorICAgIHdoaWxlICghbV9wZW5kaW5nQ29u
bmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRp
bmdDb25uZWN0aW9uUmVwbGllcy50YWtlRmlyc3QoKTsKKworI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQorICAgICAgICByZXBseShJUEM6OkF0dGFjaG1lbnQoKSk7CisjZWxpZiBPUyhEQVJX
SU4pCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVudCgwLCBNQUNIX01TR19UWVBFX01PVkVf
U0VORCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50
KCkpOworI2Vsc2UKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorICAgIH0KKyAg
ICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vz
cy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQb29sLnBh
eW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZU5hbWUpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9u
SWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlz
RW1wdHkoKSk7CisKKyAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMu
dGFrZUZpcnN0KCk7CisKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICByZXBseShj
b25uZWN0aW9uSWRlbnRpZmllcik7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgcmVwbHkoSVBDOjpB
dHRhY2htZW50KGNvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgcmVwbHkoY29ubmVjdGlvbklkZW50aWZp
ZXIuaGFuZGxlKCkpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllcikKK3sKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxh
dW5jaGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlv
bjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAgICAgIC8v
IEZJWE1FOiBEbyBiZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1
ZXN0czsgKytpKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAgIAorICAg
IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxM2Y1MmJhNzYxMmRhYTNjMjNjYjAxNDVmMTYxMjUwMzg1NmQyNjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNz
UHJveHkuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5Lmgi
CisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5E
YXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Citj
bGFzcyBXZWJQcm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVj
dCBXZWJzaXRlRGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1Ymxp
YyBDaGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7Cisg
ICAgCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5
JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHkmJik7CisKKyAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKwor
cHJpdmF0ZToKKyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQorICAgIHZvaWQgZ2V0TGF1bmNoT3B0
aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisKKyAgICAv
LyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2
b2lkIGRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0
YWNobWVudCYpOworCisgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKKyAgICB2b2lkIGRp
ZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIpIG92ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1Bvb2wmIG1fcHJvY2Vzc1Bvb2w7CisK
KyAgICB1bnNpZ25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7CisgICAgRGVxdWU8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGVmZmJiNTgyOWNhMDY2ZTVlYjM0YzFj
N2U0OTZlN2EzZjM4NmU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjgg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJl
Y2VpdmVyIHsKKyAgICBEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6
OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisKK30KKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xp
ZW50LmNwcAppbmRleCBmYTQ1NzYyZWNlYmEwMTNhNmFjYTRmOTY0ZGE4NTY2Mzk3NDFkNTc1Li5i
ZWM3OWI1NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2OTliNTUzZjExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtNDYsNCArNDYsMTEgQEAgdm9p
ZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29s
KiBwcm9jZXNzUG9vbCkKICAgICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHRvQVBJ
KHByb2Nlc3NQb29sKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNz
RGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQoreworICAgIAorfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCmluZGV4IDgwYzMxMTIyYzA3
NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYuLjU5YjNhNDA3OTEwOGYyMzhmMWQ2ZjhhYmYx
YWI5ZWRjYzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xp
ZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIFdlYkNvbnRleHRDbGllbnQgOiBwdWJsaWMg
QVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFzZT4gewogcHVibGljOgogICAgIHZvaWQgcGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZChXZWJQcm9jZXNzUG9vbCopOwogICAgIHZv
aWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nl
c3NQb29sKik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRTdXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0MDNkYjI5Zjk0MDA0MzhiYTMyYTYwYzc1ODI3
NDkzNGZhNi4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVjMDY3ZDFmMGQ5ZDQ1OWExMjdlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCkBAIC0yOSw2
ICsyOSwxMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJv
eHk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJv
eHk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogY2xhc3MgV2ViUHJvY2Vz
c1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKQEAgLTU0LDYgKzU4LDEyIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKE5ldHdvcmtQcm9jZXNzUHJveHkq
KQogICAgIHsKICAgICB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2
aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBheW1lbnRQcm9jZXNzUHJveHkqKQorICAgIHsK
KyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlByb2Nl
c3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1Bvb2w7IH0KICAg
ICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1fcHJvY2Vzc1Bvb2wgPSBudWxscHRyOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZTRhODc3MDQ3
NTc4YzQ4ZjQwZDcxYzY5MjdjOTY1ZGI5NjJiNzk0MC4uZWU1OTYyZTE3MmI3YjhiZmZjNmU1MmU5
MDUwODRiNTBkY2ZlOWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcApAQCAtNTQsNiArNTQsMTAgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRp
c3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNz
TWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUg
IlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkLmgiCiAjaW5jbHVkZSAiVUlHYW1l
cGFkUHJvdmlkZXIuaCIKQEAgLTQ0Miw2ICs0NDYsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpz
ZW5kTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlzQ3JpdGljYWwpCiB7CiAgICAgc2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3Vy
ZUV2ZW50KGlzQ3JpdGljYWwpKTsKICAgICBzZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdl
czo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2Fs
KSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBzZW5kVG9QYXltZW50UHJvY2Vz
cyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChp
c0NyaXRpY2FsKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xl
dG9uKCkuc2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCk7CiAjZW5kaWYKQEAgLTYw
Nyw2ICs2MTQsMzYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3gKICAgICBtX25ldHdvcmtQcm9j
ZXNzLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9j
ZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3MoKQoreworICAgIGlmICghbV9wYXltZW50UHJv
Y2VzcykKKyAgICAgICAgbV9wYXltZW50UHJvY2VzcyA9IHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVu
dFByb2Nlc3NQcm94eT4oKnRoaXMpOworfQorICAgIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5
LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQor
eworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgbV9wYXltZW50UHJvY2Vzcy0+Z2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkp
OworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVu
dFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3NQcm94eSkKK3sKKyAgICBBU1NFUlQobV9wYXlt
ZW50UHJvY2Vzcyk7CisgICAgQVNTRVJUKHBheW1lbnRQcm9jZXNzUHJveHkgPT0gbV9wYXltZW50
UHJvY2Vzcy5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBsZW1l
bnRzLnZhbHVlcygpKQorICAgICAgICBzdXBwbGVtZW50LT5wcm9jZXNzRGlkQ2xvc2UocGF5bWVu
dFByb2Nlc3NQcm94eSk7CisKKyAgICBtX2NsaWVudC5wYXltZW50UHJvY2Vzc0RpZENyYXNoKHRo
aXMpOworCisgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCisgICAgICAgIG1fYXV0b21hdGlv
blNlc3Npb24tPnRlcm1pbmF0ZSgpOworCisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7
Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRD
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgU2Vj
dXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNz
aW9uSUQ+IHNlc3Npb25JRCkKIHsKQEAgLTY4Myw2ICs3MjAsOSBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wg
cHJpdmF0ZQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OkFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uUGFyYW1ldGVycygpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbmV0d29y
a1Byb2Nlc3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNl
c3Npb25JRCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBzZW5kVG9Q
YXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC0xMzM2LDYgKzEzNzYsMTUgQEAgVmVjdG9yPFN0
cmluZz4gV2ViUHJvY2Vzc1Bvb2w6OmFjdGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRl
c3RpbmcoUHJvY2Vzc0kKICAgICB9CiAgICAgcmV0dXJuIHsgfTsKIH0KKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorUHJvY2Vzc0lEIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lk
ZW50aWZpZXIoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICByZXR1cm4gbV9wYXltZW50UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKTsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChib29sIGFsd2F5c1VzZUNvbXBs
ZXhUZXh0KQogewpAQCAtMTYwNyw2ICsxNjU2LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNs
ZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKQogICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQogICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJD
YWNoZWRDcmVkZW50aWFscygpLCAwKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0
aW5nKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fcGF5bWVudFByb2Nlc3MtPnRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKyAgICBtX3BheW1l
bnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBkM2E4ZDhlNWIwYWZk
ZjZhZTRlNTMwNmY0OTNhOGI5Y2I1MGMyNWVkLi40MmE3MGFhODA3NWJlNWY5ZWNlYTE5ZDliOGU5
MjgyYmEzMGFmNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
QEAgLTQwLDYgKzQwLDkgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NSZXF1
ZXN0LmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc1Byb3h5LmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRl
ICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgiCkBAIC0xNzMsNiArMTc2LDEyIEBA
IHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiB2b2lkIHNlbmRT
eW5jVG9OZXR3b3JraW5nUHJvY2VzcyhUJiYgbWVzc2FnZSwgVSYmIHJlcGx5KTsKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJ
Zk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIC8vIFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdlYlByb2Nlc3Mgb3IgUGF5bWVudFByb2Nlc3Mg
YXMgYXBwcm9wb3JpYXRlIGZvciBjdXJyZW50IHByb2Nlc3MgbW9kZWwuCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2FnZSk7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5n
SWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKICAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5
Kik7CiAKICAgICAvLyBEaXNjb25uZWN0IHRoZSBwcm9jZXNzIGZyb20gdGhlIGNvbnRleHQuCkBA
IC0yMTcsNiArMjI2LDkgQEAgcHVibGljOgogICAgIFByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc0lk
ZW50aWZpZXIoKTsKICAgICBWZWN0b3I8U3RyaW5nPiBhY3RpdmVQYWdlc09yaWdpbnNJbldlYlBy
b2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJRCk7CiAgICAgYm9vbCBuZXR3b3JrUHJvY2Vzc0hhc0Vu
dGl0bGVtZW50Rm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIFByb2Nlc3NJRCBwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgV2ViUGFnZUdyb3VwJiBkZWZhdWx0
UGFnZUdyb3VwKCkgeyByZXR1cm4gbV9kZWZhdWx0UGFnZUdyb3VwLmdldCgpOyB9CiAKQEAgLTI3
Niw2ICsyODgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0
ZUZvcldlYlNvY2tldChib29sKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygp
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
ICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKICAgICB2b2lkIGRpc2FibGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsKQEAgLTM0Miw2ICszNTcsMTIgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZW5z
dXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJv
Y2VzcygpIHsgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MuZ2V0KCk7IH0KKyAgICB2b2lkIGdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBQQUw6OlNlc3Npb25JRCBp
bml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNz
Q3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5Kik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hX
b3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94
eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vz
c2lvbklEPik7CiAgICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogc2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eUZyb21QYWdlSUQodWludDY0X3QgcGFnZUlEKSBjb25zdDsKQEAgLTY0MCw2ICs2
NjEsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZh
bHVhdGlvbiB7IHRydWUgfTsKICAgICBib29sIG1fZGlkTmV0d29ya1Byb2Nlc3NDcmFzaCB7IGZh
bHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29y
a1Byb2Nlc3M7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGF5bWVudFByb2Nlc3NQcm94eT4gbV9wYXltZW50UHJvY2VzczsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERpY3Rp
b25hcnlDYWxsYmFjaz4+IG1fZGljdGlvbmFyeUNhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+PiBtX3N0YXRpc3RpY3NSZXF1ZXN0czsKQEAg
LTc0MSw2ICs3NjUsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvTmV0d29ya2luZ1By
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQogICAgIG1fbmV0d29ya1By
b2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKIH0KIAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNz
UG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpCit7CisgICAgaWYgKG1fcGF5
bWVudFByb2Nlc3MgJiYgbV9wYXltZW50UHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAg
ICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwor
fQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5
bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQoreworICAgIGVu
c3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZv
cndhcmQ8VD4obWVzc2FnZSksIDApOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9B
bGxQcm9jZXNzZXMoY29uc3QgVCYgbWVzc2FnZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDE5OWM1YTAxNmRiNWYzYmYxZWY3ZDQ1ZjUyMWJj
ZTdjZTQ2YTRhNTQuLmU0MTZhYTAwYzAxODc3ZTM0NzQ2NGZmYTkzZjc0NzAzYzQyYWRkODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjIzLDYg
KzYyMywxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldAogewogICAgIG1fcHJvY2Vzc1Bvb2wt
PmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgV1RGTW92ZShyZXBseSkpOwogfQor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0UGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9wcm9jZXNzUG9vbC0+Z2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKCp0aGlzLCBpbml0aWFsU2Vzc2lvbklELCBXVEZNb3ZlKHJlcGx5KSk7Cit9
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogI2lmICFQTEFURk9STShDT0NP
QSkKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDFiYjg4M2Nm
MmYyM2E3MDY0YWJkNGNlZjdlNTliNzZjZGVlZDgyZjMuLjRmNDQwZDdmZjE3MjJlNDZhM2I0NjY5
YWJlNDhmNTg1NmUyOGM2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCkBAIC0yNzYsNiArMjc2LDkgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZvaWQgZ2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6
OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIGJvb2wgcGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQo
KSBjb25zdDsKICAgICBib29sIHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDVhN2Y1ZDNkNDY5ZjIzMjBjYmMyODcwZmI5YzFkODFmZWI2ZTIxZWUu
LmQ0NDM1NGYzM2JlNmMwMjRiNmY3NGEyMGFjYWU1OTBkYWU5NTJjZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3
LDYgKzM3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0Fz
eW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBEZWxheWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUp
IERlbGF5ZWQKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIEdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKSAtPiAoSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2Vs
UHJvY2Vzc1N1c3BlbnNpb24oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDFhMjU1Yjg5NTYyZGU1
ODQ0YmJmMzIyMWNjNGI3ZTgyMjJmOWM2NDguLmM1MDNmZmQ2ZjViZWZiZGZlMGEwZjBjNmIzNzM0
Yzg1OTI2OGU0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0zNCw2ICszNCwxMCBAQAogI2luY2x1
ZGUgIk1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5o
IgpAQCAtMTM1LDYgKzEzOSw5IEBAIFdlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3Jl
KCkKICAgICAgICAgQVNTRVJUKG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KG1fc2Vzc2lvbklE
KSA9PSB0aGlzKTsKICAgICAgICAgbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5yZW1vdmUobV9zZXNz
aW9uSUQpOwogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6
OmFsbFByb2Nlc3NQb29scygpKSB7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAg
ICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9
IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQogICAgICAgICAgICAgICAgIG5ldHdvcmtQ
cm9jZXNzLT5yZW1vdmVTZXNzaW9uKG1fc2Vzc2lvbklEKTsKICAgICAgICAgfQpAQCAtMTYyNiw2
ICsxNjMzLDE5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0K
IAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQorewor
ICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1ldGVycy5zZXNzaW9u
SUQgPSBtX3Nlc3Npb25JRDsKKworICAgIHJldHVybiBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNp
dGVEYXRhU3RvcmU6OnBlbmRpbmdDb29raWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29weVRv
VmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGJkNTc5MTNkMzk5NDc0
NTFkMGU5OWEwYWQ1ZjE4Yjk4M2FlMTAzMWUuLjVlYTgwZWI5YWY1MWNkYWVkMGM2ZWI1MTgzMzhk
MWMwZTk5ODUyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTYyLDYgKzYyLDkgQEAgY2xhc3MgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0
aW9uOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnM7CiAKQEAgLTE2OSw2ICsxNzIsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0Fzc29jaWF0ZWRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAg
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycygpOworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGF5bWVu
dFByb2Nlc3NQYXJhbWV0ZXJzKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
IAogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAg
ICAgdm9pZCBhZGRQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzU2ZDJj
MjA0YTZiMzhkNjhiMjg4NzI5OWUwMDc2ZDhlOTEzNzc5NC4uOGI5YTJmYjRjYmFjNDZkZDA1NGVh
YWZiNGQ4OWU4MzExZWY2ZjljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDQsNiArODQ0LDcgQEAKIAkJMzdGOTBERTMxMzc2NTYw
RTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBI
VFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0
NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0
NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4
Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcg
LyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CisJCTM5MTM2MDI1MjE5
M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1
NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsKIAkJM0Y0MThFRjkx
ODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThF
RjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3
QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CkBAIC05MDIsNiArOTAzLDExIEBACiAJCTUxMEY1
OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTc5MURERDc4NTQwMDMy
Q0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRl
bURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFi
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEw
QUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTE4RTlBMTFGMjk1MzI2MDAzRUY5
RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOTlGMUYyOTUzMUYwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovOyB9OworCQk1MTE4RTlBODFG
Mjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJ
NTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CisJCTUxMThFOUFB
MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3
MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKKwkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
cy5oICovOyB9OwogCQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oICovOyB9OwogCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJy
YXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFG
OEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CiAJCTUx
MUY4QTgxMTM4QjQ4NUQwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBB
OTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovOyB9OwpAQCAtOTUzLDYgKzk1OSw3IEBA
CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUw
RiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4
NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBh
eW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
LmggKi87IH07CiAJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNUEx
MjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi87IH07CiAJCTUxOEFDQUVBMTJB
RUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMg
LyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxOEFDRjExMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRl
bnRpYWxUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE4QUNGMTAxMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk4MCw2ICs5ODcs
OCBAQAogCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFERDlGMjkx
NjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI3
MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmggKi87IH07CiAJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUM5MTgw
RjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLzsgfTsKKwkJNTFFMzUxRkYxODBGNUQw
RjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
UHJvY2Vzcy5jcHAgKi87IH07CisJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MUU2QzE2NDFGMjkzNUREMDBGRDM0Mzcg
LyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUU2QzE2MTFGMjkzNUNEMDBGRDM0
MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi87IH07CiAJ
CTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENTQx
NTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFGMDYwRTAxNjU0MzE3
RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAv
KiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CkBAIC0xNTUyLDYgKzE1NjEsNyBA
QAogCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAw
MzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5n
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNUZF
NTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovOyB9OworCQlFMTE1QzcxNDE5
MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyog
UGF5bWVudFByb2Nlc3NJT1MubW0gKi87IH07CiAJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAv
KiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiICovOyB9OwogCQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJv
Y2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovOyB9OwogCQlFMTUxM0M2NzE2NkVBQkIyMDAxNDlG
Q0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQ
cm94eS5oICovOyB9OwpAQCAtMjk1OCw2ICsyOTY4LDI4IEBACiAJCTNGNDE4RUY2MTg4N0JEOTcw
MDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzRjQxOEVGNzE4ODdC
RDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY4MTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkz
OTEzNjAwMjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDAzMjE5Mzc2MDgwMDU2NDky
QSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTM5MTM2MDA0MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlclByb3Zp
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDA1MjE5Mzc2MDgwMDU2
NDkyQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTM5MTM2MDA2MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzkxMzYwMDcyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTM5MTM2MDA4MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luVGFibGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwOTIxOTM3NjA4MDA1NjQ5MkEg
LyogV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzkxMzYwMEEyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzOTEzNjAwQjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEz
NjAwQzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMEQyMTkzNzYwODAw
NTY0OTJBIC8qIFdlYlNXT3JpZ2luVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViU1dPcmlnaW5UYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
OTEzNjAwRTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBGMjE5Mzc2MDgw
MDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDEwMjE5Mzc2MDgwMDU2NDky
QSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAxMTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdv
cmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzkxMzYwMTIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyNDIx
OTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y0MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjQxOEVGODE4ODdCRDk3MDAyNzk1
RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYy
IC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
Rjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMTQsNiArMzA0Niw3IEBACiAJCTQxNTdFNEFG
MjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1NDIxMTM3NzcwMDAxMkFCQ0QgLyogcHJvY2Vz
cy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
c2g7IHBhdGggPSAicHJvY2Vzcy1uZXR3b3JrLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTYyMTEzNzdFODAwMTJBQkNEIC8qIHBy
b2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0g
InByb2Nlc3Mtd2ViY29udGVudC1zYW5kYm94LWVudGl0bGVtZW50cy5zaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxODhDMTU3MjExMzc4NTIwMDEyQUJDRCAvKiBQYXltZW50LU9T
WC1zYW5kYm94LmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRsZW1lbnRz
OyBwYXRoID0gIlBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OEMxNTgyMTEzNzg1MjAwMTJBQkNEIC8qIFdlYkNvbnRlbnQt
T1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVu
dHM7IHBhdGggPSAiV2ViQ29udGVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VDQjFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VD
QzFGNDE1RDVDMDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzA4MCw2ICszMTEzLDcgQEAKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZC
REUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8u
ZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMw
MzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEw
NEY1QTExRjE5RDdDRjAwNENGODIxIC8qIENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVV0aWxzQ0YubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcxMUM3M0QyMkIwMDc5OTNDQiAv
KiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTA1MjM3MjFDNzNEMzdCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC0zMTA4LDYgKzMxNDIsMTIgQEAKIAkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3Jh
Z2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nl
c3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTcxRjI5NTk2MzAwM0VG
OUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTE4RTk5RTFGMjk1
MzFGMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTk5RjFGMjk1MzFGMDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEx
OEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdE
M0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdENDAxRUIxQkNFRTAw
RTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hp
bUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2VjSXRlbVNoaW1M
aWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMjUsNiArMzE2NSw3IEBACiAJCTUx
MjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVu
dFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RTEyQTg4Mzg4MDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8q
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25E
ZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMTk1LDYgKzMyMzYsOCBAQAogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUg
LyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9DYWNoZVN0b3JhZ2VFbmdpbmVD
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50
UHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
eW1lbnRQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdE
RDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFNoaW0ueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjU5MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJD
b250ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
b250ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjVBMTI3
Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzIxNCw2ICszMjU3LDcgQEAKIAkJNTFBNTU2MDAxMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29u
dGV4dE1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tD
b250ZXh0TWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1
ODc3RTFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQlJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxQTU4NzdGMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSURCUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50
U2VydmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQYXltZW50U2VydmljZS54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNzI4REMxQjFCQUQyRDAwMTAyRUVFIC8q
IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGMjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI3Myw2ICszMzE3LDExIEBACiAJCTUxREQ5RjI3
MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk1MUUzNTFDODE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlV0aWxpdGllcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JF
OSAvKiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZBMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZCMTgw
RjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50
UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQzE4MEY1RDBC
MDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nl
c3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZEMTgw
RjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzOTkwNTFE
NkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTVGMUYyOTM1NTEwMEZEMzQzNyAvKiBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07
IHBhdGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE2MTFGMjkzNUNEMDBGRDM0Mzcg
LyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDQwMSw2ICs0NDUwLDcgQEAKIAkJRTFFNTUyQzMxNkFFMDY1
RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vz
c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRQ
cm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5QjFBQzFB
REI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5
IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQ1NzUsNiArNDYyNSw3IEBACiAJCQkJMUFBRERGNEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNo
YXJlZCAqLywKIAkJCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQcm9jZXNzICovLAog
CQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovLAorCQkJCTUxRjdE
QzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2
MTM4RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJMUEwRUM2QjAxMjRCQkQz
NjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3MgKi8sCiAJCQkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMw
RUM0IC8qIERlcml2ZWQgU291cmNlcyAqLywKQEAgLTQ3NzgsNiArNDgyOSw4IEBACiAJCQkJNDFE
MEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3guZW50aXRsZW1lbnRz
ICovLAogCQkJCTVDN0FDRkQxMjE4REQ4QkQwMDRDQkI1OSAvKiBOZXR3b3JrLU9TWC5lbnRpdGxl
bWVudHMgKi8sCiAJCQkJQkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNl
LnhjY29uZmlnICovLAorCQkJCTQxODhDMTU3MjExMzc4NTIwMDEyQUJDRCAvKiBQYXltZW50LU9T
WC1zYW5kYm94LmVudGl0bGVtZW50cyAqLywKKwkJCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAg
LyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8sCiAJCQkJQTFFREQyREIxODg0Qjk2NDAwQkJG
RTk4IC8qIFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnICovLAogCQkJCUJDODI4M0YyMTZCNEZD
NTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnICovLAogCQkJCUJDODI4M0Y0
MTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnICovLApAQCAtNDkz
NSw2ICs0OTg4LDcgQEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0MDBERDdDNjggLyogR2FtZXBhZCAq
LywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJDMTExQjVB
MTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJNTExOEU5OUQxRjI5NTMxRjAwM0VGOUY1
IC8qIFBheW1lbnQgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAwODUyNDE4IC8qIFBsdWdpbnMg
Ki8sCiAJCQkJMkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8qIFJlbW90ZUxheWVyVHJlZSAqLywK
IAkJCQkxQUJGNDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0ZURhdGEgKi8sCkBAIC02MjEx
LDYgKzYyNjUsMzAgQEAKIAkJCXBhdGggPSBSZXNvdXJjZXMvbWFjOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMzkxMzYwMDEyMTkzNzYwODAwNTY0OTJBIC8qIFN0b3JhZ2Ug
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5MTM2MDBF
MjE5Mzc2MDgwMDU2NDkyQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovLAorCQkJ
CTM5MTM2MDA1MjE5Mzc2MDgwMDU2NDkyQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCAq
LywKKwkJCQkzOTEzNjAxMTIxOTM3NjA4MDA1NjQ5MkEgLyogU2VydmljZVdvcmtlckNsaWVudEZl
dGNoLm1lc3NhZ2VzLmluICovLAorCQkJCTM5MTM2MDA3MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCAqLywKKwkJCQkzOTEzNjAwQTIxOTM3NjA4
MDA1NjQ5MkEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovLAorCQkJCTM5
MTM2MDEyMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwICov
LAorCQkJCTM5MTM2MDA0MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXIuaCAqLywKKwkJCQkzOTEzNjAwMjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcCAqLywKKwkJCQkzOTEzNjAwMzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGll
bnRDb25uZWN0aW9uLmggKi8sCisJCQkJMzkxMzYwMDkyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTEzNjAwQjIxOTM3NjA4MDA1
NjQ5MkEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MTM2
MDEwMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICov
LAorCQkJCTM5MTM2MDA2MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTEzNjAwODIxOTM3NjA4MDA1NjQ5MkEgLyog
V2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8sCisJCQkJMzkxMzYwMEQyMTkzNzYwODAwNTY0OTJBIC8q
IFdlYlNXT3JpZ2luVGFibGUuaCAqLywKKwkJCQkzOTEzNjAwRjIxOTM3NjA4MDA1NjQ5MkEgLyog
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MTM2MDBDMjE5Mzc2
MDgwMDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJKTsK
KwkJCXBhdGggPSBTdG9yYWdlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NDEzMDc1OTcxREU4NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NDA4LDYgKzY0ODYsOCBAQAogCQk1MTE4RTk5ODFG
Mjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNTExOEU5OUUxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKKwkJCQk1MTE4RTk5RjFGMjk1MzFGMDAzRUY5
RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJCQk0MTMxRjNE
MDFGOTZCQ0M4MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLywKIAkJ
CQk0MTMxRjNDRTFGOTZBNDk1MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgg
Ki8sCiAJCQkJNDEzMUYzQ0YxRjk2QTkzNjAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaC5tZXNzYWdlcy5pbiAqLywKQEAgLTY1MzAsNiArNjYxMCwxNiBAQAogCQkJbmFtZSA9IG1h
YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxN0RENUJCMTgwREE3QzQw
MDgxNjYwQiAvKiBQYXltZW50ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5jcHAgKi8sCisJCQkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNz
UHJveHkuaCAqLywKKwkJCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudDsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAv
KiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC02NTg2LDYgKzY2NzYsMjAgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVu
dFByb2Nlc3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8sCisJCQkJNTFFMzUxRkExODBGNUQw
QjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLywKKwkJCQk1MUUzNTFGQjE4MEY1RDBC
MDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLywKKwkJCQk1MUUzNTFGQzE4MEY1RDBCMDBF
NTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNTFFMzUxRkQxODBG
NUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJ
CQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaCAqLywKKwkJCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRQ
cm9jZXNzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTM5QkQ1QjIxREFE
QjBCQTAwRjJFNEUxIC8qIGNhcHR1cmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtNjk4OSw2ICs3MDkzLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya2luZy5zYiAqLywKKwkJCQkzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyog
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLywKIAkJCQlBNzhDQ0RENzE5M0FDOUUzMDA1
RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovLAogCQkJCUE3OENDREQ5MTkz
QUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgKi8sCiAJCQkp
OwpAQCAtNzE5Myw2ICs3Mjk4LDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBDNjUwQzUgLyog
bWFjICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3b3JrICovLAogCQkJ
CTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovLAorCQkJCTUxN0RE
NUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50ICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQw
MDgyMTlEMyAvKiBQbHVnaW5zICovLAogCQkJCTJEMTU1MUE5MUY1QTlCNDIwMDA2RTNGRSAvKiBS
ZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFBRjA4OUUxOTI2ODFBQzAwQjYzOTBDIC8qIFVzZXJD
b250ZW50ICovLApAQCAtODI4NCw2ICs4MzkwLDEwIEBACiAJCQkJNUMwQjE3NzUxRTdDODc5QzAw
RTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAogCQkJCTFBMkQ4NDM3
MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTcx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNDFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tT
ZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBMjlBMjUxQ0JFQjY3
QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUNE
QTI5QTI2MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODYwMiw2ICs4NzEyLDE0IEBACiAJCQluYW1lID0gUERG
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFGRUYzOUIxOTBGNzkxQzAw
NzMxNjU4IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICov
LAorCQkJKTsKKwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQlFNDg5RDI4MjFBMEEyQkU4MDA3OEMwNkEgLyogY2FjaGUgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTA2Nyw2ICs5MTg1LDEwIEBACiAJCQkJMUFD
NzUzN0MxODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBOEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJk
VHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUExMUYyOTUzMjYwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEx
OEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1By
b3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMUUxMjNCQTIw
QTExNTczMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
OTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1QzI5OERBMDFDM0RGMDIxMDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEwMDUxLDYgKzEwMTczLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyog
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJ
MzkxMzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2Ig
aW4gUmVzb3VyY2VzICovLAogCQkJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBw
bGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDE0REQzNzkyMEJGNDNGNTAw
Njk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgaW4gUmVzb3VyY2VzICov
LAogCQkJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCBp
biBSZXNvdXJjZXMgKi8sCkBAIC0xMDY1NCw2ICsxMDc3NywxMSBAQAogCQkJCTJEOTEzNDQ3MjEy
Q0Y5RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVPYmplY3RNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MTM0NDgyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZVV0aWxpdGllcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyRDkyQTc5NDIxMkI2QUQ0MDBGNDkzRkQgLyogTlBWYXJpYW50RGF0
YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5
bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTExNUM3MTQxOTBGODlFNDAwRUND
NTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QTgx
RjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MjAwMTgw
RjVEMEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDREEyOUEyODFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9u
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEyQTFD
QkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ5MjEyQ0Y5RjAwMDEyOEFGRCAvKiBQ
bHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDJiZmFlZTQ3NmUx
ZjRiY2NjZGIyNjYwZmU1ZDhlNjZiZDY3NGEzZDcuLjVkZmM1NTUwMGM1NjkzODE0NWNiNjNiZjc2
ZDVkOGI3NjkzOTBhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JikgZmluYWw7CiAKICAgICB2b2lkIHNjaGVk
dWxlU3RvcmFnZUpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworICAg
IHZvaWQgc2NoZWR1bGVQYXltZW50Sm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JE
YXRhJik7CiAKICAgICB2b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIHRhc2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTdlZTc4ODk2NDg3OWI5Yjk3NmRiNDlhZTAzZWEyZDViYTBkNDYwMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5oIgorCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBu
YW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVu
dGlmaWVyLCAqdGhpcykpCit7CisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KQoreworICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQor
eworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sK
KyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMp
OworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmJlMjBhYmY2YmQz
NDZjNmIxZGMyZTcxNWUzMTBlZDNkNWYzMjUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApA
QCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICoKKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU1dTZXJ2ZXIuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNz
aW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1l
c3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAgIH0KKyAg
ICB+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAKKyAgICBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJp
dmF0ZToKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFt
ZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5l
Y3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25u
ZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQo
KSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDcwY2U4ZWE0ZWVlODA5NmUwNGIzZWU2N2QxZjRjZjIxMjczNTBkYWMuLmI0OWM2MzE2ZTVh
NmE3NDE4ZWI3YjE4N2Y1OGM3M2FkNjdlODk2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDYgKzQzLDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1
ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgpAQCAt
NjksNiArNzIsOSBAQAogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJXZWJTb2NrZXRTdHJlYW0uaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1
ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgogI2luY2x1ZGUgIldlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBA
IC0xMjE3LDYgKzEyMjMsNTAgQEAgV2ViTG9hZGVyU3RyYXRlZ3kmIFdlYlByb2Nlc3M6OndlYkxv
YWRlclN0cmF0ZWd5KCkKIHsKICAgICByZXR1cm4gbV93ZWJMb2FkZXJTdHJhdGVneTsKIH0KKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiogY29u
bmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik7
CisgICAgQVNTRVJUKG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlv
bik7CisKKyAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKK30K
KworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZVdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQp
Cit7CisgICAgaWYgKCFtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKSB7CisgICAgICAg
IElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXI7CisKKyAgICAgICAg
aWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oaW5pdGlhbFNlc3Npb25JRCks
IE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpIHsKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKKyAgICAgICAgICAgIC8vIEdUSysgYW5kIFdQRSBwb3J0cyBk
b24ndCBleGl0IG9uIHNlbmQgc3luYyBtZXNzYWdlIGZhaWx1cmUuCisgICAgICAgICAgICAvLyBJ
biB0aGlzIHBhcnRpY3VsYXIgY2FzZSwgdGhlIHBheW1lbnQgcHJvY2VzcyBjYW4gYmUgdGVybWlu
YXRlZCBieSB0aGUgVUkgcHJvY2VzcyB3aGlsZSB0aGUKKyAgICAgICAgICAgIC8vIGNvbm5lY3Rp
b24gaXMgYmVpbmcgZG9uZSwgc28gd2UgYWx3YXlzIHdhbnQgdG8gZXhpdCBpbnN0ZWFkIG9mIGNy
YXNoaW5nLgorICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMzNDguCisgICAgICAgICAgICBleGl0KDApOworI2Vsc2UKKyAgICAgICAg
ICAgIENSQVNIKCk7CisjZW5kaWYKKyAgICAgICAgfQorCisjaWYgVVNFKFVOSVhfRE9NQUlOX1NP
Q0tFVFMpCisgICAgICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllciA9IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURlc2NyaXB0
b3IoKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0
KCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5oYW5k
bGUoKSk7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAg
ICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklk
ZW50aWZpZXIpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBtX3dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0
ZShjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB9CisgICAgcmV0dXJuICptX3dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxh
ZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGJkYTAwMzY3ZDI0
OTM3YTNkM2Y5NDUwZGE2YzRmNTQ0OTFhMTVlOWMuLjFjNmZkYWI5ZGU0YmZiZWZkY2I3YWU5NTk0
MmUxYTc5NzJmY2ZjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAt
OTgsNiArOTgsOSBAQCBjbGFzcyBXZWJMb2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBhZ2U7CiBj
bGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NTdXBwbGVtZW50OworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogZW51bSBjbGFzcyBXZWJz
aXRlRGF0YVR5cGU7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBX
ZWJQYWdlR3JvdXBEYXRhOwpAQCAtMTc1LDYgKzE3OCwxMSBAQCBwdWJsaWM6CiAKICAgICBMaWJX
ZWJSVENOZXR3b3JrJiBsaWJXZWJSVENOZXR3b3JrKCk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIHZvaWQgd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24qKTsKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiYgZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9u
SUQgaW5pdGlhbFNlc3Npb25JRCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKICAgICB2b2lkIGVuc3VyZUxl
Z2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb25Jbk5ldHdvcmtQcm9jZXNzKCk7CkBAIC00MzEsNiAr
NDM5LDEwIEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eT4gbV9hdXRvbWF0aW9uU2Vzc2lvblByb3h5OwogCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICBSZWZQdHI8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+IG1f
d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFJlZlB0cjxQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBm
MjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5
NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgs
NiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxF
X05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9O
U19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VT
UyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwog
CiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFU
Rk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggODRlNWIzNmU3YTljNGVhMGNiYThhY2IzYjE3Y2U4ZTg3MTgzYWJiNi4uZDBmYjZk
Y2VjOTEyYmMwY2ZhYzAzMWQxZTljMmU4MWVkMzA3ZmFlMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTExLTA3
ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJv
Y2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50
UHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc05hbWUpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCk6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisK
IDIwMTgtMTEtMDcgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgogCiAgICAgICAg
IFtCaWdJbnRdIEFkZCBzdXBwb3J0IHRvIEJpZ0ludCBpbnRvIFZhbHVlQWRkCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4z
MGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29j
b2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVf
UEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BM
VUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpp
bmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0Li5jMzQ2YWJmZDYy
MGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBD
aGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUgc2hhcmVkIHByb2Nl
c3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3ZSdyZSBhYm91dCB0
byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVkUHJvY2Vzc1Bvb2wg
PSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAgRVhQRUNUX0VRKChw
aWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwog
ICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vz
c0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRl
ZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVYUEVDVF9UUlVFKFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDp0YXJnZXRVUkwu
cGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3Bh
eW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFy
ZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KaW5kZXggNGNiOGZhOTdhNjZjOGE3ZmQ4NDU5ZWVkMGE0NTg0MmIyYjgxZmE4My4uYmRh
YTJjOWZlYTk0MDc1OTQxNDY0NDE5YWFjYTMzNWQ1MzkxYzg5NSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KQEAgLTEwNDYsNiArMTA0Niw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VX
b3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5bWVudCBwcm9jZXNz
IGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUg
c2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCku
Y29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50KTsKIApAQCAtMTEzMCw2
ICsxMTMzLDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAorICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyBwYXltZW50IHByb2Nlc3MgY3Jl
YXRlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nl
c3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTGV0J3MgdXNlIHRo
ZSB3ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNlcnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEg
cGFnZS4KICAgICBuZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
aW5kZXggOGRiNTY5MGIzOTQzMTA5NGI1MzU4ZDBkMmFmYjg3Njk5ZDIwNmRhMC4uZDYyYzYwZjc4
Y2M1MzBhMzVhYzczYWU4YTQ4NGQ1NjA4YjExN2Q3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCkBAIC0zMzMsNiArMzMzLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAgdm9p
ZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdv
cmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdDsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKaW5kZXggZGYxYWRhZjBlMGEwMjJkODNiZDlkMjk3NDRkYjIyOWU0NzdlNTk1NC4uZWU5
NDRmOTA0YmQwNjBhNDMwZTE1YjYwZGQ1MWIwMjg2OWQzMTE4NyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjU1
LDYgKzEyNTUsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2VzcygpCiAgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3Rpbmco
SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRl
UGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVybWluYXRlUGF5
bWVudFByb2Nlc3MiKSk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZv
clRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNz
YWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBu
ZXh0VUlTY3JpcHRDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMgdW5zaWduZWQgY2FsbGJhY2tJ
RCA9IEZpcnN0VUlTY3JpcHRDYWxsYmFja0lEOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBmNWIyYzIwZDIwYjRkOTM5YWRi
MWRkMDIxMGYzZDBlZTI3ZjA0NWQ4Li4wMWI0YmQ2MmVlMjQwZDUwZDUxODk1YTA0N2M0NmMwMDQz
YWU3MmMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaApAQCAtNDQ2LDYgKzQ0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVy
bWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9p
ZCByZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBjYWxs
RGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDU1YTlmYzgxZjkzMjJjOWE1ODljMmEw
NWM0ZTNlN2U5NzRlNDM1Ni4uYTI1OTc1NmYxM2MwMTdhNmU4OTA4YThmNmFkOTcxYTBhOTFmZTM5
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwNjQs
NiArMTA2NCwxNSBAQCBjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NO
YW1lKCkKICNlbmRpZgogfQogCitjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFBy
b2Nlc3NOYW1lKCkKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgcmV0dXJuICJjb20uYXBwbGUu
V2ViS2l0LlBheW1lbnQiOworI2Vsc2UKKyAgICByZXR1cm4gIlBheW1lbnQgcHJvY2VzcyBub3Qg
YXZhaWxhYmxlIG9uIGFueXRoaW5nIGJ1dCBpT1MiOworI2VuZGlmCit9CisKIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAg
IFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhw
bGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzKTsKQEAgLTE0ODksNiArMTQ5OCwxMSBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0
LCBjb25zdCB2b2lkICpjbAogICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3Rf
Y2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVm
IGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8VGVz
dENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBheW1lbnRQcm9j
ZXNzRGlkQ3Jhc2goKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURv
d25NZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURp
Y3Rpb25hcnksIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IGtleUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIp
KTsKQEAgLTE4MjIsNiArMTgzNiwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKCkKICAgICBleGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpw
YXltZW50UHJvY2Vzc0RpZENyYXNoKCkKK3sKKyAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXRQ
YXltZW50UHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0LmdldCgpKTsKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBwYXltZW50UHJvY2Vzc05hbWUoKSwg
c3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7CisgICAgZXhpdCgxKTsKK30KKwogLy8gV0tQYWdlTmF2
aWdhdGlvbkNsaWVudAogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21taXROYXZpZ2F0aW9u
KFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMjYyMSw2ICsyNjQyLDExIEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0NvbnRleHRU
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS0Nv
bnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7Cit9CisKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5U
ZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaAppbmRleCA2MjVhNWI1NDY1OTIyYzdiYWZkOTRiN2FjYzgxMjc2NTdiOGJjOTFm
Li43ZjBmNzViNGRiYWY1ZDkxY2Y0NTA2NzkxNTY1NDM1ZmMzNWY4NDFhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiB3ZWJQcm9jZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBuZXR3b3JrUHJvY2Vzc05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0
YWJhc2VQcm9jZXNzTmFtZSgpOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwYXltZW50UHJvY2Vz
c05hbWUoKTsKIAogICAgIFdvcmtRdWV1ZU1hbmFnZXImIHdvcmtRdWV1ZU1hbmFnZXIoKSB7IHJl
dHVybiBtX3dvcmtRdWV1ZU1hbmFnZXI7IH0KIApAQCAtMjUyLDYgKzI1Myw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2Vz
cygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKIApAQCAtMzU3
LDYgKzM1OSw4IEBAIHByaXZhdGU6CiAgICAgLy8gV0tDb250ZXh0Q2xpZW50CiAgICAgc3RhdGlj
IHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsK
ICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKTsKKyAgICBzdGF0aWMgdm9pZCBwYXlt
ZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQg
cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOwogCiAgICAgLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVu
dAogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmln
YXRpb25SZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBkODFlNThiMzkxN2EyM2JjMzFkNWQ3
NjhlYmE4MWRmMGYwZWE3MmFkLi42NWU5YzU2OTFkNWE1NmQwZjYyMmM1Njc1MGZhMzA0NmU1Njgw
MTE1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQ0
Nyw2ICsxNDQ3LDEyIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiVGVybWluYXRlUGF5bWVudFByb2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQo
IW1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1p
bmF0ZVBheW1lbnRQcm9jZXNzKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwog
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWlu
YXRlTmV0d29ya1Byb2Nlc3MiKSkgewogICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMmZkYTRiMTYzYjIxZWQxYzJmOTIxMjJjNzYwMzEyNDJkMGI0YzdjOS4uZTY3
NGM4YzZhN2Y0NTM2YjIzYzI4MTdhMmRmZGM3MzgyNTA2OTRhOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAg
ICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbDoKKwogMjAxOC0xMS0wNyAgSnVzdGlu
IE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ1NTIFBhaW50
aW5nIEFQSSBzaG91bGQgcGFzcyBzaXplLCBhcmd1bWVudHMgYW5kIGlucHV0IHByb3BlcnRpZXMg
dG8gcGFpbnQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbAppbmRl
eCAwOGE5YTU5NjIzMjEwNGI4NjVlM2FiMmRmODVhOWI5NDU3ZWM4NGU5Li42YzlkY2YzMWY5OThj
NmIyOGZiY2FkOGIyNTdmNDM4OWM1ZDViNmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2Ny
aXB0cy5odG1sCkBAIC0zNiw4ICszNiwxMCBAQCBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAg
ICAgbGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CiAK
ICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgewotICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAg
ICAgICAgdGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOworICAgICAgICB9CiAgICAgICAg
IGF3YWl0IHdhaXRGb3IoMTAwKTsKICAgICAgICAgd2luZG93LmxvY2F0aW9uICs9ICI/dGVzdCMi
ICsgcmFuZG9tSWQ7CiAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354283</attachid>
            <date>2018-11-08 15:32:28 -0800</date>
            <delta_ts>2018-11-09 16:20:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181108153227.patch</filename>
            <type>text/plain</type>
            <size>148086</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmZiZmI1NzRmNTQyZTA0NDU3YjRmNjc3MTA1OWIyODZjNjU0MTQwLi43YjcyYWFjMGZlODI3YzIw
YjM0ZDczYjY4MDU4YTI4MTY1N2Y1NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0wNyAgQ2FpbyBMaW1hICA8dGlj
YWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gQWRkIHN1cHBvcnQgdG8gQmln
SW50IGludG8gVmFsdWVBZGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDMyMGVlMzQ4NTQ3MzY0ZjIzMTYyZGQw
ZDE1NWYyMzkyYzEzOTMyLi42OTkwMWRmNWI2NTNkZGZjMGFjNjY3OWRkYjAwNzFkOWQ0MTNjOTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
RW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDE4LTExLTA3ICBKdXN0aW4g
TWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1MgUGFpbnRp
bmcgQVBJIHNob3VsZCBwYXNzIHNpemUsIGFyZ3VtZW50cyBhbmQgaW5wdXQgcHJvcGVydGllcyB0
byBwYWludCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggM2IwZmVmNmU1Njk1NWU1ZTM5
NWVmOGU2NjhiMWQ0MmUwYjQ4NzQ2Yy4uMDJjOWZlNGE3YjcyNzlhNjliNzdmNDg5YTk0ZDc5Zjlk
MTA0ODRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMTEtMDcg
IFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9j
ZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisKIDIwMTgtMTEtMDYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV2ViR1BVXSBFeHBlcmltZW50YWwgcHJvdG90eXBlIGZvciBXZWJHUFVSZW5kZXJQ
aXBlbGluZSBhbmQgV2ViR1BVU3dhcENoYWluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwYmQ0ZjZlZGZhYTU1YmYx
YTM5MzYwNTIzMzhiYWQ1N2JlNDkwYzMuLmI3OWMyNzM2MmVlMjJmZjQ5YzQzMGJmMGMwNTA3MDYy
NDFhYmE3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIzIEBACisyMDE4LTExLTA3ICBaYW1pdWwg
SGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHVi
IHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jh
c2VUYXJnZXQueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJv
eC5lbnRpdGxlbWVudHM6IEFkZGVkLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpl
bnN1cmVQYXRoRXhpc3RzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnBvc3RQ
YXltZW50VGFzayk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4
dFBheW1lbnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpp
bml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaDogQWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVk
LgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5
bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5j
cHA6CisgICAgICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAg
IChXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5h
dGVQYXltZW50UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVu
Y2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxi
YWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJv
Y2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1l
bnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0
ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJv
eHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJv
eHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJv
Y2Vzc0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0U3VwcGxlbWVudDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNz
SWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQ
YXltZW50UHJvY2Vzc0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFBy
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxOC0xMS0wOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gQ3Jhc2ggd2hlbiBydW5uaW5nIHdpdGggc2FuZGJveCBlbmFibGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMzVlMjYzMDJhNzc3YTI3YzkwODcxNDk4NTJmMmFhOTZjNDcyZTAw
Mi4uOTRmNWU2N2ZhNjc5M2RlYjM0NzZmYzdjZWJjZThhNjM5YzM0OWYwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFx
dWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdp
dGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4
LTExLTA2ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUgYW5k
IFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZm
MmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3
MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgs
NyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJ
R0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJ
Q0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29z
eCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwog
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJM
RV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05B
TUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNk
NjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0
b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05T
ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9O
T1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZ
TUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJ
Tl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2
ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZi
NzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiArMjg4LDcgQEAg
RU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9S
X1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElP
TlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBF
TkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERG
S0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
IGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCAxMGFi
MjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4xMmI1MDkzYzhiMDdiM2Q2ODll
Njg0YjVmODk0MWY4OTc4NTUwYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2
aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUu
ICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSI7
CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudCIgPSAiJUAgUGF5bWVudCI7
CisKIC8qIFZpc2libGUgbmFtZSBvZiB0aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBXZWIgQ29udGVudCIgPSAiJUAgV2ViIENvbnRl
bnQiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBmMTYxNTQyNzMyNmQ4OGJhYWRiNWU5M2MyM2Rj
YTc1NDNiMTgwNGM1Li4zNWI4N2IyNmQ2ODg3NmE0YTNkNDU0ZDYyN2U0YjZkNzBjZmNmZmU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTMxLDcgKzMxLDkgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExIgogICAgICIke1dF
QktJVF9ESVJ9L1NoYXJlZC9SZW1vdGVMYXllclRyZWUiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hh
cmVkL1BheW1lbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1dlYnNpdGVEYXRhIgorICAg
ICIke1dFQktJVF9ESVJ9L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJv
Y2VzcyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQyIKQEAgLTQ3LDYgKzQ5LDcgQEAgc2V0KFdlYktpdF9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMi
CiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvVXNlckNvbnRlbnQiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIgogICAgICIke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrIgpAQCAtMTIxLDYgKzEy
NCw5IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENTb2NrZXQubWVzc2FnZXMuaW4KIAorICAgIFBheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpAQCAtMTUxLDYgKzE1Nyw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5f
RklMRVMKIAogICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgogCiAgICAgVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMjEsNiArMjI5LDEwIEBAIHNldChOZXR3b3JrUHJvY2Vz
c19MSUJSQVJJRVMKICAgICBXZWJLaXQKICkKIAorc2V0KFBheW1lbnRQcm9jZXNzX0xJQlJBUklF
UworICAgIFdlYktpdAorKQorCiBzZXQoUGx1Z2luUHJvY2Vzc19MSUJSQVJJRVMKICAgICBXZWJL
aXQKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2Nv
bmZpZwppbmRleCA0MDVkNjNiYmIwMTJhMzllNjVkYThiYThiODkwODM1OGEyNThiZDZjLi5lZWI3
YTI2YWRhMTQ2M2QyYWQ1YThkY2ZkYjIwNmE0ZDYzY2YzZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKKysrIGIvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCkBAIC0xMTEsNiArMTExLDgg
QEAgV0tfSEFWRV9DT1JFX1BSRURJQ1RJT05bc2RrPW1hY29zeCpdW2FyY2g9aTM4Nl0gPSBOTzsK
IFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTID0gJChXS19DT1JFX1BSRURJQ1RJT05fREVGSU5F
U18kKFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OKSk7CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5F
U19ZRVMgPSBIQVZFX0NPUkVfUFJFRElDVElPTjsKIAorV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RV
Q1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisKIFdLX1NUT1JBR0VfU0VSVklD
RV9QUk9EVUNUX05BTUUgPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfJChXS19V
U0VfTEVHQUNZX1NUT1JBR0VfU0VSVklDRV9OQU1FKSk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJP
RFVDVF9OQU1FXyA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyk7CiBXS19T
VE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4u
MzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0y
ODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5B
QkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJP
Q0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNU
OwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19Q
TEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODZh
YTcxNWFlMGVmMmVkODQwNzE0M2M5Y2ZlYjBhNjIxZjE1Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVt
ZW50cwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04
Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4i
ICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlz
dCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5jb20uYXBwbGUucm9vdGxlc3MucGF5bWVu
dC5XZWJLaXRQYXltZW50U2FuZGJveDwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNl
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54
Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42M2EzNzRlMGY1ZDhhYmM1ZDM4NDJkOWJlMDZhZDcwM2RiMTRm
MDk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXlt
ZW50U2VydmljZS54Y2NvbmZpZwpAQCAtMCwwICsxLDM0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8g
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWci
CisKK1dLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19QQVlNRU5U
X0VOVElUTEVNRU5UU19SRVNUUklDVEVEX1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NY
LXNhbmRib3guZW50aXRsZW1lbnRzOworCitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RP
VUNIX05PID0gJChXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JF
U1RSSUNURURfRU5USVRMRU1FTlRTKSk7CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJ
QlJBUllfVkFMSURBVElPTl9DT0RFX1NJR05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdL
X1BBWU1FTlRfU0VSVklDRV9QUk9EVUNUX05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklF
UiA9ICQoUFJPRFVDVF9OQU1FKTsKK0lORk9QTElTVF9GSUxFID0gOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IGU0OTIxNTFlMDRiNjNkNGY4ZjA2YzA5MDMxNmU1MjAxYTFiYjhlOWUu
LmFiOGZiYzk5ZDU5MzE3YTc3NDc4MjllZjg4NTdiODQzZTBhYjZkYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTM3LDYgKzM3LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQy
KS9TaGFyZWQvQVBJL0NvY29hIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlv
biBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvbWFjIFwKKyAgICAkKFdlYktpdDIpL1BheW1lbnRQ
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGVQYXkgXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvQXV0b21hdGlvbiBcCkBAIC03Myw2ICs3NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QYXltZW50IFwKICAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTMxLDYgKzEz
Myw5IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRy
b2xsZXIgXAogICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCisgICAg
UGF5bWVudFByb2Nlc3MgXAorICAgIFBheW1lbnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCiAg
ICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9s
bGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODMxYzUxMDM5ZGJkZjVmNzMzYjVlZGFjMjkxZDU3YWRhNjMwNzZiYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwCkBAIC0wLDAgKzEsMTk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1
ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVu
Y29kaW5nLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9DYWxs
YmFja0FnZ3JlZ2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2VzczsKKyAgICByZXR1cm4g
cHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkKKyAgICA6IG1f
cXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudFByb2Nlc3Mi
KSkKK3sKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhl
IHRleHQgZW5jb2RpbmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJl
Zm9yZSBhIGJhY2tncm91bmQgdGhyZWFkIG5lZWRzIGl0LgorICAgIC8vIEZJWE1FOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhw
bGljaXQgd2F5IG9mIGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGlu
Zy4KKyAgICBVVEY4RW5jb2RpbmcoKTsKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2VzcygpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRp
YWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpz
aG91bGRUZXJtaW5hdGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlz
cGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQ
cm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1l
bnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6Q2hpbGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0
cyhjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CisKKyAgICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhwYXRoKSkKKyAgICAg
ICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gbWFrZSBhbGwgZGlyZWN0b3JpZXMgZm9yIHBhdGggJyVz
JyIsIHBhdGgudXRmOCgpLmRhdGEoKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OnBvc3RQ
YXltZW50VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQoreworICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BheW1lbnRUYXNrTXV0ZXgp
OworCisgICAgbV9wYXltZW50VGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykpOworCisgICAgbV9x
dWV1ZS0+ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgcGVyZm9ybU5leHRQYXltZW50VGFzaygp
OworICAgIH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4dFBheW1lbnRU
YXNrKCkKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIENyb3NzVGhy
ZWFkVGFzayB0YXNrOworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wYXltZW50
VGFza011dGV4KTsKKyAgICAgICAgQVNTRVJUKCFtX3BheW1lbnRUYXNrcy5pc0VtcHR5KCkpOwor
ICAgICAgICB0YXNrID0gbV9wYXltZW50VGFza3MudGFrZUZpcnN0KCk7CisgICAgfQorCisgICAg
dGFzay5wZXJmb3JtVGFzaygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luKQoreworI2lmIFVTRShV
TklYX0RPTUFJTl9TT0NLRVRTKQorICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2Nr
ZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oKTsKKyAg
ICBtX3BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShzb2NrZXRQYWlyLnNlcnZlcikpOworICAgIHBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRp
ZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudChzb2Nr
ZXRQYWlyLmNsaWVudCkpLCAwKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAvLyBDcmVhdGUgdGhl
IGxpc3RlbmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQgPSBNQUNIX1BP
UlRfTlVMTDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxm
KCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7CisgICAgaWYgKGty
ICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0
ZSBtYWNoIHBvcnQsIGVycm9yICV4Iiwga3IpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKwor
ICAgIC8vIENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIG1fcGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSkpOworCisg
ICAgSVBDOjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQ
RV9NQUtFX1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXI7Cisg
ICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckFuZENsaWVudElkZW50aWZpZXJz
KHNlcnZlcklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIExPR19FUlJP
UigiRmFpbGVkIHRvIGNyZWF0ZSBzZXJ2ZXIgYW5kIGNsaWVudCBpZGVudGlmaWVycyIpOworICAg
ICAgICBDUkFTSCgpOworICAgIH0KKworICAgIGF1dG8gY29ubmVjdGlvbiA9IFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoc2VydmVySWRlbnRpZmllcik7CisgICAgbV9wYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFdURk1vdmUoY29ubmVjdGlvbikpOwor
CisgICAgSVBDOjpBdHRhY2htZW50IGNsaWVudFNvY2tldChjbGllbnRJZGVudGlmaWVyKTsKKyAg
ICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vz
c1Byb3h5OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjbGllbnRTb2Nr
ZXQpLCAwKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCisjaWYg
IVBMQVRGT1JNKENPQ09BKQordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3Mo
Y29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKKyAgICB7CisjaWYg
T1MoTElOVVgpCisgICAgICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCk7CisgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxl
ci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwsIFN5bmNocm9ub3VzKSB7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogbm8gbG93TWVtb3J5SGFuZGxlcigpIGltcGxlbWVudGVkIGZv
ciBQYXltZW50UHJvY2VzcyBjdXJyZW50bHkuCisgICAgICAgICAgICAvLyBCdXQgYXQgbGVhc3Qg
ZGVmaW5lIHRoaXMgc2V0TG93TWVtb3J5SGFuZGxlcigpIGVtcHR5IHNvIHBsYXRmb3JtUmVsZWFz
ZU1lbW9yeSBpcyBjYWxsZWQuCisgICAgICAgIH0pOworICAgICAgICBtZW1vcnlQcmVzc3VyZUhh
bmRsZXIuaW5zdGFsbCgpOworI2VuZGlmCisgICAgfQordm9pZCBQYXltZW50UHJvY2Vzczo6ZGVz
dHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwg
U2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisjZW5kaWYgLy8gIVBMQVRG
T1JNKENPQ09BKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5U
KFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFByb2Nlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDJjNzg2OTAzOTNlYTYzZDkzZTg2ZGI2ODFkMGNkZTlm
ZDY5YzllCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3MpOworICAgIGZyaWVuZCBO
ZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz47CitwdWJsaWM6CisgICAgc3RhdGljIFBheW1l
bnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBl
IHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisKKyAgICB+UGF5bWVudFByb2Nl
c3MoKTsKKworICAgIHZvaWQgcG9zdFBheW1lbnRUYXNrKENyb3NzVGhyZWFkVGFzayYmKTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisg
ICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGls
ZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGlu
aXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJp
ZGU7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9y
ZShjb25zdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZvaWQgY3Jl
YXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9j
ZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisKKyAgICB2b2lkIGRlc3Ryb3lT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKKyAgICAKKyAgICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdv
cmsgcXVldWUgdGhyZWFkIG9ubHkKKyAgICB2b2lkIHBlcmZvcm1OZXh0UGF5bWVudFRhc2soKTsK
KyAgICB2b2lkIGVuc3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJik7CisKKyAgICBWZWN0b3I8
UmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPj4gbV9wYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbnM7CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworCisgICAgRGVxdWU8
Q3Jvc3NUaHJlYWRUYXNrPiBtX3BheW1lbnRUYXNrczsKKyAgICBMb2NrIG1fcGF5bWVudFRhc2tN
dXRleDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQo
UEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU3NmM0MjE3MDU2MDhl
NjViNzFhMWQ5MGRjNmM2ZTU0ZDAzNTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwy
OCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgeworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTI2ODk2MjBhZjI0N2U1NmU3YTc4
N2VkNDVmNGEyODZlMGQ5OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDg4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKwor
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworfQorCitQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDog
bV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25u
ZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIC8vIFVzZSB0aGlzIGZsYWcgdG8gZm9y
Y2Ugc3luY2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hyb25vdXMgbWVz
c2FnZXMgaW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUgV2ViUHJvY2Vz
cyB3b3VsZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3YWl0aW5nIGZv
ciBhIHN5bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1lbnQgcHJvY2Vz
cywgd2hpY2ggd291bGQgYmUgdW5zYWZlLgorICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRN
ZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3Vj
aEFNZXNzYWdlKHRydWUpOworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRS
ZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQg
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb25u
ZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQor
eworCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmMwMWZh
Zjg1YTVlNTUxY2FkYmU2NzhlOTMxYjhjNGJkYmYyZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJN
ZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6
Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAg
IH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6
CisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9
CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJl
dHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk4NDMyMjU5NjYyNjkzNTkzOTE2ZTNkOTRjYTk1NGZkNTA5NzlhNmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNz
YWdlcyAtPiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7Cit9
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1Bh
eW1lbnRQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5
bWVudFByb2Nlc3NJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2ZjA4NmNjMjUzNzUxNGNmMWFiYzQ5MmNj
M2E0YWI4NTE1YzAwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNp
bXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKworI2RlZmluZSBFTkFC
TEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcgMAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6
aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1l
dGVycykKK3sKKyNpZiBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcKKyAgICAvLyBO
ZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVy
ZW50IGJ1bmRsZSBJRC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBi
dW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICBzYW5k
Ym94UGFyYW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRs
ZSBwYXRoRm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIiBvZlR5cGU6QCJz
YiJdKTsKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNh
bmRib3hQYXJhbWV0ZXJzKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMu
c2IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTBjN2NiZmY4Y2RiNzg5NjRjNzY0ZTRlMmU0ZGZmZDYxMDMyODU5Ygot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDQ3IEBACis7IENv
cHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsK
KzsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCis7IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsK
KzsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKzsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKzsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorOyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVu
eSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1
ZGl0IGZpbGUtcmVhZC1tZXRhZGF0YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkg
bWFjaC1sb29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVu
KQorCisoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAoZXh0ZW5zaW9uICJjb20uYXBwbGUu
YXBwLXNhbmRib3gucmVhZC13cml0ZSIpKQorCisoZGVueSBzeXNjdGwqKQorKGFsbG93IHN5c2N0
bC1yZWFkCisgICAgKHN5c2N0bC1uYW1lCisgICAgICAgICJody5hdmFpbGNwdSIKKyAgICAgICAg
Imh3Lm5jcHUiCisgICAgICAgICJody5tb2RlbCIKKyAgICAgICAgImtlcm4ubWVtb3J5c3RhdHVz
X2xldmVsIgorICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkKKworOzsgVmFyaW91cyBz
ZXJ2aWNlcyByZXF1aXJlZCBieSBzeXN0ZW0gZnJhbWV3b3JrcworKGFsbG93IG1hY2gtbG9va3Vw
CisgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NoaWxkUHJvY2Vzcy5oCmluZGV4IGE3MmJjOTI5ZGJkN2M3NGMyMjY2OWI4MjMxN2E2MWZmYWJk
ZjM3NjkuLjVkMGNjNmUyZjU0ZDM2ODMyZGQyNWY4N2MwODI3NzA5M2JkYzNhNTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICAg
ICAgV2ViQ29udGVudCwKICAgICAgICAgTmV0d29yaywKICAgICAgICAgUGx1Z2luCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudAorI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBDaGls
ZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTczNzA5NzM0MDNkNDYzNDA4ZWQ2M2JiY2VmNDU2M2Jk
MDA5OTgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisKKyNp
bmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHNlc3Np
b25JRDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zZXNzaW9uSUQpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWM4NjNjMDBhOGE0MDcwMTM1MTJjYTIz
MWMwNTU4MzUxN2I5ZWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
UGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29kZXI7Citj
bGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFBheW1lbnRQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycygpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAppbmRleCAyY2U3
MTZlNGM3MmU1ODJhYmUzMGY0ODc5ZDJjNmViOWU0OTlhOTdiLi42MmI1NDc0ZWZhYTcyNGVhYjUy
OGI0ZjY3MDE3OTFmMGNlOWFhZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
cm9jZXNzRXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNz
RXhlY3V0YWJsZVBhdGguaApAQCAtMzIsNSArMzIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0
cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRo
T2ZQbHVnaW5Qcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNz
KCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9m
UGF5bWVudFByb2Nlc3MoKTsKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggZWRiYjVlMWY2Nzk0YjZmNDgxM2UzYWNhNmNlNTAzZWJmYzMyMGUx
OS4uY2VkNjhmNTM4NDY1MjE3MWRhYzRlM2Q4NDNhNDQxYmU3MmQ3MTk3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC0yMTksOCArMjE5LDEzIEBAIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwIEBuby11bmlmeQogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5Nb2R1bGUuY3BwICBAbm8tdW5pZnkKIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1Bs
dWdpbkluZm9ybWF0aW9uLmNwcCBAbm8tdW5pZnkKIAorU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YS5jcHAKIAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIEBuby11bmlmeQor
UGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIEBuby11bmlm
eQorCiBVSVByb2Nlc3MvQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcAog
VUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuY3BwCkBAIC0zODEsNiArMzg2LDggQEAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0
b3JlLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50
L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlci5jcHAKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5jcHAKIApAQCAtNDkxLDYgKzQ5OCw3IEBAIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV09yaWdpblRhYmxlLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyLmNwcAorV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmNwcAogCiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDU5NGJmOTBkZDVmMDhiZmRjNDM0
YjlmNWRjNTllNDhjM2FhMmQ3MWUuLjBlNDIwZWY2ODg3MGYxNjg1MmQwZjNhNmQ5ZTUzNTYxNGZk
NTMxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE5NCw2ICsxOTQsOSBAQCBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQogU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQogU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAog
CisKK1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbSBAbm8tdW5pZnkKKwog
VUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQogVUlQcm9jZXNzL0FwcGxpY2F0
aW9uU3RhdGVUcmFja2VyLm1tCiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAppbmRleCAwNDAxZTcyYjRjNmY1ZTRlNTlkZDhjYWI0MGI2NjQzNWQ0ZjU4ZmI5Li43YmYzZjVh
MTJjOTdlY2E3OWRiNzQwZTY5YzQ1ZGZjOWVhNGFiYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSwxMSArNjIxLDI3IEBAIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHQp
CiAgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7
CiB9CiAKK3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVm
IGNvbnRleHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0b0ltcGwoY29u
dGV4dCktPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3Jr
UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0dXJu
IHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKK1By
b2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVm
IGNvbnRleHRSZWYpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4g
dG9JbXBsKGNvbnRleHRSZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisg
ICAgcmV0dXJuIDA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogdm9p
ZCBXS0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
U3RyaW5nUmVmIGRvbWFpblJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJheVJlZiBtaW1l
VHlwZXNSZWYsIFdLQXJyYXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dFByaXZhdGUuaAppbmRleCA0NmQzN2UxZThhMTU4OTU4MGEzNTUzOGVlNWY2ZjliYzJkODBl
MjJjLi4xZjFlODczOWQzMmVkNzZkNTE3MTFjNmJkN2JlYTA2OTQxM2Y5NDJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC05Miw2
ICs5Miw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3JrUHJvY2VzcyhX
S0NvbnRleHRSZWYsIGJvb2wpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVO
ZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKy8vIE5PVEU6IFRoaXMg
aXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmKTsK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JX
ZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdL
Q29udGV4dFJlZiwgYm9vbCk7CkBAIC0xMTIsNiArMTE0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYpOwogV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBjb250ZXh0
LCBXS1VSTFJlZiBzZXJ2ZXJVUkwpOwogCiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0
R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VY
UE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRBZGRTdXBwb3J0
ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIGRvbWFpbiwgV0tTdHJp
bmdSZWYgbmFtZSwgV0tBcnJheVJlZiBtaW1lVHlwZXMsIFdLQXJyYXlSZWYgZXh0ZW5zaW9ucyk7
CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhclN1cHBvcnRlZFBsdWdpbnMoV0tDb250ZXh0
UmVmIGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbQppbmRleCBjZjI4MTFlOGIzYWNhYWIwZDA4MWUwODgyY2JmZDgzYzdk
NWRkNWNlLi4wZjMyMTI4YTJmM2RhODU1NmY0NDRkNzQ5Y2I1MzkyNzg1MDgxNmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpA
QCAtNDI0LDYgKzQyNCwxMyBAQCAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMKICAgICBf
cHJvY2Vzc1Bvb2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogfQogCistICh2b2lkKV90ZXJt
aW5hdGVQYXltZW50UHJvY2VzcworeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
X3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3
b3JrUHJvY2VzcwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29ya1Byb2Nlc3Mo
KTsKQEAgLTQ0NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmll
cgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwog
fQogCistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50UHJvY2Vzc0lk
ZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2xQcml2YXRlLmgKaW5kZXggNGQzYTE5MTIwYWJkNDllZWUwNDkyNzk0YTc3ZjRhZmIwNmNkZTkw
Yy4uMGI5OTllODY0YTkxOWFjNThjOTAxOWM4NDYzZTYwN2M1ZjM3ZWNmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmgKQEAgLTg0LDEyICs4NCwxNiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxv
YWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8v
IFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHBy
b2Nlc3NlcyBhcmUgcnVubmluZy4KKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hl
biBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFBy
b2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1p
bmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQp
LCBpb3MoMTIuMCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWlu
YXRpb25EZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAK
IC8vIFRlc3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTogVGhpcyBpcyBv
bmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistIChwaWRfdClf
cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjMpKTsKIAog
Ly8gVGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA4N2IwYmJlYzgxMzAzYTc1Yzg1
ZTJhOGNiYzMwZTdhYzIyZDgzZGNlLi42ZDY2ZWMzMWFmZjZlZGMxYTQxZjY4NDgzMjUyM2NkODdl
NmJkMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgICAgIFBsdWdpbjY0
LAogI2VuZGlmCiAgICAgICAgIE5ldHdvcmssCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICAgICAgUGF5bWVudCwKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAg
IH07CiAKICAgICBzdHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRl
eCAzYjQ2MTYzNGU4NTE3MzlkNjk1ZDA1NTViZTU0ZDY5YjQ4NDYwNjQ4Li4wMjJhZDMyNzdjZGNm
MzJmNDM4MDM4MTIxODE0MDczZjlkNGE0NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTYy
LDYgKzYyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NM
YXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICAgICBjYXNlIFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5X
ZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorICAgIGRlZmF1bHQ6IHJldHVybiBuaWw7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1l
bnRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGI0N2NlYTkyNTU3MjU0NGYwMDQ0YTJm
NzMwMTY1NGI0ZDE1MzVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisKKyNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5o
IgorI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1l
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQoKQorewor
ICAgIHN0YXRpYyB1aW50NjRfdCBjYWxsYmFja0lEOworCisgICAgcmV0dXJuICsrY2FsbGJhY2tJ
RDsKK30KKworUGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9j
ZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCisgICAgOiBDaGlsZFByb2Nlc3NQcm94eShwcm9jZXNzUG9v
bC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAsIG1fcHJvY2Vzc1Bvb2wo
cHJvY2Vzc1Bvb2wpCisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKK3sK
KyAgICBjb25uZWN0KCk7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vz
c1Byb3h5KCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JU
ZXN0aW5nKCkKK3sKKyAgICB0ZXJtaW5hdGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1
bmNoT3B0aW9ucykKK3sKKyAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xh
dW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDsKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0
TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25zKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sK
KyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29u
bmVjdGlvbik7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXlt
ZW50UHJvY2Vzc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVj
ZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwg
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5h
cHBlbmQoV1RGTW92ZShyZXBseSkpOworCisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5j
aGluZykgeworICAgICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMrKzsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZh
bHNlOworICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKKworICAgIHNlbmQo
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBzZWN1cml0eU9yaWdpbiksIDAsIElQQzo6U2Vu
ZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQor
eworICAgIGF1dG8gcHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bvb2wp
OworCisgICAgLy8gVGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0
ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAg
d2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
YXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworCisj
aWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVu
dCgpKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KDAs
IE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBy
ZXBseShJUEM6OkF0dGFjaG1lbnQoKSk7CisjZWxzZQorICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworI2VuZGlmCisgICAgfQorICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0
IHRoaXMgcGF5bWVudCBwcm9jZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgor
ICAgIG1fcHJvY2Vzc1Bvb2wucGF5bWVudFByb2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0
dGFjaG1lbnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghbV9wZW5kaW5n
Q29ubmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKTsKKworICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRp
bmdDb25uZWN0aW9uUmVwbGllcy50YWtlRmlyc3QoKTsKKworI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQorICAgIHJlcGx5KGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyNlbGlmIE9TKERBUldJ
TikKKyAgICByZXBseShJUEM6OkF0dGFjaG1lbnQoY29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgp
LCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICByZXBs
eShjb25uZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVu
dGVkKCk7CisjZW5kaWYKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIENoaWxkUHJvY2Vzc1Byb3h5Ojpk
aWRGaW5pc2hMYXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAg
IGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRp
ZmllcikpIHsKKyAgICAgICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVwIGhlcmUuCisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9udW1Q
ZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOyArK2kpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihmYWxzZSwg
eyB9KSwgMCk7CisgICAgCisgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVu
dFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50
UHJvY2Vzc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEzZjUyYmE3NjEyZGFhM2MyM2NiMDE0NWYxNjEy
NTAzODU2ZDI2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NQcm94eS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
Q2hpbGRQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lv
bklEOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK3N0
cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJQcm9jZXNzUG9vbDsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKK2VudW0gY2xhc3MgV2Vi
c2l0ZURhdGFUeXBlOworc3RydWN0IFdlYnNpdGVEYXRhOworCitjbGFzcyBQYXltZW50UHJvY2Vz
c1Byb3h5IGZpbmFsIDogcHVibGljIENoaWxkUHJvY2Vzc1Byb3h5IHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJik7CisgICAgflBheW1l
bnRQcm9jZXNzUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKworICAgIHZvaWQgdGVybWlu
YXRlRm9yVGVzdGluZygpOworCitwcml2YXRlOgorICAgIC8vIENoaWxkUHJvY2Vzc1Byb3h5Cisg
ICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYp
IG92ZXJyaWRlOworICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24m
KSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCisgICAgLy8gTWVz
c2FnZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisKKyAgICAvLyBQcm9jZXNzTGF1bmNoZXI6
OkNsaWVudAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CisKKyAgICBXZWJQcm9jZXNzUG9v
bCYgbV9wcm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25S
ZXF1ZXN0czsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxp
ZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZWZm
YmI1ODI5Y2EwNjZlNWViMzRjMWM3ZTQ5NmU3YTNmMzg2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRQ
cm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgeworICAgIERpZENyZWF0ZVBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKKwor
fQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGZhNDU3NjJlY2ViYTAxM2E2YWNhNGY5
NjRkYTg1NjYzOTc0MWQ1NzUuLmJlYzc5YjU0Y2JmNmM2ZWM1ZWZlZmY0YTk3NTcwZjY5OWI1NTNm
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBA
IC00Niw0ICs0NiwxMSBAQCB2b2lkIFdlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlk
Q3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogICAgIG1fY2xpZW50Lm5ldHdvcmtQ
cm9jZXNzRGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViQ29udGV4dENs
aWVudDo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wp
Cit7CisgICAgCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b250ZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmgKaW5kZXggODBjMzExMjJjMDc3NmQ0ZWU4ZDc3OGQ1NjY4MjEwMTUyMjE2MzdkNi4uNTliM2E0
MDc5MTA4ZjIzOGYxZDZmOGFiZjFhYjllZGNjODQ1MzkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaApAQCAtNDUsNiArNDUsMTAgQEAgY2xhc3MgV2ViQ29u
dGV4dENsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbnRleHRDbGllbnRCYXNlPiB7CiBw
dWJsaWM6CiAgICAgdm9pZCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkKFdlYlBy
b2Nlc3NQb29sKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQ
b29sKik7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHBheW1lbnRQcm9j
ZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaAppbmRleCBlZDU1YjQwM2RiMjlm
OTQwMDQzOGJhMzJhNjBjNzU4Mjc0OTM0ZmE2Li4yYzZhY2JiMDVjYjAyNmFjZGE3NWMwNjdkMWYw
ZDlkNDU5YTEyN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0U3VwcGxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50LmgKQEAgLTI5LDYgKzI5LDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xh
c3MgUGF5bWVudFByb2Nlc3NQcm94eTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIApAQCAt
NTQsNiArNTgsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2Uo
TmV0d29ya1Byb2Nlc3NQcm94eSopCiAgICAgewogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoUGF5bWVudFBy
b2Nlc3NQcm94eSopCisgICAgeworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogCiAgICAgV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKCkgY29uc3QgeyByZXR1cm4g
bV9wcm9jZXNzUG9vbDsgfQogICAgIHZvaWQgY2xlYXJQcm9jZXNzUG9vbCgpIHsgbV9wcm9jZXNz
UG9vbCA9IG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAppbmRleCBlNGE4NzcwNDc1NzhjNDhmNDBkNzFjNjkyN2M5NjVkYjk2MmI3OTQwLi5lZTU5
NjJlMTcyYjdiOGJmZmM2ZTUyZTkwNTA4NGI1MGRjZmU5YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01NCw2ICs1NCwxMCBAQAogI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5j
bHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQu
aCIKICNpbmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgpAQCAtNDQyLDYgKzQ0Niw5IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGJvb2wgaXNDcml0aWNh
bCkKIHsKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlk
UmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOwogICAgIHNlbmRUb05ldHdv
cmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVz
c3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVN
ZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFBsdWdpblBy
b2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZW5kTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRp
Y2FsKTsKICNlbmRpZgpAQCAtNjA3LDYgKzYxNCwzNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpn
ZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJv
eAogICAgIG1fbmV0d29ya1Byb2Nlc3MtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih3ZWJQ
cm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2VzcygpCit7Cisg
ICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzID0gc3Rk
OjptYWtlX3VuaXF1ZTxQYXltZW50UHJvY2Vzc1Byb3h5PigqdGhpcyk7Cit9CisgICAgCit2b2lk
IFdlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1By
b3h5JiB3ZWJQcm9jZXNzUHJveHksIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBt
X3BheW1lbnRQcm9jZXNzLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1By
b3h5LCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQ
cm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2Vzc1Byb3h5KQor
eworICAgIEFTU0VSVChtX3BheW1lbnRQcm9jZXNzKTsKKyAgICBBU1NFUlQocGF5bWVudFByb2Nl
c3NQcm94eSA9PSBtX3BheW1lbnRQcm9jZXNzLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgc3Vw
cGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCisgICAgICAgIHN1cHBsZW1lbnQtPnBy
b2Nlc3NEaWRDbG9zZShwYXltZW50UHJvY2Vzc1Byb3h5KTsKKworICAgIG1fY2xpZW50LnBheW1l
bnRQcm9jZXNzRGlkQ3Jhc2godGhpcyk7CisKKyAgICBpZiAobV9hdXRvbWF0aW9uU2Vzc2lvbikK
KyAgICAgICAgbV9hdXRvbWF0aW9uU2Vzc2lvbi0+dGVybWluYXRlKCk7CisKKyAgICBtX3BheW1l
bnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0
YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9j
ZXNzUHJveHkmIHByb3h5LCBTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgc3Rk
OjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbklEKQogewpAQCAtNjgzLDYgKzcyMCw5
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVC
cm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6QWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKCkpKTsKICAgICB9IGVs
c2UgewogICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5yZW1vdmVTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vz
czo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgICAgIHNlbmRUb0Fs
bFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwogICAgIH0KIH0KQEAgLTEzMzYsNiAr
MTM3NiwxNSBAQCBWZWN0b3I8U3RyaW5nPiBXZWJQcm9jZXNzUG9vbDo6YWN0aXZlUGFnZXNPcmln
aW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9jZXNzSQogICAgIH0KICAgICByZXR1cm4geyB9
OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQcm9jZXNzSUQgV2ViUHJvY2Vzc1Bv
b2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9j
ZXNzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3BheW1lbnRQcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRo
KGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7CkBAIC0xNjA3LDYgKzE2NTYsMTcgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgaWYgKG1fbmV0
d29ya1Byb2Nlc3MpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDApOwogfQorICAgIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQ
YXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+dGVybWluYXRlRm9yVGVz
dGluZygpOworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5l
dHdvcmtQcm9jZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CmluZGV4IGQzYThkOGU1YjBhZmRmNmFlNGU1MzA2ZjQ5M2E4YjljYjUwYzI1ZWQuLjQyYTcwYWE4
MDc1YmU1ZjllY2VhMTlkOWI4ZTkyODJiYTMwYWY1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIlByb2Nlc3NU
aHJvdHRsZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5j
bHVkZSAiU3RhdGlzdGljc1JlcXVlc3QuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHkuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIK
QEAgLTE3Myw2ICsxNzYsMTIgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+IHZvaWQgc2VuZFN5bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlLCBV
JiYgcmVwbHkpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2lu
Z1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJvY2Vz
cyBvciBQYXltZW50UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBt
b2RlbC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNz
KFQmJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1l
bnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5j
aGluZyhXZWJQcm9jZXNzUHJveHkqKTsKIAogICAgIC8vIERpc2Nvbm5lY3QgdGhlIHByb2Nlc3Mg
ZnJvbSB0aGUgY29udGV4dC4KQEAgLTIxNyw2ICsyMjYsOSBAQCBwdWJsaWM6CiAgICAgUHJvY2Vz
c0lEIG5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogICAgIFZlY3RvcjxTdHJpbmc+IGFjdGl2
ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3RpbmcoUHJvY2Vzc0lEKTsKICAgICBib29s
IG5ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUHJvY2Vzc0lEIHBheW1lbnRQcm9jZXNz
SWRlbnRpZmllcigpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBX
ZWJQYWdlR3JvdXAmIGRlZmF1bHRQYWdlR3JvdXAoKSB7IHJldHVybiBtX2RlZmF1bHRQYWdlR3Jv
dXAuZ2V0KCk7IH0KIApAQCAtMjc2LDYgKzI4OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFs
bG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wpOwogCiAgICAgdm9pZCBjbGVh
ckNhY2hlZENyZWRlbnRpYWxzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2
b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwog
ICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcygpOwogICAgIHZvaWQgZGlz
YWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOwpAQCAtMzQyLDYgKzM1
NywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihX
ZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgdm9pZCBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIFBheW1lbnRQcm9j
ZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzKCkgeyByZXR1cm4gbV9wYXltZW50UHJvY2Vzcy5nZXQo
KTsgfQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94
eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAg
IHZvaWQgcGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkqKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHN0
ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJRCh1aW50NjRfdCBwYWdlSUQp
IGNvbnN0OwpAQCAtNjQwLDYgKzY2MSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9kaWROZXR3
b3JrUHJvY2Vzc0NyYXNoIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1By
b2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50UHJvY2Vzc1Byb3h5PiBtX3BheW1lbnRQcm9j
ZXNzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPj4gbV9kaWN0aW9uYXJ5Q2FsbGJhY2tz
OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0aWNzUmVxdWVzdD4+IG1fc3Rh
dGlzdGljc1JlcXVlc3RzOwpAQCAtNzQxLDYgKzc2NSwyMiBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3Nh
Z2UpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSks
IDApOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2Fn
ZSkKK3sKKyAgICBpZiAobV9wYXltZW50UHJvY2VzcyAmJiBtX3BheW1lbnRQcm9jZXNzLT5jYW5T
ZW5kTWVzc2FnZSgpKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2Fy
ZDxUPihtZXNzYWdlKSwgMCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYm
IG1lc3NhZ2UpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBtX3BheW1lbnRQ
cm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25zdCBUJiBtZXNzYWdlKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTk5YzVhMDE2
ZGI1ZjNiZjFlZjdkNDVmNTIxYmNlN2NlNDZhNGE1NC4uZTQxNmFhMDBjMDE4NzdlMzQ3NDY0ZmZh
OTNmNzQ3MDNjNDJhZGQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC02MjMsNiArNjIzLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0CiB7
CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBX
VEZNb3ZlKHJlcGx5KSk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQg
aW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3Byb2Nlc3NQ
b29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIGluaXRpYWxTZXNzaW9uSUQs
IFdURk1vdmUocmVwbHkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
CiAjaWYgIVBMQVRGT1JNKENPQ09BKQogYm9vbCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSXNC
ZWluZ0RlYnVnZ2VkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKaW5kZXggMWJiODgzY2YyZjIzYTcwNjRhYmQ0Y2VmN2U1OWI3NmNkZWVkODJmMy4uNGY0
NDBkN2ZmMTcyMmU0NmEzYjQ2NjlhYmU0OGY1ODU2ZTI4YzYzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI3Niw2ICsyNzYsOSBAQCBwcml2YXRlOgog
I2VuZGlmCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkm
Jik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZ2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5JiYpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgYm9vbCBwbGF0
Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQWxsb3dOb25WYWxp
ZEluamVjdGVkQ29kZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNWE3ZjVkM2Q0NjlmMjMyMGNiYzI4
NzBmYjljMWQ4MWZlYjZlMjFlZS4uZDQ0MzU0ZjMzYmU2YzAyNGI2Zjc0YTIwYWNhZTU5MGRhZTk1
MmNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJv
eHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2
NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFu
ZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIERlbGF5ZWQKICNl
bmRpZgogICAgIEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1l
bnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgR2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxT
ZXNzaW9uSUQpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNw
ZW5kKCkKICAgICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
aW5kZXggMWEyNTViODk1NjJkZTU4NDRiYmYzMjIxY2M0YjdlODIyMmY5YzY0OC4uYzUwM2ZmZDZm
NWJlZmJkZmUwYTBmMGM2YjM3MzRjODU5MjY4ZTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTM0
LDYgKzM0LDEwIEBACiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYW5hZ2Vy
LmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMu
aCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQb29sLmgiCkBAIC0xMzUsNiArMTM5LDkgQEAgV2Vic2l0ZURhdGFTdG9y
ZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogICAgICAgICBBU1NFUlQobm9uRGVmYXVsdERhdGFTdG9y
ZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAgICBub25EZWZhdWx0RGF0YVN0
b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bv
b2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb1BheW1lbnRQcm9j
ZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24obV9zZXNzaW9uSUQp
KTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICAgICAgaWYgKGF1
dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCiAgICAg
ICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnJlbW92ZVNlc3Npb24obV9zZXNzaW9uSUQpOwog
ICAgICAgICB9CkBAIC0xNjI2LDYgKzE2MzMsMTkgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpj
bGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGwK
ICAgICBjYWxsYmFjaygpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1BheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9j
ZXNzUGFyYW1ldGVycygpCit7CisgICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsK
KworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisKKyAg
ICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vzc2lvbklEOworCisgICAgcmV0dXJuIHBhcmFt
ZXRlcnM7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4gV2Vic2l0ZURhdGFTdG9yZTo6cGVuZGluZ0Nvb2tpZXMoKSBjb25zdAog
ewogICAgIHJldHVybiBjb3B5VG9WZWN0b3IobV9wZW5kaW5nQ29va2llcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
aW5kZXggYmQ1NzkxM2QzOTk0NzQ1MWQwZTk5YTBhZDVmMThiOTgzYWUxMDMxZS4uNWVhODBlYjlh
ZjUxY2RhZWQwYzZlYjUxODMzOGQxYzBlOTk4NTI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjIsNiAr
NjIsOSBAQCBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBlbnVtIGNsYXNz
IFdlYnNpdGVEYXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0
cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29y
ZDsKIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIApAQCAtMTY5LDYgKzE3Miw5
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlByb2Nlc3NQ
b29sJikgY29uc3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJz
KCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyBwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcGVuZGlu
Z0Nvb2tpZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3QgV2ViQ29y
ZTo6Q29va2llJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAzNTZkMmMyMDRhNmIzOGQ2OGIyODg3Mjk5ZTAwNzZkOGU5MTM3Nzk0Li44
YjlhMmZiNGNiYWM0NmRkMDU0ZWFhZmI0ZDg5ZTgzMTFlZjZmOWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0NCw2ICs4NDQsNyBA
QAogCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYx
MzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdG
QzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdG
QzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJp
dmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMx
OTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAq
LzsgfTsKKwkJMzkxMzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudHMuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNi
ICovOyB9OwogCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNGNDE4RUZCMTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdC
OUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKQEAgLTkwMiw2
ICs5MDMsMTEgQEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlCMTI4
OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQg
LyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNCMDA3
MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFz
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUx
MThFOUExMUYyOTUzMjYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5
OUYxRjI5NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
Ki87IH07CisJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMu
aCAqLzsgfTsKKwkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUwMEU0N0I4
MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0
NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxp
YnJhcnkuaCAqLzsgfTsKIAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGlt
TGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07
CkBAIC05NTMsNiArOTU5LDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3
Q0YwRTMxNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1
MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTdERDVCRjE4
MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8q
IFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMy
IC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAq
LzsgfTsKIAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlw
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFD
QUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNGMTExMkIwMTVG
ODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVk
ZW50aWFsVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtOTgwLDYgKzk4Nyw4IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAx
NTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwogCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5
IC8qIElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9
OworCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQw
QjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLzsgfTsKKwkJNTFFMzUyMDAxODBGNUQw
RjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZD
MTY0MUYyOTM1REQwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0
b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxl
RE9NV2luZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dF
eHRlbnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYw
REUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsK
QEAgLTE1NTIsNiArMTU2MSw3IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQ
b3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNC
OTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMy
QjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4
RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmgg
Ki87IH07CisJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlD
MTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1
QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBD
NzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2
QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAw
NjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUx
NTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5
RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi87IH07CkBAIC0yOTU4LDYgKzI5NjgsMjggQEAK
IAkJM0Y0MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
M0Y0MThFRjgxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTM5MTM2MDAyMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkx
MzYwMDMyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDQyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzkxMzYwMDUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDYyMTkzNzYwODAwNTY0OTJB
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwNzIxOTM3NjA4MDA1NjQ5MkEgLyog
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDgyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNXT3JpZ2luVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViU1dPcmlnaW5UYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2
MDA5MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwQTIxOTM3NjA4MDA1NjQ5MkEg
LyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBCMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5MTM2MDBDMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzOTEzNjAwRDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDBFMjE5Mzc2MDgwMDU2NDkyQSAvKiBTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzkxMzYwMEYyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkx
MzYwMTAyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDExMjE5Mzc2MDgw
MDU2NDkyQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAxMjIxOTM3NjA4MDA1NjQ5MkEgLyogV2Vi
U2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dHMuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY1MTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjQxOEVGNjE4
ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1
RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNG
NDE4RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3
QjlCQTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNo
b29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2
MiAvKiBXZWJDb2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDb2xvclBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAxNCw2ICsz
MDQ2LDcgQEAKIAkJNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFkYnJv
d3NlcnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xlLm8xZGJyb3dz
ZXJwbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODhDMTU0MjExMzc3
NzAwMDEyQUJDRCAvKiBwcm9jZXNzLW5ldHdvcmstc2FuZGJveC1lbnRpdGxlbWVudHMuc2ggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJwcm9jZXNzLW5ldHdvcmstc2FuZGJveC1l
bnRpdGxlbWVudHMuc2giOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1NjIx
MTM3N0U4MDAxMkFCQ0QgLyogcHJvY2Vzcy13ZWJjb250ZW50LXNhbmRib3gtZW50aXRsZW1lbnRz
LnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5zY3JpcHQuc2g7IHBhdGggPSAicHJvY2Vzcy13ZWJjb250ZW50LXNhbmRib3gtZW50aXRsZW1l
bnRzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4OEMxNTcyMTEzNzg1MjAw
MTJBQkNEIC8qIFBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5wbGlzdC5lbnRpdGxlbWVudHM7IHBhdGggPSAiUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxl
bWVudHMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1ODIxMTM3ODUyMDAx
MkFCQ0QgLyogV2ViQ29udGVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgcGF0aCA9ICJXZWJDb250ZW50LU9TWC1zYW5kYm94LmVu
dGl0bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUNCMUY0MTVE
NUMwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxODk3RUNDMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDgwLDYgKzMxMTMsNyBAQAogCQk0
RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVt
U2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNl
Y0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUExODBGNzRGMTAw
OTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEgLyogQ29va2llU3RvcmFn
ZVV0aWxzQ0YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29r
aWVTdG9yYWdlVXRpbHNDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIz
NzExQzczRDIyQjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcyMUM3M0QzN0IwMDc5
OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxMDgsNiArMzE0MiwxMiBAQAogCQk1MTE4RTlBNTFGMjk1
OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE2MUYyOTU5NjMwMDNF
RjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQ
cm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVBy
b2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCTUxMThFOTlFMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOTlGMUYy
OTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNTFGMjk1OTYz
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTFGN0QzRjFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjhBNzcxMzhCNDYwOTAw
QTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTZWNJdGVtU2hpbUxpYnJhcnkuaDsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFj
L1NlY0l0ZW1TaGltTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzEy
NSw2ICszMTY1LDcgQEAKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRN
ZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVu
dUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAw
QTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRN
ZW51Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4
RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRN
ZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkE5NzY2MTgwRTA1
RDIwMDM5QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1l
bnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMkY1ODhFMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4
RjEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODkwMTJBODgzODgwMDYyOTUz
MCAvKiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxOTUsNiArMzIzNiw4IEBACiAJCTUxN0NG
MEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5
NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUg
LyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTE3REQ1QkMxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vz
c1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNz
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMxMzc5Rjg1QzAw
RTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
U2hpbS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdD
Qjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjE0LDYgKzMyNTcsNyBAQAogCQk1MUE1NTYwMDEyOEM2
RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCUmVzdWx0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENCOTAwNEJBOUFG
IC8qIFdlYklEQlJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJ
REJSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjkxODBDQ0Q5
MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBheW1l
bnRTZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3MjhE
QzFCMUJBRDJEMDAxMDJFRUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Q
cml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkYyMTI1QkY4MjAw
MDhBRUIxRCAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Z2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjQxMjVCRjhENDAw
OEFFQjFEIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjczLDYgKzMz
MTcsMTEgQEAKIAkJNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0MwMEU1
M0JFOSAvKiBJREJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSURCVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFF
MzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBGNUQw
QjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFk
UHJvdmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYx
RjI5MzU1MTAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFn
ZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJz
aXN0ZW50U3RvcmFnZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVy
c2lzdGVudFN0b3JhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZD
MTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0
b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDAxLDYgKzQ0NTAsNyBA
QAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94SW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1
M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYzOUMxOTBGNzkxQzAwNzMx
NjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUzNjAgLyogTmV0
d29ya0NhY2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmV0d29ya0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDJF
MDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDU3NSw2ICs0NjI1LDcgQEAKIAkJCQkxQUFEREY0QjEw
RDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1
QSAvKiBVSVByb2Nlc3MgKi8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlBy
b2Nlc3MgKi8sCisJCQkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNz
ICovLAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywK
IAkJCQkxQTBFQzZCMDEyNEJCRDM2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2VzcyAqLywKIAkJCQlD
MENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLApAQCAtNDc3OCw2
ICs0ODI5LDggQEAKIAkJCQk0MUQwRkM3RDIwRTQzQTUxMDAwNzZBRTggLyogTmV0d29yay1PU1gt
c2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNUM3QUNGRDEyMThERDhCRDAwNENCQjU5IC8q
IE5ldHdvcmstT1NYLmVudGl0bGVtZW50cyAqLywKIAkJCQlCQzgyODNBQjE2QjRCRUFEMDBBMjc4
RkUgLyogTmV0d29ya1NlcnZpY2UueGNjb25maWcgKi8sCisJCQkJNDE4OEMxNTcyMTEzNzg1MjAw
MTJBQkNEIC8qIFBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAorCQkJCTUxQTYw
QjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlB
MUVERDJEQjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8s
CiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25m
aWcgKi8sCiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQu
eGNjb25maWcgKi8sCkBAIC00OTM1LDYgKzQ5ODgsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQw
MEREN0M2OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBp
b3MgKi8sCiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk1MTE4
RTk5RDFGMjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0
MDA4NTI0MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyog
UmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJz
aXRlRGF0YSAqLywKQEAgLTYyMTEsNiArNjI2NSwzMCBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9t
YWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEzNjAwMTIxOTM3NjA4
MDA1NjQ5MkEgLyogU3RvcmFnZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzkxMzYwMEUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaC5jcHAgKi8sCisJCQkJMzkxMzYwMDUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaC5oICovLAorCQkJCTM5MTM2MDExMjE5Mzc2MDgwMDU2NDkyQSAvKiBT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYwMDcyMTkz
NzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwICovLAor
CQkJCTM5MTM2MDBBMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50LmggKi8sCisJCQkJMzkxMzYwMTIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VX
b3JrZXJQcm92aWRlci5jcHAgKi8sCisJCQkJMzkxMzYwMDQyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5oICovLAorCQkJCTM5MTM2MDAyMjE5Mzc2MDgwMDU2NDky
QSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MTM2MDAzMjE5Mzc2MDgw
MDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLywKKwkJCQkzOTEzNjAwOTIxOTM3
NjA4MDA1NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJ
CTM5MTM2MDBCMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAgKi8sCisJCQkJMzkxMzYwMTAyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmggKi8sCisJCQkJMzkxMzYwMDYyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTM5MTM2MDA4
MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLywKKwkJCQkzOTEzNjAw
RDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovLAorCQkJCTM5MTM2MDBG
MjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8s
CisJCQkJMzkxMzYwMEMyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFN0b3JhZ2U7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY0MDgsNiArNjQ4
Niw4IEBACiAJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTE4RTk5RTFGMjk1MzFGMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovLAorCQkJCTUx
MThFOTlGMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oICovLAogCQkJCTQxMzFGM0QwMUY5NkJDQzgwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2guY3BwICovLAogCQkJCTQxMzFGM0NFMUY5NkE0OTUwMDU5OTk1QSAvKiBTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2guaCAqLywKIAkJCQk0MTMxRjNDRjFGOTZBOTM2MDA1OTk5NUEgLyog
U2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluICovLApAQCAtNjUzMCw2ICs2NjEw
LDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsK
KwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2
MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5
QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBh
dGggPSBQYXltZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTE4RThF
RjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY1ODYsNiArNjY3NiwyMCBAQAogCQkJcGF0aCA9
IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBBMTgwQ0M0
MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLywK
KwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAor
CQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAorCQkJ
CTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAq
LywKKwkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJC
NyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQlwYXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTg5LDYgKzcwOTMsNyBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FDOUUzMDA1
RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAorCQkJCTM5MTM2MDI0
MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovLAogCQkJ
CUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2Ig
Ki8sCiAJCQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2Vi
Q29udGVudC5zYiAqLywKIAkJCSk7CkBAIC03MTkzLDYgKzcyOTgsNyBAQAogCQkJCUJDQ0YwODVD
MTEzRjNCNzUwMEM2NTBDNSAvKiBtYWMgKi8sCiAJCQkJNTEwQ0M3RTcxNjEzOEU3MjAwRDAzRUQz
IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlmaWNh
dGlvbnMgKi8sCisJCQkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8sCiAJ
CQkJMUFFRkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkx
RjVBOUI0MjAwMDZFM0ZFIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4
MUFDMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04Mjg0LDYgKzgzOTAsMTAgQEAKIAkJ
CQk1QzBCMTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2Vz
LmggKi8sCiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5
NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1
MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMu
aCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNCRUI2N0Ew
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQlDREEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1l
c3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04NjAyLDYgKzg3MTIs
MTQgQEAKIAkJCW5hbWUgPSBQREY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQlFMUZFRjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5
bWVudFByb2Nlc3NJT1MubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNo
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MDY3LDYg
KzkxODUsMTAgQEAKIAkJCQkxQUM3NTM3QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4QjY2QjAxQkM0M0M4NjAwODJERjc3IC8qIFBhZ2VM
b2FkU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3NEE1ODExMkU2NjY4MTAw
MkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QTEx
RjI5NTMyNjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBC
IC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUFCMUYy
OTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0TWVudS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9y
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMjk4REEwMUMzREYwMjEwMDQ3MEFGRSAvKiBQZW5k
aW5nRG93bmxvYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMTAwNTEsNiArMTAxNzMsNyBAQAogCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUUxN0FFMkMz
MTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGlu
IFJlc291cmNlcyAqLywKKwkJCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxl
LldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUxNkI2M0Qx
QjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJ
CQk0MTRERDM3OTIwQkY0M0Y1MDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2
NC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNv
cmVQcmVkaWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAqLywKQEAgLTEwNjU0LDYgKzEwNzc3LDEx
IEBACiAJCQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVjdE1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50
aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZBRDQwMEY0
OTNGRCAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MUZGMTgw
RjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
MTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNl
cyAqLywKKwkJCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QUExRjI5NTk3NzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0EwMDkwMUND
RiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDky
MTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmgKaW5kZXggMmJmYWVlNDc2ZTFmNGJjY2NkYjI2NjBmZTVkOGU2NmJkNjc0YTNkNy4uNWRmYzU1
NTAwYzU2OTM4MTQ1Y2I2M2JmNzZkNWQ4Yjc2OTM5MGEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAg
LTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Q
cm9taXNlKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSBmaW5h
bDsKIAogICAgIHZvaWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY2hlZHVsZVBheW1lbnRKb2IoY29uc3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZvaWQgcnVuT3JEZWxheVRhc2tGb3JJ
bXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VlNzg4OTY0ODc5YjliOTc2ZGI0OWFlMDNl
YTJkNWJhMGQ0NjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisKKworI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmll
cikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24t
Pm9wZW4oKTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7
Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+JiByZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwor
dm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpOworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiYmUyMGFiZjZiZDM0NmM2YjFkYzJlNzE1ZTMxMGVkM2Q1ZjMyNTMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJN
ZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgorI2luY2x1ZGUg
PHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOwor
ICAgIAorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVj
dGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVy
cmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzBjZThlYTRlZWU4MDk2ZTA0YjNlZTY3ZDFmNGNmMjEy
NzM1MGRhYy4uYjQ5YzYzMTZlNWE2YTc0MThlYjdiMTg3ZjU4YzczYWQ2N2U4OTY2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiArNDMsOSBAQAogI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNlc3Np
b25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5j
bHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3Rv
cmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQ
cm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldlYnNpdGVEYXRh
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJX
ZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTEyMTcsNiArMTIyMyw1MCBAQCBXZWJMb2FkZXJTdHJhdGVn
eSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAgIHJldHVybiBtX3dlYkxv
YWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlBy
b2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgV2Vi
UHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9u
SUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRl
bnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIpLCAw
KSkgeworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAgICAgICAgICAgLy8g
R1RLKyBhbmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5jIG1lc3NhZ2UgZmFpbHVy
ZS4KKyAgICAgICAgICAgIC8vIEluIHRoaXMgcGFydGljdWxhciBjYXNlLCB0aGUgcGF5bWVudCBw
cm9jZXNzIGNhbiBiZSB0ZXJtaW5hdGVkIGJ5IHRoZSBVSSBwcm9jZXNzIHdoaWxlIHRoZQorICAg
ICAgICAgICAgLy8gY29ubmVjdGlvbiBpcyBiZWluZyBkb25lLCBzbyB3ZSBhbHdheXMgd2FudCB0
byBleGl0IGluc3RlYWQgb2YgY3Jhc2hpbmcuCisgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM0OC4KKyAgICAgICAgICAgIGV4aXQo
MCk7CisjZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyNlbmRpZgorICAgICAgICB9CisKKyNp
ZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVy
LnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworI2VsaWYgT1MoREFSV0lOKQorICAgICAgICBJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGlmaWVyLnBvcnQoKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGlmaWVyLmhhbmRsZSgpKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworI2VuZGlmCisgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVy
SXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgICAgICBDUkFTSCgpOworCisg
ICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIH0KKyAg
ICByZXR1cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247Cit9CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFj
Y2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKaW5kZXggYmRhMDAzNjdkMjQ5MzdhM2QzZjk0NTBkYTZjNGY1NDQ5MWExNWU5Yy4uMWM2ZmRh
YjlkZTRiZmJlZmRjYjdhZTk1OTQyZTFhNzk3MmZjZmNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCkBAIC05OCw2ICs5OCw5IEBAIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5
OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5OwogY2xhc3MgV2ViUHJv
Y2Vzc1N1cHBsZW1lbnQ7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOwogc3RydWN0IFdlYlBhZ2VHcm91cERhdGE7CkBAIC0xNzUsNiArMTc4LDExIEBA
IHB1YmxpYzoKIAogICAgIExpYldlYlJUQ05ldHdvcmsmIGxpYldlYlJUQ05ldHdvcmsoKTsKIAor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB3ZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiopOworICAgIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsK
IAogICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1By
b2Nlc3MoKTsKQEAgLTQzMSw2ICs0MzksMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1dG9tYXRpb25TZXNzaW9uUHJveHk7
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFJlZlB0cjxXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbj4gbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gbV9wbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBk
NDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NGU1YjM2ZTdhOWM0ZWEwY2JhOGFjYjNiMTdj
ZThlODcxODNhYmI2Li5kMGZiNmRjZWM5MTJiYzBjZmFjMDMxZDFlOWMyZTgxZWQzMDdmYWUyIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5u
ZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1l
bnRQcm9jZXNzTmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJv
Y2Vzc0RpZENyYXNoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKToKKwogMjAxOC0xMS0wNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBn
bWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gQWRkIHN1cHBvcnQgdG8gQmlnSW50IGludG8g
VmFsdWVBZGQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2MwY2Jj
MzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWExYTY5
ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjg4LDYgKzI4OCw3IEBAIEVOQUJMRV9OQVZJ
R0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05F
OwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExB
VEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElG
SUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4g
PSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IDNmMWE2Mjg4NjgyMTAyYTU4OTJhMGVlZjMyYTk0NDJh
MGNhZjUwODQuLmMzNDZhYmZkNjIwZjkzNTU1ZmQ4MDA1YzhhMWI0MGQ4YTljMDQ3YjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0NCw2ICsxNDQsNyBAQCBURVNUKFJlc291
cmNlTG9hZFN0YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAgICAgLy8gRW5z
dXJlIHRoZSBzaGFyZWQgcHJvY2VzcyBwb29sIGV4aXN0cyBzbyB0aGUgZGF0YSBzdG9yZSBvcGVy
YXRpb25zIHdlJ3JlIGFib3V0IHRvIGRvIHdvcmsgd2l0aCBpdC4KICAgICBXS1Byb2Nlc3NQb29s
ICpzaGFyZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNzUG9vbF07
CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nl
c3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIAogICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtX
S1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CkBAIC0xNjgsNiArMTY5LDcgQEAg
VEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQog
CiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhp
c3RzQXRQYXRoOnRhcmdldFVSTC5wYXRoXSk7CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtz
aGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNU
X0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsK
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCA0Y2I4ZmE5N2E2NmM4YTdmZDg0NTllZWQw
YTQ1ODQyYjJiODFmYTgzLi5iZGFhMmM5ZmVhOTQwNzU5NDE0NjQ0MTlhYWNhMzM1ZDUzOTFjODk1
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMTA0Niw2ICsxMDQ2LDkgQEAgVEVTVChTZXJ2
aWNlV29ya2VycywgU2VydmljZVdvcmtlclByb2Nlc3NDcmVhdGlvbikKICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8vIE1ha2Ug
c3VyZSBwYXltZW50IHByb2Nlc3MgaXMgbm90IGxhdW5jaGVkLgorICAgIEVYUEVDVF9FUSgwLCB3
ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRl
bnRpZmllcik7CisKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBsb2FkaW5nIHRoZSBzaW1wbGUgcGFn
ZSBkaWQgbm90IHN0YXJ0IHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgogICAgIEVYUEVDVF9F
USgxdSwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl93ZWJQcm9jZXNz
Q291bnQpOwogCkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5v
IHBheW1lbnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3LmdldCgp
LmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7CisK
ICAgICAvLyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBoYXMgc2Vydmlj
ZSB3b3JrZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vi
c2l0ZURhdGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA4ZGI1NjkwYjM5NDMxMDk0YjUzNThkMGQyYWZiODc2
OTlkMjA2ZGEwLi5kNjJjNjBmNzhjYzUzMGEzNWFjNzNhZThhNDg0ZDU2MDhiMTE3ZDdmIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMzMyw2ICszMzMsNyBAQCBpbnRlcmZhY2UgVGVz
dFJ1bm5lciB7CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9p
ZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5
bWVudFByb2Nlc3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZENhbmNl
bENsaWVudFJlZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkZjFhZGFmMGUwYTAyMmQ4M2JkOWQyOTc0
NGRiMjI5ZTQ3N2U1OTU0Li5lZTk0NGY5MDRiZDA2MGE0MzBlMTViNjBkZDUxYjAyODY5ZDMxMTg3
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKQEAgLTEyNTUsNiArMTI1NSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1p
bmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25v
dXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5w
YWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAordm9pZCBU
ZXN0UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0
U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
cGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30K
Kwogc3RhdGljIHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRp
YyB1bnNpZ25lZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4
IGY1YjJjMjBkMjBiNGQ5MzlhZGIxZGQwMjEwZjNkMGVlMjdmMDQ1ZDguLjAxYjRiZDYyZWUyNDBk
NTBkNTE4OTVhMDQ3YzQ2YzAwNDNhZTcyYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDYsNiArNDQ2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVl
UmVmKTsKICAgICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFj
aygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkNTVh
OWZjODFmOTMyMmM5YTU4OWMyYTA1YzRlM2U3ZTk3NGU0MzU2Li44ZTg3YTdlMmU2ZWMzMTYyZGFk
OWUxMmQ5ZjllYjMyZWY3NDIxZTcyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcApAQCAtMTA2NCw2ICsxMDY0LDE1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9s
bGVyOjpuZXR3b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RD
b250cm9sbGVyOjpwYXltZW50UHJvY2Vzc05hbWUoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQiOworI2Vsc2UKKyAgICBy
ZXR1cm4gIlBheW1lbnQgcHJvY2VzcyBub3QgYXZhaWxhYmxlIG9uIGFueXRoaW5nIGJ1dCBpT1Mi
OworI2VuZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzKTsKQEAg
LTE0ODksNiArMTQ5OCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0Rp
ZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAogICAgIHN0YXRpY19j
YXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5uZXR3
b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQ
cm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCit7CisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKK30KKwogdm9pZCBUZXN0
Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdL
RGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnksIGJvb2wgc3luY2hyb25vdXMpCiB7
CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleUtleSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAgLTE4MjIsNiArMTgzNiwxMyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKICAgICBleGl0KDEpOwog
fQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKCkKK3sKKyAg
ICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIobV9jb250
ZXh0LmdldCgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQp
XG4iLCBwYXltZW50UHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7CisgICAg
ZXhpdCgxKTsKK30KKwogLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogCiB2b2lkIFRlc3RDb250
cm9sbGVyOjpkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25S
ZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMjYy
MSw2ICsyNjQyLDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3Jr
ZXJQcm9jZXNzKCkKICAgICBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcyhw
bGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyhw
bGF0Zm9ybUNvbnRleHQoKSk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKIHsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2MjVhNWI1NDY1OTIy
YzdiYWZkOTRiN2FjYzgxMjc2NTdiOGJjOTFmLi43ZjBmNzViNGRiYWY1ZDkxY2Y0NTA2NzkxNTY1
NDM1ZmMzNWY4NDFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBA
IC0xODEsNiArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB3ZWJQcm9j
ZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuZXR3b3JrUHJvY2Vzc05hbWUoKTsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VQcm9jZXNzTmFtZSgpOworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBwYXltZW50UHJvY2Vzc05hbWUoKTsKIAogICAgIFdvcmtRdWV1ZU1hbmFn
ZXImIHdvcmtRdWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1hbmFnZXI7IH0KIApA
QCAtMjUyLDYgKzI1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1By
b2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAg
dm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNz
aW9uQ3JlZGVudGlhbHMoKTsKIApAQCAtMzU3LDYgKzM1OSw4IEBAIHByaXZhdGU6CiAgICAgLy8g
V0tDb250ZXh0Q2xpZW50CiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChX
S0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jh
c2goKTsKKyAgICBzdGF0aWMgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJl
ZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOwogCiAg
ICAgLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdE5h
dmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCBkODFlNThiMzkxN2EyM2JjMzFkNWQ3NjhlYmE4MWRmMGYwZWE3MmFkLi42NWU5YzU2OTFk
NWE1NmQwZjYyMmM1Njc1MGZhMzA0NmU1NjgwMTE1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQ0Nyw2ICsxNDQ3LDEyIEBAIFdLUmV0YWluUHRyPFdL
VHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlUGF5bWVudFBy
b2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSkgewogICAgICAg
ICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmZkYTRiMTYzYjIxZWQxYzJm
OTIxMjJjNzYwMzEyNDJkMGI0YzdjOS4uZTY3NGM4YzZhN2Y0NTM2YjIzYzI4MTdhMmRmZGM3Mzgy
NTA2OTRhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUg
IDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGgg
ZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMu
aHRtbDoKKwogMjAxOC0xMS0wNyAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ1NTIFBhaW50aW5nIEFQSSBzaG91bGQgcGFzcyBzaXplLCBhcmd1
bWVudHMgYW5kIGlucHV0IHByb3BlcnRpZXMgdG8gcGFpbnQgY2FsbGJhY2sKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNj
cmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0
ZW50LWltcG9ydFNjcmlwdHMuaHRtbAppbmRleCAwOGE5YTU5NjIzMjEwNGI4NjVlM2FiMmRmODVh
OWI5NDU3ZWM4NGU5Li42YzlkY2YzMWY5OThjNmIyOGZiY2FkOGIyNTdmNDM4OWM1ZDViNmM1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVu
dC1pbXBvcnRTY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1sCkBAIC0zNiw4ICszNiwxMCBAQCBh
c3luYyBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgbGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFu
ZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CiAKICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNo
Lmxlbmd0aCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3
b3JrUHJvY2VzcygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci50ZXJtaW5hdGVQYXltZW50UHJv
Y2VzcygpOworICAgICAgICB9CiAgICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsKICAgICAgICAg
d2luZG93LmxvY2F0aW9uICs9ICI/dGVzdCMiICsgcmFuZG9tSWQ7CiAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354407</attachid>
            <date>2018-11-09 16:20:54 -0800</date>
            <delta_ts>2018-11-14 15:07:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181109162052.patch</filename>
            <type>text/plain</type>
            <size>148080</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmZiZmI1NzRmNTQyZTA0NDU3YjRmNjc3MTA1OWIyODZjNjU0MTQwLi43YjcyYWFjMGZlODI3YzIw
YjM0ZDczYjY4MDU4YTI4MTY1N2Y1NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0wNyAgQ2FpbyBMaW1hICA8dGlj
YWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gQWRkIHN1cHBvcnQgdG8gQmln
SW50IGludG8gVmFsdWVBZGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDMyMGVlMzQ4NTQ3MzY0ZjIzMTYyZGQw
ZDE1NWYyMzkyYzEzOTMyLi42OTkwMWRmNWI2NTNkZGZjMGFjNjY3OWRkYjAwNzFkOWQ0MTNjOTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
RW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDE4LTExLTA3ICBKdXN0aW4g
TWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1MgUGFpbnRp
bmcgQVBJIHNob3VsZCBwYXNzIHNpemUsIGFyZ3VtZW50cyBhbmQgaW5wdXQgcHJvcGVydGllcyB0
byBwYWludCBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggM2IwZmVmNmU1Njk1NWU1ZTM5
NWVmOGU2NjhiMWQ0MmUwYjQ4NzQ2Yy4uMDJjOWZlNGE3YjcyNzlhNjliNzdmNDg5YTk0ZDc5Zjlk
MTA0ODRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMTEtMDcg
IFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9j
ZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisKIDIwMTgtMTEtMDYgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV2ViR1BVXSBFeHBlcmltZW50YWwgcHJvdG90eXBlIGZvciBXZWJHUFVSZW5kZXJQ
aXBlbGluZSBhbmQgV2ViR1BVU3dhcENoYWluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwYmQ0ZjZlZGZhYTU1YmYx
YTM5MzYwNTIzMzhiYWQ1N2JlNDkwYzMuLmI3OWMyNzM2MmVlMjJmZjQ5YzQzMGJmMGMwNTA3MDYy
NDFhYmE3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIzIEBACisyMDE4LTExLTA3ICBaYW1pdWwg
SGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHVi
IHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jh
c2VUYXJnZXQueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJv
eC5lbnRpdGxlbWVudHM6IEFkZGVkLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpl
bnN1cmVQYXRoRXhpc3RzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnBvc3RQ
YXltZW50VGFzayk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4
dFBheW1lbnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpp
bml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaDogQWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVk
LgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5
bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5j
cHA6CisgICAgICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAg
IChXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5h
dGVQYXltZW50UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVu
Y2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxi
YWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJv
Y2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1l
bnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0
ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJv
eHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJv
eHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJv
Y2Vzc0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0U3VwcGxlbWVudDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNz
SWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQ
YXltZW50UHJvY2Vzc0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFBy
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxOC0xMS0wOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gQ3Jhc2ggd2hlbiBydW5uaW5nIHdpdGggc2FuZGJveCBlbmFibGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMzVlMjYzMDJhNzc3YTI3YzkwODcxNDk4NTJmMmFhOTZjNDcyZTAw
Mi4uOTRmNWU2N2ZhNjc5M2RlYjM0NzZmYzdjZWJjZThhNjM5YzM0OWYwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFx
dWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdp
dGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4
LTExLTA2ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUgYW5k
IFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZm
MmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3
MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgs
NyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJ
R0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJ
Q0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29z
eCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwog
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJM
RV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05B
TUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNk
NjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0
b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05T
ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9O
T1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZ
TUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJ
Tl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2
ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZi
NzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiArMjg4LDcgQEAg
RU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9S
X1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElP
TlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBF
TkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERG
S0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
IGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCAxMGFi
MjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4xMmI1MDkzYzhiMDdiM2Q2ODll
Njg0YjVmODk0MWY4OTc4NTUwYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2
aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUu
ICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSI7
CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudCIgPSAiJUAgUGF5bWVudCI7
CisKIC8qIFZpc2libGUgbmFtZSBvZiB0aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBXZWIgQ29udGVudCIgPSAiJUAgV2ViIENvbnRl
bnQiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBmMTYxNTQyNzMyNmQ4OGJhYWRiNWU5M2MyM2Rj
YTc1NDNiMTgwNGM1Li4zNWI4N2IyNmQ2ODg3NmE0YTNkNDU0ZDYyN2U0YjZkNzBjZmNmZmU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTMxLDcgKzMxLDkgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExIgogICAgICIke1dF
QktJVF9ESVJ9L1NoYXJlZC9SZW1vdGVMYXllclRyZWUiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hh
cmVkL1BheW1lbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1dlYnNpdGVEYXRhIgorICAg
ICIke1dFQktJVF9ESVJ9L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJv
Y2VzcyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQyIKQEAgLTQ3LDYgKzQ5LDcgQEAgc2V0KFdlYktpdF9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMi
CiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvVXNlckNvbnRlbnQiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIgogICAgICIke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrIgpAQCAtMTIxLDYgKzEy
NCw5IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENTb2NrZXQubWVzc2FnZXMuaW4KIAorICAgIFBheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpAQCAtMTUxLDYgKzE1Nyw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5f
RklMRVMKIAogICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgogCiAgICAgVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMjEsNiArMjI5LDEwIEBAIHNldChOZXR3b3JrUHJvY2Vz
c19MSUJSQVJJRVMKICAgICBXZWJLaXQKICkKIAorc2V0KFBheW1lbnRQcm9jZXNzX0xJQlJBUklF
UworICAgIFdlYktpdAorKQorCiBzZXQoUGx1Z2luUHJvY2Vzc19MSUJSQVJJRVMKICAgICBXZWJL
aXQKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2Nv
bmZpZwppbmRleCA0MDVkNjNiYmIwMTJhMzllNjVkYThiYThiODkwODM1OGEyNThiZDZjLi5lZWI3
YTI2YWRhMTQ2M2QyYWQ1YThkY2ZkYjIwNmE0ZDYzY2YzZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKKysrIGIvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCkBAIC0xMTEsNiArMTExLDgg
QEAgV0tfSEFWRV9DT1JFX1BSRURJQ1RJT05bc2RrPW1hY29zeCpdW2FyY2g9aTM4Nl0gPSBOTzsK
IFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTID0gJChXS19DT1JFX1BSRURJQ1RJT05fREVGSU5F
U18kKFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OKSk7CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5F
U19ZRVMgPSBIQVZFX0NPUkVfUFJFRElDVElPTjsKIAorV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RV
Q1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisKIFdLX1NUT1JBR0VfU0VSVklD
RV9QUk9EVUNUX05BTUUgPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfJChXS19V
U0VfTEVHQUNZX1NUT1JBR0VfU0VSVklDRV9OQU1FKSk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJP
RFVDVF9OQU1FXyA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyk7CiBXS19T
VE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4u
MzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0y
ODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5B
QkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJP
Q0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNU
OwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19Q
TEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50cwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODZh
YTcxNWFlMGVmMmVkODQwNzE0M2M5Y2ZlYjBhNjIxZjE1Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVt
ZW50cwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04
Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4i
ICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlz
dCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5jb20uYXBwbGUucm9vdGxlc3MucGF5bWVu
dC5XZWJLaXRQYXltZW50U2FuZGJveDwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNl
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54
Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42M2EzNzRlMGY1ZDhhYmM1ZDM4NDJkOWJlMDZhZDcwM2RiMTRm
MDk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXlt
ZW50U2VydmljZS54Y2NvbmZpZwpAQCAtMCwwICsxLDM0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8g
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWci
CisKK1dLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19QQVlNRU5U
X0VOVElUTEVNRU5UU19SRVNUUklDVEVEX1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NY
LXNhbmRib3guZW50aXRsZW1lbnRzOworCitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RP
VUNIX05PID0gJChXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JF
U1RSSUNURURfRU5USVRMRU1FTlRTKSk7CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJ
QlJBUllfVkFMSURBVElPTl9DT0RFX1NJR05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdL
X1BBWU1FTlRfU0VSVklDRV9QUk9EVUNUX05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklF
UiA9ICQoUFJPRFVDVF9OQU1FKTsKK0lORk9QTElTVF9GSUxFID0gOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IGU0OTIxNTFlMDRiNjNkNGY4ZjA2YzA5MDMxNmU1MjAxYTFiYjhlOWUu
LmFiOGZiYzk5ZDU5MzE3YTc3NDc4MjllZjg4NTdiODQzZTBhYjZkYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTM3LDYgKzM3LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQy
KS9TaGFyZWQvQVBJL0NvY29hIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlv
biBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvbWFjIFwKKyAgICAkKFdlYktpdDIpL1BheW1lbnRQ
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGVQYXkgXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvQXV0b21hdGlvbiBcCkBAIC03Myw2ICs3NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QYXltZW50IFwKICAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTMxLDYgKzEz
Myw5IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRy
b2xsZXIgXAogICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCisgICAg
UGF5bWVudFByb2Nlc3MgXAorICAgIFBheW1lbnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCiAg
ICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9s
bGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODlmMzAyZTdiOTQyNjU4MTQxMmFmZjFlYzJlMzc4M2FiM2M5Yjc0Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MuY3BwCkBAIC0wLDAgKzEsMTk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1
ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVu
Y29kaW5nLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9DYWxs
YmFja0FnZ3JlZ2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2VzczsKKyAgICByZXR1cm4g
cHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkKKyAgICA6IG1f
cXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiKSkKK3sK
KyAgICAvLyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhlIHRleHQg
ZW5jb2RpbmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBh
IGJhY2tncm91bmQgdGhyZWFkIG5lZWRzIGl0LgorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhwbGljaXQg
d2F5IG9mIGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGluZy4KKyAg
ICBVVEY4RW5jb2RpbmcoKTsKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcygp
Cit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRU
ZXJtaW5hdGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q2hp
bGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyhjb25z
dCBTdHJpbmcmIHBhdGgpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAg
ICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhwYXRoKSkKKyAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gbWFrZSBhbGwgZGlyZWN0b3JpZXMgZm9yIHBhdGggJyVzJyIsIHBh
dGgudXRmOCgpLmRhdGEoKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OnBvc3RQYXltZW50
VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BheW1lbnRUYXNrTXV0ZXgpOworCisg
ICAgbV9wYXltZW50VGFza3MuYXBwZW5kKFdURk1vdmUodGFzaykpOworCisgICAgbV9xdWV1ZS0+
ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgcGVyZm9ybU5leHRQYXltZW50VGFzaygpOworICAg
IH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpwZXJmb3JtTmV4dFBheW1lbnRUYXNrKCkK
K3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIENyb3NzVGhyZWFkVGFz
ayB0YXNrOworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9wYXltZW50VGFza011
dGV4KTsKKyAgICAgICAgQVNTRVJUKCFtX3BheW1lbnRUYXNrcy5pc0VtcHR5KCkpOworICAgICAg
ICB0YXNrID0gbV9wYXltZW50VGFza3MudGFrZUZpcnN0KCk7CisgICAgfQorCisgICAgdGFzay5w
ZXJmb3JtVGFzaygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luKQoreworI2lmIFVTRShVTklYX0RP
TUFJTl9TT0NLRVRTKQorICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWly
ID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oKTsKKyAgICBtX3Bh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmNyZWF0ZShzb2NrZXRQYWlyLnNlcnZlcikpOworICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudChzb2NrZXRQYWly
LmNsaWVudCkpLCAwKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAvLyBDcmVhdGUgdGhlIGxpc3Rl
bmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQgPSBNQUNIX1BPUlRfTlVM
TDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1B
Q0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7CisgICAgaWYgKGtyICE9IEtF
Uk5fU1VDQ0VTUykgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtYWNo
IHBvcnQsIGVycm9yICV4Iiwga3IpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIC8v
IENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIG1fcGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLmFwcGVuZChQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
KElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSkpOworCisgICAgSVBD
OjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KGNsaWVudFBvcnQpLCAwKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXI7CisgICAgaWYg
KCFJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckFuZENsaWVudElkZW50aWZpZXJzKHNlcnZl
cklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBzZXJ2ZXIgYW5kIGNsaWVudCBpZGVudGlmaWVycyIpOworICAgICAgICBD
UkFTSCgpOworICAgIH0KKworICAgIGF1dG8gY29ubmVjdGlvbiA9IFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpjcmVhdGUoc2VydmVySWRlbnRpZmllcik7CisgICAgbV9wYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFdURk1vdmUoY29ubmVjdGlvbikpOworCisgICAg
SVBDOjpBdHRhY2htZW50IGNsaWVudFNvY2tldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5
OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjbGllbnRTb2NrZXQpLCAw
KTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCisjaWYgIVBMQVRG
T1JNKENPQ09BKQordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKKyAgICB7CisjaWYgT1MoTElO
VVgpCisgICAgICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6c2luZ2xldG9uKCk7CisgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRM
b3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwsIFN5bmNocm9ub3VzKSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogbm8gbG93TWVtb3J5SGFuZGxlcigpIGltcGxlbWVudGVkIGZvciBQYXlt
ZW50UHJvY2VzcyBjdXJyZW50bHkuCisgICAgICAgICAgICAvLyBCdXQgYXQgbGVhc3QgZGVmaW5l
IHRoaXMgc2V0TG93TWVtb3J5SGFuZGxlcigpIGVtcHR5IHNvIHBsYXRmb3JtUmVsZWFzZU1lbW9y
eSBpcyBjYWxsZWQuCisgICAgICAgIH0pOworICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aW5zdGFsbCgpOworI2VuZGlmCisgICAgfQordm9pZCBQYXltZW50UHJvY2Vzczo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisjZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MDJjNzg2OTAzOTNlYTYzZDkzZTg2ZGI2ODFkMGNkZTlmZDY5Yzll
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
UHJvY2Vzcy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRl
c3Ryb3llZDxQYXltZW50UHJvY2Vzcz47CitwdWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9j
ZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nl
c3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsK
KworICAgIHZvaWQgcG9zdFBheW1lbnRUYXNrKENyb3NzVGhyZWFkVGFzayYmKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8g
Q2hpbGRQcm9jZXNzCisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxp
emVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBN
ZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25z
dCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZvaWQgY3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEKTsKKyAgICAKKyAgICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdvcmsgcXVl
dWUgdGhyZWFkIG9ubHkKKyAgICB2b2lkIHBlcmZvcm1OZXh0UGF5bWVudFRhc2soKTsKKyAgICB2
b2lkIGVuc3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJik7CisKKyAgICBWZWN0b3I8UmVmPFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPj4gbV9wYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbnM7CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOworCisgICAgRGVxdWU8Q3Jvc3NU
aHJlYWRUYXNrPiBtX3BheW1lbnRUYXNrczsKKyAgICBMb2NrIG1fcGF5bWVudFRhc2tNdXRleDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU3NmM0MjE3MDU2MDhlNjViNzFh
MWQ5MGRjNmM2ZTU0ZDAzNTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
eworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTI2ODk2MjBhZjI0N2U1NmU3YTc4N2VkNDVm
NGEyODZlMGQ5OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDg4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworfQorCitQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9u
SWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIC8vIFVzZSB0aGlzIGZsYWcgdG8gZm9yY2Ugc3lu
Y2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hyb25vdXMgbWVzc2FnZXMg
aW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUgV2ViUHJvY2VzcyB3b3Vs
ZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3YWl0aW5nIGZvciBhIHN5
bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1lbnQgcHJvY2Vzcywgd2hp
Y2ggd291bGQgYmUgdW5zYWZlLgorICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdl
c0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNz
YWdlKHRydWUpOworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZl
UGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9u
KTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmMwMWZhZjg1YTVl
NTUxY2FkYmU2NzhlOTMxYjhjNGJkYmYyZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3Nh
Z2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5QYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAw
OyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
NDMyMjU5NjYyNjkzNTkzOTE2ZTNkOTRjYTk1NGZkNTA5NzlhNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAt
PiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7Cit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQ
cm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFBy
b2Nlc3NJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2ZjA4NmNjMjUzNzUxNGNmMWFiYzQ5MmNjM2E0YWI4
NTE1YzAwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
aW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpbXBvcnQg
IlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKworI2RlZmluZSBFTkFCTEVfTUFO
VUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcgMAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQ
YXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykK
K3sKKyNpZiBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcKKyAgICAvLyBOZWVkIHRv
IG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1
bmRsZSBJRC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVG
b3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICBzYW5kYm94UGFy
YW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBwYXRo
Rm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIiBvZlR5cGU6QCJzYiJdKTsK
KyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQ
YXJhbWV0ZXJzKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmls
ZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTBjN2NiZmY4Y2RiNzg5NjRjNzY0ZTRlMmU0ZGZmZDYxMDMyODU5YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDQ3IEBACis7IENvcHlyaWdo
dCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKzsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KzsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZh
dWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZp
bGUtcmVhZC1tZXRhZGF0YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1s
b29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVuKQorCiso
YWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNh
bmRib3gucmVhZC13cml0ZSIpKQorCisoZGVueSBzeXNjdGwqKQorKGFsbG93IHN5c2N0bC1yZWFk
CisgICAgKHN5c2N0bC1uYW1lCisgICAgICAgICJody5hdmFpbGNwdSIKKyAgICAgICAgImh3Lm5j
cHUiCisgICAgICAgICJody5tb2RlbCIKKyAgICAgICAgImtlcm4ubWVtb3J5c3RhdHVzX2xldmVs
IgorICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkKKworOzsgVmFyaW91cyBzZXJ2aWNl
cyByZXF1aXJlZCBieSBzeXN0ZW0gZnJhbWV3b3JrcworKGFsbG93IG1hY2gtbG9va3VwCisgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5oCmluZGV4IGE3MmJjOTI5ZGJkN2M3NGMyMjY2OWI4MjMxN2E2MWZmYWJkZjM3Njku
LjVkMGNjNmUyZjU0ZDM2ODMyZGQyNWY4N2MwODI3NzA5M2JkYzNhNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICAgICAgV2Vi
Q29udGVudCwKICAgICAgICAgTmV0d29yaywKICAgICAgICAgUGx1Z2luCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAgICAgfTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTczNzA5NzM0MDNkNDYzNDA4ZWQ2M2JiY2VmNDU2M2JkMDA5OTgx
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisKKyNpbmNsdWRl
ICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkK
K3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsK
K30KKworYm9vbCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3Vs
dCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zZXNzaW9uSUQpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWM4NjNjMDBhOGE0MDcwMTM1MTJjYTIzMWMwNTU4
MzUxN2I5ZWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTYW5kYm94RXh0
ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBF
bmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cygpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAppbmRleCAyY2U3MTZlNGM3
MmU1ODJhYmUzMGY0ODc5ZDJjNmViOWU0OTlhOTdiLi42MmI1NDc0ZWZhYTcyNGVhYjUyOGI0ZjY3
MDE3OTFmMGNlOWFhZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNz
RXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGguaApAQCAtMzIsNSArMzIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBl
eGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVn
aW5Qcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCk7Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGF5bWVu
dFByb2Nlc3MoKTsKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggZWRiYjVlMWY2Nzk0YjZmNDgxM2UzYWNhNmNlNTAzZWJmYzMyMGUxOS4uY2Vk
NjhmNTM4NDY1MjE3MWRhYzRlM2Q4NDNhNDQxYmU3MmQ3MTk3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0y
MTksOCArMjE5LDEzIEBAIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIEBuby11bmlmeQogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW5Nb2R1bGUuY3BwICBAbm8tdW5pZnkKIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbklu
Zm9ybWF0aW9uLmNwcCBAbm8tdW5pZnkKIAorU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5j
cHAKIAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIEBuby11bmlmeQorUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIEBuby11bmlmeQorCiBV
SVByb2Nlc3MvQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogVUlQcm9j
ZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3Bw
CkBAIC0zODEsNiArMzg2LDggQEAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNw
cAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCiBVSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50L1BheW1l
bnRQcm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJTY3JpcHRNZXNz
YWdlSGFuZGxlci5jcHAKIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eS5jcHAKIApAQCAtNDkxLDYgKzQ5OCw3IEBAIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V09yaWdpblRhYmxlLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3Zp
ZGVyLmNwcAorV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmNwcAogCiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5j
cHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDU5NGJmOTBkZDVmMDhiZmRjNDM0YjlmNWRj
NTllNDhjM2FhMmQ3MWUuLjBlNDIwZWY2ODg3MGYxNjg1MmQwZjNhNmQ5ZTUzNTYxNGZkNTMxNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE5NCw2ICsxOTQsOSBAQCBTaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQogU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQogU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAogCisKK1Bh
eW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbSBAbm8tdW5pZnkKKwogVUlQcm9j
ZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQogVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3Rh
dGVUcmFja2VyLm1tCiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBs
ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRl
eCAwNDAxZTcyYjRjNmY1ZTRlNTlkZDhjYWI0MGI2NjQzNWQ0ZjU4ZmI5Li43YmYzZjVhMTJjOTdl
Y2E3OWRiNzQwZTY5YzQ1ZGZjOWVhNGFiYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSwxMSArNjIxLDI3IEBAIHZvaWQgV0tDb250ZXh0
VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAgICAg
dG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiB9CiAK
K3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRl
eHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0b0ltcGwoY29udGV4dCkt
PnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vz
c0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1w
bChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKK1Byb2Nlc3NJ
RCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gdG9JbXBs
KGNvbnRleHRSZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0
dXJuIDA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogdm9pZCBXS0Nv
bnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5n
UmVmIGRvbWFpblJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJheVJlZiBtaW1lVHlwZXNS
ZWYsIFdLQXJyYXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFBy
aXZhdGUuaAppbmRleCA0NmQzN2UxZThhMTU4OTU4MGEzNTUzOGVlNWY2ZjliYzJkODBlMjJjLi4x
ZjFlODczOWQzMmVkNzZkNTE3MTFjNmJkN2JlYTA2OTQxM2Y5NDJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC05Miw2ICs5Miw4
IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3JrUHJvY2VzcyhXS0NvbnRl
eHRSZWYsIGJvb2wpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKy8vIE5PVEU6IFRoaXMgaXMgb25s
eSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAogV0tf
RVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2Nr
ZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRT
ZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29udGV4
dFJlZiwgYm9vbCk7CkBAIC0xMTIsNiArMTE0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0
U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYpOwogV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1VS
TFJlZiBzZXJ2ZXJVUkwpOwogCiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0
d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9SVCBX
S1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVn
aW4oV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIGRvbWFpbiwgV0tTdHJpbmdSZWYg
bmFtZSwgV0tBcnJheVJlZiBtaW1lVHlwZXMsIFdLQXJyYXlSZWYgZXh0ZW5zaW9ucyk7CiBXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhclN1cHBvcnRlZFBsdWdpbnMoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbQppbmRleCBjZjI4MTFlOGIzYWNhYWIwZDA4MWUwODgyY2JmZDgzYzdkNWRkNWNl
Li4wZjMyMTI4YTJmM2RhODU1NmY0NDRkNzQ5Y2I1MzkyNzg1MDgxNmNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDI0
LDYgKzQyNCwxMyBAQCAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMKICAgICBfcHJvY2Vz
c1Bvb2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogfQogCistICh2b2lkKV90ZXJtaW5hdGVQ
YXltZW50UHJvY2VzcworeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgX3Byb2Nl
c3NQb29sLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKQEAg
LTQ0NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllcgogICAg
IHJldHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCist
IChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50UHJvY2Vzc0lkZW50aWZp
ZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsK
ICAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmgKaW5kZXggNGQzYTE5MTIwYWJkNDllZWUwNDkyNzk0YTc3ZjRhZmIwNmNkZTkwYy4uMGI5
OTllODY0YTkxOWFjNThjOTAxOWM4NDYzZTYwN2M1ZjM3ZWNmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgK
QEAgLTg0LDEyICs4NCwxNiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9t
RGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qg
b25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3Nl
cyBhcmUgcnVubmluZy4KKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlN
RU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3M7
CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3Mo
MTIuMCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25E
ZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKIC8vIFRl
c3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2
YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistIChwaWRfdClfcGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjMpKTsKIAogLy8gVGVz
dCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA4N2IwYmJlYzgxMzAzYTc1Yzg1ZTJhOGNi
YzMwZTdhYzIyZDgzZGNlLi42ZDY2ZWMzMWFmZjZlZGMxYTQxZjY4NDgzMjUyM2NkODdlNmJkMmE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1
bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1
bmNoZXIuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgICAgIFBsdWdpbjY0LAogI2Vu
ZGlmCiAgICAgICAgIE5ldHdvcmssCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAg
ICAgUGF5bWVudCwKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIH07CiAK
ICAgICBzdHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCAzYjQ2
MTYzNGU4NTE3MzlkNjk1ZDA1NTViZTU0ZDY5YjQ4NDYwNjQ4Li4wMjJhZDMyNzdjZGNmMzJmNDM4
MDM4MTIxODE0MDczZjlkNGE0NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTYyLDYgKzYy
LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6
UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luLjY0IjsKICNlbmRpZgorICAgIGRlZmF1bHQ6IHJldHVybiBuaWw7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9j
ZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJv
Y2Vzc1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGI0N2NlYTkyNTU3MjU0NGYwMDQ0YTJmNzMwMTY1
NGI0ZDE1MzVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5
bWVudC9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisKKyNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0
aWMgdWludDY0X3QgZ2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQoKQoreworICAgIHN0
YXRpYyB1aW50NjRfdCBjYWxsYmFja0lEOworCisgICAgcmV0dXJuICsrY2FsbGJhY2tJRDsKK30K
KworUGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9v
bCYgcHJvY2Vzc1Bvb2wpCisgICAgOiBDaGlsZFByb2Nlc3NQcm94eShwcm9jZXNzUG9vbC5hbHdh
eXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vz
c1Bvb2wpCisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKK3sKKyAgICBj
b25uZWN0KCk7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5
KCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5n
KCkKK3sKKyAgICB0ZXJtaW5hdGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpn
ZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0
aW9ucykKK3sKKyAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVy
OjpQcm9jZXNzVHlwZTo6UGF5bWVudDsKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNo
T3B0aW9ucyhsYXVuY2hPcHRpb25zKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpw
cm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBB
U1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlv
bik7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAg
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJv
Y2Vzc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQo
V1RGTW92ZShyZXBseSkpOworCisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5jaGluZykg
eworICAgICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMrKzsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOwor
ICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKKworICAgIHNlbmQoTWVzc2Fn
ZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBzZWN1cml0eU9yaWdpbiksIDAsIElQQzo6U2VuZE9wdGlv
bjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQoreworICAg
IGF1dG8gcHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bvb2wpOworCisg
ICAgLy8gVGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0ZWQsIHNv
IHNlbmQgYW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAgd2hpbGUg
KCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byBy
ZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworCisjaWYgVVNF
KFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgICAgIHJlcGx5KElQQzo6QXR0YWNobWVudCgpKTsK
KyNlbGlmIE9TKERBUldJTikKKyAgICAgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KDAsIE1BQ0hf
TVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICByZXBseShJ
UEM6OkF0dGFjaG1lbnQoKSk7CisjZWxzZQorICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworI2Vu
ZGlmCisgICAgfQorICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMg
cGF5bWVudCBwcm9jZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgorICAgIG1f
cHJvY2Vzc1Bvb2wucGF5bWVudFByb2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpk
aWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1l
bnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghbV9wZW5kaW5nQ29ubmVj
dGlvblJlcGxpZXMuaXNFbXB0eSgpKTsKKworICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy50YWtlRmlyc3QoKTsKKworI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRT
KQorICAgIHJlcGx5KGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyNlbGlmIE9TKERBUldJTikKKyAg
ICByZXBseShJUEM6OkF0dGFjaG1lbnQoY29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpLCBNQUNI
X01TR19UWVBFX01PVkVfU0VORCkpOworI2VsaWYgT1MoV0lORE9XUykKKyAgICByZXBseShjb25u
ZWN0aW9uSWRlbnRpZmllci5oYW5kbGUoKSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7
CisjZW5kaWYKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5p
c2hMYXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikp
IHsKKyAgICAgICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVwIGhlcmUuCisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9udW1QZW5kaW5n
Q29ubmVjdGlvblJlcXVlc3RzOyArK2kpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQ
cm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihmYWxzZSwgeyB9KSwg
MCk7CisgICAgCisgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50UHJvY2Vz
c1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEzZjUyYmE3NjEyZGFhM2MyM2NiMDE0NWYxNjEyNTAzODU2
ZDI2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NQcm94eS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2hpbGRQ
cm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOwor
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK3N0cnVjdCBT
ZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
cm9jZXNzUG9vbDsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKK2VudW0gY2xhc3MgV2Vic2l0ZURh
dGFUeXBlOworc3RydWN0IFdlYnNpdGVEYXRhOworCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5
IGZpbmFsIDogcHVibGljIENoaWxkUHJvY2Vzc1Byb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJik7CisgICAgflBheW1lbnRQcm9j
ZXNzUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihX
ZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKworICAgIHZvaWQgdGVybWluYXRlRm9y
VGVzdGluZygpOworCitwcml2YXRlOgorICAgIC8vIENoaWxkUHJvY2Vzc1Byb3h5CisgICAgdm9p
ZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJy
aWRlOworICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVy
cmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1l
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCisgICAgLy8gTWVzc2FnZSBo
YW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Y29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisKKyAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVu
dAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CisKKyAgICBXZWJQcm9jZXNzUG9vbCYgbV9w
cm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0
czsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudC9QYXltZW50
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZWZmYmI1ODI5
Y2EwNjZlNWViMzRjMWM3ZTQ5NmU3YTNmMzg2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50L1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
QEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNz
UHJveHkgTGVnYWN5UmVjZWl2ZXIgeworICAgIERpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKKworfQorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGZhNDU3NjJlY2ViYTAxM2E2YWNhNGY5NjRkYTg1
NjYzOTc0MWQ1NzUuLmJlYzc5YjU0Y2JmNmM2ZWM1ZWZlZmY0YTk3NTcwZjY5OWI1NTNmMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC00Niw0
ICs0NiwxMSBAQCB2b2lkIFdlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2go
V2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogICAgIG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNz
RGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
fQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViQ29udGV4dENsaWVudDo6
cGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCit7Cisg
ICAgCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKaW5k
ZXggODBjMzExMjJjMDc3NmQ0ZWU4ZDc3OGQ1NjY4MjEwMTUyMjE2MzdkNi4uNTliM2E0MDc5MTA4
ZjIzOGYxZDZmOGFiZjFhYjllZGNjODQ1MzkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRDbGllbnQuaApAQCAtNDUsNiArNDUsMTAgQEAgY2xhc3MgV2ViQ29udGV4dENs
aWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbnRleHRDbGllbnRCYXNlPiB7CiBwdWJsaWM6
CiAgICAgdm9pZCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkKFdlYlByb2Nlc3NQ
b29sKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKik7
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzRGlk
Q3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaAppbmRleCBlZDU1YjQwM2RiMjlmOTQwMDQz
OGJhMzJhNjBjNzU4Mjc0OTM0ZmE2Li4yYzZhY2JiMDVjYjAyNmFjZGE3NWMwNjdkMWYwZDlkNDU5
YTEyN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3Vw
cGxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVt
ZW50LmgKQEAgLTI5LDYgKzI5LDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0
d29ya1Byb2Nlc3NQcm94eTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgUGF5
bWVudFByb2Nlc3NQcm94eTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBj
bGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIApAQCAtNTQsNiAr
NTgsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoTmV0d29y
a1Byb2Nlc3NQcm94eSopCiAgICAgewogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoUGF5bWVudFByb2Nlc3NQ
cm94eSopCisgICAgeworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
CiAgICAgV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKCkgY29uc3QgeyByZXR1cm4gbV9wcm9j
ZXNzUG9vbDsgfQogICAgIHZvaWQgY2xlYXJQcm9jZXNzUG9vbCgpIHsgbV9wcm9jZXNzUG9vbCA9
IG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApp
bmRleCBlNGE4NzcwNDc1NzhjNDhmNDBkNzFjNjkyN2M5NjVkYjk2MmI3OTQwLi5lZTU5NjJlMTcy
YjdiOGJmZmM2ZTUyZTkwNTA4NGI1MGRjZmU5YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01NCw2ICs1NCwxMCBAQAogI2luY2x1ZGUgIlNhbmRi
b3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAj
aW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNp
bmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgpAQCAtNDQyLDYgKzQ0Niw5IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGJvb2wgaXNDcml0aWNhbCkKIHsK
ICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2
ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOwogICAgIHNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2
ZW50KGlzQ3JpdGljYWwpKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHNlbmRU
b1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQ
cmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFBsdWdpblByb2Nlc3NN
YW5hZ2VyOjpzaW5nbGV0b24oKS5zZW5kTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKTsK
ICNlbmRpZgpAQCAtNjA3LDYgKzYxNCwzNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveAogICAg
IG1fbmV0d29ya1Byb2Nlc3MtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNz
UHJveHksIFdURk1vdmUocmVwbHkpKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2VzcygpCit7CisgICAgaWYg
KCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzID0gc3RkOjptYWtl
X3VuaXF1ZTxQYXltZW50UHJvY2Vzc1Byb3h5PigqdGhpcyk7Cit9CisgICAgCit2b2lkIFdlYlBy
b2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3
ZWJQcm9jZXNzUHJveHksIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBtX3BheW1l
bnRQcm9jZXNzLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBX
VEZNb3ZlKHJlcGx5KSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNz
Q3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2Vzc1Byb3h5KQoreworICAg
IEFTU0VSVChtX3BheW1lbnRQcm9jZXNzKTsKKyAgICBBU1NFUlQocGF5bWVudFByb2Nlc3NQcm94
eSA9PSBtX3BheW1lbnRQcm9jZXNzLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgc3VwcGxlbWVu
dCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCisgICAgICAgIHN1cHBsZW1lbnQtPnByb2Nlc3NE
aWRDbG9zZShwYXltZW50UHJvY2Vzc1Byb3h5KTsKKworICAgIG1fY2xpZW50LnBheW1lbnRQcm9j
ZXNzRGlkQ3Jhc2godGhpcyk7CisKKyAgICBpZiAobV9hdXRvbWF0aW9uU2Vzc2lvbikKKyAgICAg
ICAgbV9hdXRvbWF0aW9uU2Vzc2lvbi0+dGVybWluYXRlKCk7CisKKyAgICBtX3BheW1lbnRQcm9j
ZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNo
V29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJv
eHkmIHByb3h5LCBTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRp
b25hbDxQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbklEKQogewpAQCAtNjgzLDYgKzcyMCw5IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoYm9vbCBwcml2YXRlCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdl
czo6V2ViUHJvY2Vzczo6QWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKCkpKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5yZW1vdmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVz
dHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgICAgIHNlbmRUb0FsbFByb2Nl
c3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwogICAgIH0KIH0KQEAgLTEzMzYsNiArMTM3Niwx
NSBAQCBWZWN0b3I8U3RyaW5nPiBXZWJQcm9jZXNzUG9vbDo6YWN0aXZlUGFnZXNPcmlnaW5zSW5X
ZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9jZXNzSQogICAgIH0KICAgICByZXR1cm4geyB9OwogfQor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQcm9jZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6OnBh
eW1lbnRQcm9jZXNzSWRlbnRpZmllcigpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3BheW1lbnRQcm9jZXNzLT5wcm9jZXNz
SWRlbnRpZmllcigpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wg
YWx3YXlzVXNlQ29tcGxleFRleHQpCiB7CkBAIC0xNjA3LDYgKzE2NTYsMTcgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgaWYgKG1fbmV0d29ya1By
b2Nlc3MpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDApOwogfQorICAgIAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc0ZvclRlc3RpbmcoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+dGVybWluYXRlRm9yVGVzdGluZygp
OworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQ
cm9jZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4
IGQzYThkOGU1YjBhZmRmNmFlNGU1MzA2ZjQ5M2E4YjljYjUwYzI1ZWQuLjQyYTcwYWE4MDc1YmU1
ZjllY2VhMTlkOWI4ZTkyODJiYTMwYWY1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRs
ZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAi
U3RhdGlzdGljc1JlcXVlc3QuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzUHJveHkuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKQEAgLTE3
Myw2ICsxNzYsMTIgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFU+IHZvaWQgc2VuZFN5bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlLCBVJiYgcmVw
bHkpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nl
c3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJvY2VzcyBvciBQ
YXltZW50UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4K
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBt
ZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9j
ZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhX
ZWJQcm9jZXNzUHJveHkqKTsKIAogICAgIC8vIERpc2Nvbm5lY3QgdGhlIHByb2Nlc3MgZnJvbSB0
aGUgY29udGV4dC4KQEAgLTIxNyw2ICsyMjYsOSBAQCBwdWJsaWM6CiAgICAgUHJvY2Vzc0lEIG5l
dHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogICAgIFZlY3RvcjxTdHJpbmc+IGFjdGl2ZVBhZ2Vz
T3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3RpbmcoUHJvY2Vzc0lEKTsKICAgICBib29sIG5ldHdv
cmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUHJvY2Vzc0lEIHBheW1lbnRQcm9jZXNzSWRlbnRp
ZmllcigpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQYWdl
R3JvdXAmIGRlZmF1bHRQYWdlR3JvdXAoKSB7IHJldHVybiBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0
KCk7IH0KIApAQCAtMjc2LDYgKzI4OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wpOwogCiAgICAgdm9pZCBjbGVhckNhY2hl
ZENyZWRlbnRpYWxzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZv
aWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcygpOwogICAgIHZvaWQgZGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOwpAQCAtMzQyLDYgKzM1NywxMiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgdm9pZCBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIFBheW1lbnRQcm9jZXNzUHJv
eHkqIHBheW1lbnRQcm9jZXNzKCkgeyByZXR1cm4gbV9wYXltZW50UHJvY2Vzcy5nZXQoKTsgfQor
ICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBB
TDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQg
cGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkqKTsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICB2
b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHN0ZDo6b3B0
aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBz
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJRCh1aW50NjRfdCBwYWdlSUQpIGNvbnN0
OwpAQCAtNjQwLDYgKzY2MSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhbkhhbmRsZUhUVFBT
U2VydmVyVHJ1c3RFdmFsdWF0aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9kaWROZXR3b3JrUHJv
Y2Vzc0NyYXNoIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Byb2Nlc3NQ
cm94eT4gbV9uZXR3b3JrUHJvY2VzczsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50UHJvY2Vzc1Byb3h5PiBtX3BheW1lbnRQcm9jZXNzOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPj4gbV9kaWN0aW9uYXJ5Q2FsbGJhY2tzOwogICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0aWNzUmVxdWVzdD4+IG1fc3RhdGlzdGlj
c1JlcXVlc3RzOwpAQCAtNzQxLDYgKzc2NSwyMiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5k
VG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiAg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwog
fQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2FnZSkKK3sK
KyAgICBpZiAobV9wYXltZW50UHJvY2VzcyAmJiBtX3BheW1lbnRQcm9jZXNzLT5jYW5TZW5kTWVz
c2FnZSgpKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPiht
ZXNzYWdlKSwgMCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3Nh
Z2UpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNz
LT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25zdCBUJiBtZXNzYWdlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTk5YzVhMDE2ZGI1ZjNi
ZjFlZjdkNDVmNTIxYmNlN2NlNDZhNGE1NC4uZTQxNmFhMDBjMDE4NzdlMzQ3NDY0ZmZhOTNmNzQ3
MDNjNDJhZGQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC02MjMsNiArNjIzLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0CiB7CiAgICAg
bV9wcm9jZXNzUG9vbC0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlh
bFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3Byb2Nlc3NQb29sLT5n
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIGluaXRpYWxTZXNzaW9uSUQsIFdURk1v
dmUocmVwbHkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogYm9vbCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSXNCZWluZ0Rl
YnVnZ2VkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
aW5kZXggMWJiODgzY2YyZjIzYTcwNjRhYmQ0Y2VmN2U1OWI3NmNkZWVkODJmMy4uNGY0NDBkN2Zm
MTcyMmU0NmEzYjQ2NjlhYmU0OGY1ODU2ZTI4YzYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI3Niw2ICsyNzYsOSBAQCBwcml2YXRlOgogI2VuZGlm
CiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYp
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgYm9vbCBwbGF0Zm9ybUlz
QmVpbmdEZWJ1Z2dlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQWxsb3dOb25WYWxpZEluamVj
dGVkQ29kZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNWE3ZjVkM2Q0NjlmMjMyMGNiYzI4NzBmYjlj
MWQ4MWZlYjZlMjFlZS4uZDQ0MzU0ZjMzYmU2YzAyNGI2Zjc0YTIwYWNhZTU5MGRhZTk1MmNlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMzcsNiArMzcsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVn
YWN5UmVjZWl2ZXIgewogICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBs
dWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBi
b29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pIERlbGF5ZWQKICNlbmRpZgog
ICAgIEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29u
bmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9u
SUQpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkK
ICAgICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXgg
MWEyNTViODk1NjJkZTU4NDRiYmYzMjIxY2M0YjdlODIyMmY5YzY0OC4uYzUwM2ZmZDZmNWJlZmJk
ZmUwYTBmMGM2YjM3MzRjODU5MjY4ZTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTM0LDYgKzM0
LDEwIEBACiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQb29sLmgiCkBAIC0xMzUsNiArMTM5LDkgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldl
YnNpdGVEYXRhU3RvcmUoKQogICAgICAgICBBU1NFUlQobm9uRGVmYXVsdERhdGFTdG9yZXMoKS5n
ZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAgICBub25EZWZhdWx0RGF0YVN0b3Jlcygp
LnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBX
ZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb1BheW1lbnRQcm9jZXNzKE1l
c3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24obV9zZXNzaW9uSUQpKTsKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICAgICAgaWYgKGF1dG8qIG5l
dHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAgICAg
ICAgICAgbmV0d29ya1Byb2Nlc3MtPnJlbW92ZVNlc3Npb24obV9zZXNzaW9uSUQpOwogICAgICAg
ICB9CkBAIC0xNjI2LDYgKzE2MzMsMTkgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbGVhclJl
c291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGwKICAgICBj
YWxsYmFjaygpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1BheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFy
YW1ldGVycygpCit7CisgICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKKworICAg
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisKKyAgICBwYXJh
bWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vzc2lvbklEOworCisgICAgcmV0dXJuIHBhcmFtZXRlcnM7
Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogVmVjdG9yPFdlYkNvcmU6
OkNvb2tpZT4gV2Vic2l0ZURhdGFTdG9yZTo6cGVuZGluZ0Nvb2tpZXMoKSBjb25zdAogewogICAg
IHJldHVybiBjb3B5VG9WZWN0b3IobV9wZW5kaW5nQ29va2llcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXgg
YmQ1NzkxM2QzOTk0NzQ1MWQwZTk5YTBhZDVmMThiOTgzYWUxMDMxZS4uNWVhODBlYjlhZjUxY2Rh
ZWQwYzZlYjUxODMzOGQxYzBlOTk4NTI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjIsNiArNjIsOSBA
QCBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNp
dGVEYXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29yZDsKIHN0
cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIApAQCAtMTY5LDYgKzE3Miw5IEBAIHB1
YmxpYzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlByb2Nlc3NQb29sJikg
Y29uc3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJzKCk7Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyBwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcGVuZGluZ0Nvb2tp
ZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3QgV2ViQ29yZTo6Q29v
a2llJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAzNTZkMmMyMDRhNmIzOGQ2OGIyODg3Mjk5ZTAwNzZkOGU5MTM3Nzk0Li44YjlhMmZi
NGNiYWM0NmRkMDU0ZWFhZmI0ZDg5ZTgzMTFlZjZmOWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0NCw2ICs4NDQsNyBAQAogCQkz
N0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYz
ODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdGQzE5NDcx
ODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDYx
ODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RkMx
OTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1
MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsK
KwkJMzkxMzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMu
c2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5MTM2
MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovOyB9
OwogCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAv
KiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3QkQ5NzAw
Mjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4
OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKQEAgLTkwMiw2ICs5MDMs
MTEgQEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5
NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlCMTI4OEM5NUUw
MEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNCMDA3MjcxN0Eg
LyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxMThFOUEx
MUYyOTUzMjYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5OUYxRjI5
NTMxRjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07
CisJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OworCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLzsg
fTsKKwkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUwMEU0N0I4MyAvKiBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBT
ZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnku
aCAqLzsgfTsKIAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFy
eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4
QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CkBAIC05
NTMsNiArOTU5LDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMx
NjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTdERDVCRjE4MERBN0Qz
MDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1l
bnRQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdl
YkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsK
IAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDQUU5MTJB
RUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNGMTExMkIwMTVGODAwQjA0
QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFs
VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtOTgwLDYgKzk4Nyw4IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8qIElE
QlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9OworCQk1
MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLzsgfTsKKwkJNTFFMzUyMDAxODBGNUQwRjAwRTUz
QkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAv
KiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZDMTY0MUYy
OTM1REQwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYx
MUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2lu
ZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUxNjU0
MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTE1
NTIsNiArMTU2MSw3IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1l
bnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0
ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTgg
LyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07
CisJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5
MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2
M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkg
LyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4
REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgy
IC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3
MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8q
IENoaWxkUHJvY2Vzc1Byb3h5LmggKi87IH07CkBAIC0yOTU4LDYgKzI5NjgsMjggQEAKIAkJM0Y0
MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThF
RjgxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CisJCTM5MTM2MDAyMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDMy
MTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDQyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VX
b3JrZXJQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2
aWNlV29ya2VyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYw
MDUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDYyMTkzNzYwODAwNTY0OTJBIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwNzIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMDgyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXT3Jp
Z2luVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dP
cmlnaW5UYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDA5MjE5
Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAwQTIxOTM3NjA4MDA1NjQ5MkEgLyogV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5MTM2MDBCMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTM5MTM2MDBDMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEz
NjAwRDIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTM5MTM2MDBFMjE5Mzc2MDgwMDU2NDkyQSAvKiBTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkx
MzYwMEYyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMTAy
MTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDExMjE5Mzc2MDgwMDU2NDky
QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAxMjIxOTM3NjA4MDA1NjQ5MkEgLyogV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRz
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAv
KiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjQxOEVGNjE4ODdCRDk3
MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY4
MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCQTE1
ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBX
ZWJDb2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xv
clBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAxNCw2ICszMDQ2LDcg
QEAKIAkJNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBs
dWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVn
aW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODhDMTU0MjExMzc3NzAwMDEy
QUJDRCAvKiBwcm9jZXNzLW5ldHdvcmstc2FuZGJveC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJwcm9jZXNzLW5ldHdvcmstc2FuZGJveC1lbnRpdGxl
bWVudHMuc2giOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1NjIxMTM3N0U4
MDAxMkFCQ0QgLyogcHJvY2Vzcy13ZWJjb250ZW50LXNhbmRib3gtZW50aXRsZW1lbnRzLnNoICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQuc2g7IHBhdGggPSAicHJvY2Vzcy13ZWJjb250ZW50LXNhbmRib3gtZW50aXRsZW1lbnRzLnNo
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4OEMxNTcyMTEzNzg1MjAwMTJBQkNE
IC8qIFBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlz
dC5lbnRpdGxlbWVudHM7IHBhdGggPSAiUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4QzE1ODIxMTM3ODUyMDAxMkFCQ0Qg
LyogV2ViQ29udGVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBs
aXN0LmVudGl0bGVtZW50czsgcGF0aCA9ICJXZWJDb250ZW50LU9TWC1zYW5kYm94LmVudGl0bGVt
ZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUNCMUY0MTVENUMwMDE2
RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxODk3RUNDMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDgwLDYgKzMxMTMsNyBAQAogCQk0RjYwMTQz
MDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5k
eWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNv
bXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1T
aGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAyMUU5
QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3
IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEgLyogQ29va2llU3RvcmFnZVV0aWxz
Q0YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29raWVTdG9y
YWdlVXRpbHNDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzExQzcz
RDIyQjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcyMUM3M0QzN0IwMDc5OTNDQiAv
KiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKQEAgLTMxMDgsNiArMzE0MiwxMiBAQAogCQk1MTE4RTlBNTFGMjk1OTYzMDAz
RUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAv
KiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNz
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlB
NzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CTUxMThFOTlFMUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOTlGMUYyOTUzMUYw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5
RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1l
bnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTFGN0QzRjFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFG
N0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0
IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBTZWNJdGVtU2hpbUxpYnJhcnkuaDsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFjL1NlY0l0
ZW1TaGltTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzEyNSw2ICsz
MTY1LDcgQEAKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRl
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1
IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3ODAw
QTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkE5NzY2MTgwRTA1RDIwMDM5
QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1
ODhFMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RjEyQTg4
Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODkwMTJBODgzODgwMDYyOTUzMCAvKiBB
dXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxOTUsNiArMzIzNiw4IEBACiAJCTUxN0NGMEUxMTYz
QTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8q
IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0NhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTE3REQ1QkMxODBEQTdEMzAwODE2
NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRF
IC8qIFNoaW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hpbS54
Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5RDAw
Rjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMjE0LDYgKzMyNTcsNyBAQAogCQk1MUE1NTYwMDEyOEM2RDkyMDA5
QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCUmVzdWx0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENCOTAwNEJBOUFGIC8qIFdl
YklEQlJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJREJSZXN1
bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNC
RjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBheW1lbnRTZXJ2
aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3MjhEQzFCMUJB
RDJEMDAxMDJFRUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkYyMTI1QkY4MjAwMDhBRUIx
RCAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFE
IC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9n
Z2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjczLDYgKzMzMTcsMTEg
QEAKIAkJNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0MwMEU1M0JFOSAv
KiBJREJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SURCVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzUxQzkx
ODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
RTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJvdmlk
ZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYxRjI5MzU1
MTAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50
U3RvcmFnZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTYxMUYy
OTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDAxLDYgKzQ0NTAsNyBAQAogCQlF
MUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94SW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0RDMTFG
OENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8q
IFBheW1lbnRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUzNjAgLyogTmV0d29ya0Nh
Y2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29y
a0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDJFMDYwQjFB
QTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDU3NSw2ICs0NjI1LDcgQEAKIAkJCQkxQUFEREY0QjEwRDgyQUYw
MDBEM0Q2M0QgLyogU2hhcmVkICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBV
SVByb2Nlc3MgKi8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3Mg
Ki8sCisJCQkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNzICovLAog
CQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKIAkJCQkx
QTBFQzZCMDEyNEJCRDM2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2VzcyAqLywKIAkJCQlDMENFNzI5
RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLApAQCAtNDc3OCw2ICs0ODI5
LDggQEAKIAkJCQk0MUQwRkM3RDIwRTQzQTUxMDAwNzZBRTggLyogTmV0d29yay1PU1gtc2FuZGJv
eC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNUM3QUNGRDEyMThERDhCRDAwNENCQjU5IC8qIE5ldHdv
cmstT1NYLmVudGl0bGVtZW50cyAqLywKIAkJCQlCQzgyODNBQjE2QjRCRUFEMDBBMjc4RkUgLyog
TmV0d29ya1NlcnZpY2UueGNjb25maWcgKi8sCisJCQkJNDE4OEMxNTcyMTEzNzg1MjAwMTJBQkNE
IC8qIFBheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAorCQkJCTUxQTYwQjI5MTgw
Q0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlBMUVERDJE
QjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8sCiAJCQkJ
QkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25maWcgKi8s
CiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQueGNjb25m
aWcgKi8sCkBAIC00OTM1LDYgKzQ5ODgsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2
OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk1MTE4RTk5RDFG
Mjk1MzFGMDAzRUY5RjUgLyogUGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0
YSAqLywKQEAgLTYyMTEsNiArNjI2NSwzMCBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9tYWM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEzNjAwMTIxOTM3NjA4MDA1NjQ5
MkEgLyogU3RvcmFnZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJMzkxMzYwMEUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aC5jcHAgKi8sCisJCQkJMzkxMzYwMDUyMTkzNzYwODAwNTY0OTJBIC8qIFNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaC5oICovLAorCQkJCTM5MTM2MDExMjE5Mzc2MDgwMDU2NDkyQSAvKiBTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gKi8sCisJCQkJMzkxMzYwMDcyMTkzNzYwODAw
NTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwICovLAorCQkJCTM5
MTM2MDBBMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmggKi8sCisJCQkJMzkxMzYwMTIyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZpY2VXb3JrZXJQ
cm92aWRlci5jcHAgKi8sCisJCQkJMzkxMzYwMDQyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlci5oICovLAorCQkJCTM5MTM2MDAyMjE5Mzc2MDgwMDU2NDkyQSAvKiBX
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MTM2MDAzMjE5Mzc2MDgwMDU2NDky
QSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLywKKwkJCQkzOTEzNjAwOTIxOTM3NjA4MDA1
NjQ5MkEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTM5MTM2
MDBCMjE5Mzc2MDgwMDU2NDkyQSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAg
Ki8sCisJCQkJMzkxMzYwMTAyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmggKi8sCisJCQkJMzkxMzYwMDYyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTM5MTM2MDA4MjE5Mzc2
MDgwMDU2NDkyQSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLywKKwkJCQkzOTEzNjAwRDIxOTM3
NjA4MDA1NjQ5MkEgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovLAorCQkJCTM5MTM2MDBGMjE5Mzc2
MDgwMDU2NDkyQSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJ
MzkxMzYwMEMyMTkzNzYwODAwNTY0OTJBIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmggKi8sCisJCQkpOworCQkJcGF0aCA9IFN0b3JhZ2U7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY0MDgsNiArNjQ4Niw4IEBA
CiAJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTE4RTk5RTFGMjk1MzFGMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovLAorCQkJCTUxMThFOTlG
MUYyOTUzMUYwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICov
LAogCQkJCTQxMzFGM0QwMUY5NkJDQzgwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2guY3BwICovLAogCQkJCTQxMzFGM0NFMUY5NkE0OTUwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2guaCAqLywKIAkJCQk0MTMxRjNDRjFGOTZBOTM2MDA1OTk5NUEgLyogU2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluICovLApAQCAtNjUzMCw2ICs2NjEwLDE2IEBA
CiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3
REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyog
UGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQ
YXltZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTE4RThFRjExNkIy
MDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY1ODYsNiArNjY3NiwyMCBAQAogCQkJcGF0aCA9IGlvczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBBMTgwQ0M0MTEwMDIx
MkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLywKKwkJCQk1
MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAorCQkJCTUx
RTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAorCQkJCTUxRTM1
MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJ
CQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlw
YXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTg5LDYgKzcwOTMsNyBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FDOUUzMDA1RUNDMjUg
LyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAorCQkJCTM5MTM2MDI0MjE5M0Mx
NDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovLAogCQkJCUE3OEND
REQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCiAJ
CQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYiAqLywKIAkJCSk7CkBAIC03MTkzLDYgKzcyOTgsNyBAQAogCQkJCUJDQ0YwODVDMTEzRjNC
NzUwMEM2NTBDNSAvKiBtYWMgKi8sCiAJCQkJNTEwQ0M3RTcxNjEzOEU3MjAwRDAzRUQzIC8qIE5l
dHdvcmsgKi8sCiAJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMg
Ki8sCisJCQkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnQgKi8sCiAJCQkJMUFF
RkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0
MjAwMDZFM0ZFIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBC
NjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04Mjg0LDYgKzgzOTAsMTAgQEAKIAkJCQk1QzBC
MTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8s
CiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyog
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
NTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywK
KwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUND
RiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlD
REEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04NjAyLDYgKzg3MTIsMTQgQEAK
IAkJCW5hbWUgPSBQREY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZF
RjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MDY3LDYgKzkxODUs
MTAgQEAKIAkJCQkxQUM3NTM3QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE4QjY2QjAxQkM0M0M4NjAwODJERjc3IC8qIFBhZ2VMb2FkU3Rh
dGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4
IC8qIFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QTExRjI5NTMy
NjAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBh
eW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUFCMUYyOTU5Nzcw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0TWVudS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDMjk4REEwMUMzREYwMjEwMDQ3MEFGRSAvKiBQZW5kaW5nRG93
bmxvYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMTAwNTEsNiArMTAxNzMsNyBAQAogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2
M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291
cmNlcyAqLywKKwkJCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktp
dC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQy
M0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRE
RDM3OTIwQkY0M0Y1MDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVk
aWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAqLywKQEAgLTEwNjU0LDYgKzEwNzc3LDExIEBACiAJ
CQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRp
bGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAv
KiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYw
MEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTE1Qzcx
NDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywK
KwkJCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlG
MDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5k
ZXggMmJmYWVlNDc2ZTFmNGJjY2NkYjI2NjBmZTVkOGU2NmJkNjc0YTNkNy4uNWRmYzU1NTAwYzU2
OTM4MTQ1Y2I2M2JmNzZkNWQ4Yjc2OTM5MGEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTkwLDYg
KzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNl
KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSBmaW5hbDsKIAog
ICAgIHZvaWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJK
b2JEYXRhJik7CisgICAgdm9pZCBzY2hlZHVsZVBheW1lbnRKb2IoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZvaWQgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQo
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VlNzg4OTY0ODc5YjliOTc2ZGI0OWFlMDNlYTJkNWJh
MGQ0NjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisKKworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAg
ICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4o
KTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisK
K3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBy
ZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwor
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJiYmUyMGFiZjZiZDM0NmM2YjFkYzJlNzE1ZTMxMGVkM2Q1ZjMyNTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgorI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgUEFM
IHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBw
cml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
KSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIAor
ICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5n
ZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNs
aWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgor
ICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7
IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVy
RGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggNzBjZThlYTRlZWU4MDk2ZTA0YjNlZTY3ZDFmNGNmMjEyNzM1MGRh
Yy4uYjQ5YzYzMTZlNWE2YTc0MThlYjdiMTg3ZjU4YzczYWQ2N2U4OTY2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiArNDMsOSBAQAogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFj
a2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAi
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRl
ci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVR5cGUuaCIKQEAgLTEyMTcsNiArMTIyMyw1MCBAQCBXZWJMb2FkZXJTdHJhdGVneSYgV2Vi
UHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAgIHJldHVybiBtX3dlYkxvYWRlclN0
cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3M6
OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
biA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24g
PSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vz
czo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5p
dGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmll
cjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihpbml0
aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIpLCAwKSkgewor
I2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAgICAgICAgICAgLy8gR1RLKyBh
bmQgV1BFIHBvcnRzIGRvbid0IGV4aXQgb24gc2VuZCBzeW5jIG1lc3NhZ2UgZmFpbHVyZS4KKyAg
ICAgICAgICAgIC8vIEluIHRoaXMgcGFydGljdWxhciBjYXNlLCB0aGUgcGF5bWVudCBwcm9jZXNz
IGNhbiBiZSB0ZXJtaW5hdGVkIGJ5IHRoZSBVSSBwcm9jZXNzIHdoaWxlIHRoZQorICAgICAgICAg
ICAgLy8gY29ubmVjdGlvbiBpcyBiZWluZyBkb25lLCBzbyB3ZSBhbHdheXMgd2FudCB0byBleGl0
IGluc3RlYWQgb2YgY3Jhc2hpbmcuCisgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM0OC4KKyAgICAgICAgICAgIGV4aXQoMCk7Cisj
ZWxzZQorICAgICAgICAgICAgQ1JBU0goKTsKKyNlbmRpZgorICAgICAgICB9CisKKyNpZiBVU0Uo
VU5JWF9ET01BSU5fU09DS0VUUykKKyAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVh
c2VGaWxlRGVzY3JpcHRvcigpOworI2VsaWYgT1MoREFSV0lOKQorICAgICAgICBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25J
ZGVudGlmaWVyLnBvcnQoKSk7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25J
ZGVudGlmaWVyLmhhbmRsZSgpKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworI2VuZGlmCisgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxp
ZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAg
IG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIH0KKyAgICByZXR1
cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247Cit9CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2li
aWxpdHkoYm9vbCBmbGFnKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggYmRhMDAzNjdkMjQ5MzdhM2QzZjk0NTBkYTZjNGY1NDQ5MWExNWU5Yy4uMWM2ZmRhYjlkZTRi
ZmJlZmRjYjdhZTk1OTQyZTFhNzk3MmZjZmNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC05OCw2ICs5OCw5IEBAIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xh
c3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1
cHBsZW1lbnQ7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBl
bnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOwogc3RydWN0IFdlYlBhZ2VHcm91cERhdGE7CkBAIC0xNzUsNiArMTc4LDExIEBAIHB1Ymxp
YzoKIAogICAgIExpYldlYlJUQ05ldHdvcmsmIGxpYldlYlJUQ05ldHdvcmsoKTsKIAorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiopOworICAgIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAg
IHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3Mo
KTsKQEAgLTQzMSw2ICs0MzksMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbj4gbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
aW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBi
MDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29j
b2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVf
UEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BM
VUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NGU1YjM2ZTdhOWM0ZWEwY2JhOGFjYjNiMTdjZThlODcx
ODNhYmI2Li5kMGZiNmRjZWM5MTJiYzBjZmFjMDMxZDFlOWMyZTgxZWQzMDdmYWUyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTgtMTEtMDcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VX
b3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9j
ZXNzTmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKToKKwogMjAxOC0xMS0wNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5j
b20+CiAKICAgICAgICAgW0JpZ0ludF0gQWRkIHN1cHBvcnQgdG8gQmlnSW50IGludG8gVmFsdWVB
ZGQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2
MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjg4LDYgKzI4OCw3IEBAIEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5B
QkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1f
TkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElP
TlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNU
ID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLm1tCmluZGV4IDNmMWE2Mjg4NjgyMTAyYTU4OTJhMGVlZjMyYTk0NDJhMGNhZjUw
ODQuLmMzNDZhYmZkNjIwZjkzNTU1ZmQ4MDA1YzhhMWI0MGQ4YTljMDQ3YjEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0NCw2ICsxNDQsNyBAQCBURVNUKFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAgICAgLy8gRW5zdXJlIHRo
ZSBzaGFyZWQgcHJvY2VzcyBwb29sIGV4aXN0cyBzbyB0aGUgZGF0YSBzdG9yZSBvcGVyYXRpb25z
IHdlJ3JlIGFib3V0IHRvIGRvIHdvcmsgd2l0aCBpdC4KICAgICBXS1Byb2Nlc3NQb29sICpzaGFy
ZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNzUG9vbF07CiAKKyAg
ICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJ
ZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29s
IF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIAogICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtXS1dlYnNp
dGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CkBAIC0xNjgsNiArMTY5LDcgQEAgVEVTVChS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogCiAgICAg
RVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQ
YXRoOnRhcmdldFVSTC5wYXRoXSk7CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQ
cm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChz
aXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCA0Y2I4ZmE5N2E2NmM4YTdmZDg0NTllZWQwYTQ1ODQy
YjJiODFmYTgzLi5iZGFhMmM5ZmVhOTQwNzU5NDE0NjQ0MTlhYWNhMzM1ZDUzOTFjODk1IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMTA0Niw2ICsxMDQ2LDkgQEAgVEVTVChTZXJ2aWNlV29y
a2VycywgU2VydmljZVdvcmtlclByb2Nlc3NDcmVhdGlvbikKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8vIE1ha2Ugc3VyZSBw
YXltZW50IHByb2Nlc3MgaXMgbm90IGxhdW5jaGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3
LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmll
cik7CisKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBsb2FkaW5nIHRoZSBzaW1wbGUgcGFnZSBkaWQg
bm90IHN0YXJ0IHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgogICAgIEVYUEVDVF9FUSgxdSwg
d2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl93ZWJQcm9jZXNzQ291bnQp
OwogCkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHBheW1l
bnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3LmdldCgpLmNvbmZp
Z3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7CisKICAgICAv
LyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBoYXMgc2VydmljZSB3b3Jr
ZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAppbmRleCA4ZGI1NjkwYjM5NDMxMDk0YjUzNThkMGQyYWZiODc2OTlkMjA2
ZGEwLi5kNjJjNjBmNzhjYzUzMGEzNWFjNzNhZThhNDg0ZDU2MDhiMTE3ZDdmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMzMyw2ICszMzMsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5l
ciB7CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJt
aW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFBy
b2Nlc3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZENhbmNlbENsaWVu
dFJlZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkZjFhZGFmMGUwYTAyMmQ4M2JkOWQyOTc0NGRiMjI5
ZTQ3N2U1OTU0Li5lZTk0NGY5MDRiZDA2MGE0MzBlMTViNjBkZDUxYjAyODY5ZDMxMTg3IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKQEAgLTEyNTUsNiArMTI1NSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNz
YWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCks
IG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0UnVu
bmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hy
b25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgp
LT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwogc3Rh
dGljIHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1bnNp
Z25lZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGY1YjJj
MjBkMjBiNGQ5MzlhZGIxZGQwMjEwZjNkMGVlMjdmMDQ1ZDguLjAxYjRiZDYyZWUyNDBkNTBkNTE4
OTVhMDQ3YzQ2YzAwNDNhZTcyYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDYsNiArNDQ2LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
KCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVlUmVmKTsK
ICAgICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjaygpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkNTVhOWZjODFm
OTMyMmM5YTU4OWMyYTA1YzRlM2U3ZTk3NGU0MzU2Li44ZTg3YTdlMmU2ZWMzMTYyZGFkOWUxMmQ5
ZjllYjMyZWY3NDIxZTcyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtMTA2NCw2ICsxMDY0LDE1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpu
ZXR3b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9s
bGVyOjpwYXltZW50UHJvY2Vzc05hbWUoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnQiOworI2Vsc2UKKyAgICByZXR1cm4g
IlBheW1lbnQgcHJvY2VzcyBub3QgYXZhaWxhYmxlIG9uIGFueXRoaW5nIGJ1dCBpT1MiOworI2Vu
ZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRl
KGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRl
Rm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzKTsKQEAgLTE0ODks
NiArMTQ5OCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNo
KFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAogICAgIHN0YXRpY19jYXN0PFRl
c3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5uZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNz
RGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7
CisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKK30KKwogdm9pZCBUZXN0Q29udHJv
bGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLRGljdGlv
bmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnksIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAgLTE4MjIsNiArMTgzNiwxMyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKICAgICBleGl0KDEpOwogfQogCit2
b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKCkKK3sKKyAgICBwaWRf
dCBwaWQgPSBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0Lmdl
dCgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBw
YXltZW50UHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7CisgICAgZXhpdCgx
KTsKK30KKwogLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2
aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMjYyMSw2ICsy
NjQyLDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKCkKICAgICBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhwbGF0Zm9y
bUNvbnRleHQoKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKCkKK3sKKyAgICBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhwbGF0Zm9y
bUNvbnRleHQoKSk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2MjVhNWI1NDY1OTIyYzdiYWZk
OTRiN2FjYzgxMjc2NTdiOGJjOTFmLi43ZjBmNzViNGRiYWY1ZDkxY2Y0NTA2NzkxNTY1NDM1ZmMz
NWY4NDFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xODEs
NiArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB3ZWJQcm9jZXNzTmFt
ZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuZXR3b3JrUHJvY2Vzc05hbWUoKTsKICAgICBz
dGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VQcm9jZXNzTmFtZSgpOworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBwYXltZW50UHJvY2Vzc05hbWUoKTsKIAogICAgIFdvcmtRdWV1ZU1hbmFnZXImIHdv
cmtRdWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1hbmFnZXI7IH0KIApAQCAtMjUy
LDYgKzI1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3Mo
KTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0
ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNzaW9uQ3Jl
ZGVudGlhbHMoKTsKIApAQCAtMzU3LDYgKzM1OSw4IEBAIHByaXZhdGU6CiAgICAgLy8gV0tDb250
ZXh0Q2xpZW50CiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRl
eHRSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKTsK
KyAgICBzdGF0aWMgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29u
c3Qgdm9pZCopOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOwogCiAgICAgLy8g
V0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdE5hdmlnYXRp
b24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBk
ODFlNThiMzkxN2EyM2JjMzFkNWQ3NjhlYmE4MWRmMGYwZWE3MmFkLi42NWU5YzU2OTFkNWE1NmQw
ZjYyMmM1Njc1MGZhMzA0NmU1NjgwMTE1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcApAQCAtMTQ0Nyw2ICsxNDQ3LDEyIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJl
Zj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0
ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlUGF5bWVudFByb2Nlc3Mi
KSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSkgewogICAgICAgICBBU1NF
UlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmZkYTRiMTYzYjIxZWQxYzJmOTIxMjJj
NzYwMzEyNDJkMGI0YzdjOS4uZTY3NGM4YzZhN2Y0NTM2YjIzYzI4MTdhMmRmZGM3MzgyNTA2OTRh
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTA3ICBaYW1pdWwgSGFxdWUgIDx6aGFx
dWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVy
ZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMuaHRtbDoK
KwogMjAxOC0xMS0wNyAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+
CiAKICAgICAgICAgQ1NTIFBhaW50aW5nIEFQSSBzaG91bGQgcGFzcyBzaXplLCBhcmd1bWVudHMg
YW5kIGlucHV0IHByb3BlcnRpZXMgdG8gcGFpbnQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWltcG9ydFNjcmlwdHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LWlt
cG9ydFNjcmlwdHMuaHRtbAppbmRleCAwOGE5YTU5NjIzMjEwNGI4NjVlM2FiMmRmODVhOWI5NDU3
ZWM4NGU5Li42YzlkY2YzMWY5OThjNmIyOGZiY2FkOGIyNTdmNDM4OWM1ZDViNmM1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1pbXBv
cnRTY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy5odG1sCkBAIC0zNiw4ICszNiwxMCBAQCBhc3luYyBm
dW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgbGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRG
cm9tV29ya2VyKHdvcmtlcik7CiAKICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0
aCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci50ZXJtaW5hdGVQYXltZW50UHJvY2Vzcygp
OworICAgICAgICB9CiAgICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsKICAgICAgICAgd2luZG93
LmxvY2F0aW9uICs9ICI/dGVzdCMiICsgcmFuZG9tSWQ7CiAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354858</attachid>
            <date>2018-11-14 15:07:40 -0800</date>
            <delta_ts>2018-11-14 18:22:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181114150739.patch</filename>
            <type>text/plain</type>
            <size>137235</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmZiZmI1NzRmNTQyZTA0NDU3YjRmNjc3MTA1OWIyODZjNjU0MTQwLi41YzY0YjJlZTI2ODczYmFh
ZjNmZDQ0Y2M4ZGM5NjU1YTMzOWM5MTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0wNyAgQ2FpbyBMaW1hICA8dGlj
YWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gQWRkIHN1cHBvcnQgdG8gQmln
SW50IGludG8gVmFsdWVBZGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDMyMGVlMzQ4NTQ3MzY0ZjIzMTYyZGQw
ZDE1NWYyMzkyYzEzOTMyLi5lOTQ0NmI3MDVhYTJiMjZlMGJiZmMyZWQ1MzMyNDY1NzY4ZDQwYzY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0wNyAgSnVzdGluIE1pY2hh
dWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ1NTIFBhaW50aW5nIEFQ
SSBzaG91bGQgcGFzcyBzaXplLCBhcmd1bWVudHMgYW5kIGlucHV0IHByb3BlcnRpZXMgdG8gcGFp
bnQgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDNiMGZlZjZlNTY5NTVlNWUzOTVlZjhl
NjY4YjFkNDJlMGI0ODc0NmMuLmI0OTkzYmNkZDc4NDk1NjNlYjkyNDc0MmI1ZmE3N2E3NTdmMWQ3
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1p
dWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBz
dHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
CiAyMDE4LTExLTA2ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxp
bmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMGJkNGY2ZWRmYWE1NWJmMWEzOTM2
MDUyMzM4YmFkNTdiZTQ5MGMzLi45OTRkNzQzZjdkMWE4ZWE3MWYzOTI4NDVjYjg1ZGE1ZTE0ZTlm
MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NSBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVl
ICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRo
IGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlVGFy
Z2V0LnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
OiBBZGRlZC4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6UGF5
bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6flBheW1lbnRQ
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1l
bnQuaC4KKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogUGF5bWVu
dFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRi
b3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYjogQWRkZWQuCisgICAg
ICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9QYXltZW50L1Bh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaC4KKyAgICAgICAgKiBTaGFyZWQvUHJvY2Vzc0V4
ZWN1dGFibGVQYXRoLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdLQ29u
dGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzXSk6CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRl
bnRpZmllcl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5
bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojpn
ZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OlBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5Ojp+UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bik6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVh
dGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAgICogVUlQcm9jZXNz
L1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dENsaWVudDo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dFN1cHBsZW1lbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dFN1cHBsZW1lbnQ6OnBy
b2Nlc3NEaWRDbG9zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vz
c0NyYXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdy
b3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVu
c3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6c3RhcnRNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c3RvcE1lbW9yeVNhbXBsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRUZXh0Q2hlY2tlclN0YXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVsZWFzZVBhZ2VDYWNoZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpnZXRBY3RpdmVQYWdlc09yaWdpbnNG
b3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRl
Q1BVTGltaXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVD
UFVNb25pdG9yU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpw
YWdlQWN0aXZpdHlTdGF0ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVu
dGx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlcGFyZVRvU3Vz
cGVuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBh
cmVUb1N1c3BlbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjptYXJr
QWxsTGF5ZXJzVm9sYXRpbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpjYW5jZWxNYXJrQWxsTGF5ZXJzVm9sYXRpbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpzZXRBbGxMYXllclRyZWVTdGF0ZXNGcm96ZW4pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2VuZFByZXdhcm1JbmZvcm1hdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBhZ2VEaWRFbnRlcldpbmRvdyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBhZ2VXaWxsTGVhdmVXaW5kb3cp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpub25WaXNpYmxlUHJvY2Vz
c0NsZWFudXBUaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3MpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3Rz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldE1l
bW9yeUNhY2hlRGlzYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpzZXRFbmFibGVkU2VydmljZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjplbnN1cmVBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZGVzdHJveUF1dG9tYXRpb25TZXNzaW9uUHJveHkpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcmVmZXRjaEROUyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omhhc1Zpc2libGVXZWJQYWdlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bGliV2ViUlRDTmV0d29yayk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVzdGFibGlzaFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWRkTW9ja01lZGlhRGV2aWNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJNb2NrTWVkaWFEZXZpY2VzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVtb3ZlTW9ja01lZGlhRGV2
aWNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVzZXRNb2NrTWVk
aWFEZXZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoK
KwogMjAxOC0xMS0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gQ3Jhc2ggd2hlbiBydW5uaW5nIHdpdGggc2FuZGJveCBlbmFibGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMzVlMjYzMDJhNzc3YTI3YzkwODcxNDk4
NTJmMmFhOTZjNDcyZTAwMi4uZjZkZGUwNTgxYTU0YzcxZDI5M2M5NDYyODQyYThjMzljNTFlZTg2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTEx
LTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQg
cHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOgorCiAyMDE4LTExLTA2ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVu
ZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmlu
ZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAx
YTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
QEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3Vj
aCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0g
JChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVO
VF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JF
UVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8k
KFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBj
YmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFh
NjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpp
bmRleCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIw
MWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0y
ODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5B
QkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJP
Q0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNU
OwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19Q
TEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2Nh
bGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncwppbmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4
ZjFmNjc2NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2li
bGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFw
cGxpY2F0aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2Vydmlj
ZSBXb3JrZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNz
LiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMi
ID0gIiVAIFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4g
VGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50
IiA9ICIlQCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2
ZDg4YmFhZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLjM5MzNkMTJmMDBlZDM5YmIzNDk3NGVhOWFh
MTVhMDM4ODY5ZTEwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQo
V2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3Mi
CiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJ
VF9ESVJ9L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAg
ICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Q
cm9jZXNzIgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtX
RUJLSVRfRElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2Ft
ZXBhZCIKKyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEi
CkBAIC00NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIK
ICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9Vc2VyQ29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNz
YWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3Nh
Z2VzLmluCiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgor
ICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5p
bgogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcs
OCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVu
dC9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIxLDYg
KzIyOSwxMCBAQCBzZXQoTmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCiAK
K3NldChQYXltZW50UHJvY2Vzc19MSUJSQVJJRVMKKyAgICBXZWJLaXQKKykKKwogc2V0KFBsdWdp
blByb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKaW5kZXggNDA1ZDYzYmJiMDEyYTM5ZTY1
ZGE4YmE4Yjg5MDgzNThhMjU4YmQ2Yy4uZWViN2EyNmFkYTE0NjNkMmFkNWE4ZGNmZGIyMDZhNGQ2
M2NmM2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFy
Z2V0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZwpAQCAtMTExLDYgKzExMSw4IEBAIFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OW3Nk
az1tYWNvc3gqXVthcmNoPWkzODZdID0gTk87CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FUyA9
ICQoV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVNfJChXS19IQVZFX0NPUkVfUFJFRElDVElPTikp
OwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVNfWUVTID0gSEFWRV9DT1JFX1BSRURJQ1RJT047
CiAKK1dLX1BBWU1FTlRfU0VSVklDRV9QUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzOworCiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gJChXS19TVE9SQUdF
X1NFUlZJQ0VfUFJPRFVDVF9OQU1FXyQoV0tfVVNFX0xFR0FDWV9TVE9SQUdFX1NFUlZJQ0VfTkFN
RSkpOwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV8gPSAkKFdLX1NUT1JBR0VfU0VS
VklDRV9QUk9EVUNUX05BTUVfTk8pOwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9O
TyA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2
NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVk
Zjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjg4LDYgKzI4OCw3IEBAIEVOQUJMRV9OQVZJR0FU
T1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwog
RU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZP
Uk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNB
VElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFV
RVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAk
KEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZyBiL1Nv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjNhMzc0ZTBmNWQ4YWJjNWQzODQyZDliZTA2YWQ3MDNkYjE0ZjA5NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNj
b25maWcKQEAgLTAsMCArMSwzNCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisv
LyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
Ky8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworI2luY2x1ZGUgIkJhc2VYUENTZXJ2aWNlLnhjY29uZmlnIgorCitXS19QQVlNRU5U
X0VOVElUTEVNRU5UU19SRVNUUklDVEVEX05PID0gOworV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNf
UkVTVFJJQ1RFRF9ZRVMgPSBDb25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0
bGVtZW50czsKKworQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VDSF9OTyA9ICQoV0tf
UEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF8kKFdLX1VTRV9SRVNUUklDVEVEX0VOVElU
TEVNRU5UUykpOworT1RIRVJfQ09ERV9TSUdOX0ZMQUdTID0gJChXS19MSUJSQVJZX1ZBTElEQVRJ
T05fQ09ERV9TSUdOX0ZMQUdTKTsKKworUFJPRFVDVF9OQU1FID0gJChXS19QQVlNRU5UX1NFUlZJ
Q0VfUFJPRFVDVF9OQU1FKTsKK1BST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1Rf
TkFNRSk7CitJTkZPUExJU1RfRklMRSA9IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBlNDkyMTUxZTA0YjYzZDRmOGYwNmMwOTAzMTZlNTIwMWExYmI4ZTllLi4yYjBlNmZiZjFkODM4
Mzg1NDZiMTg1ZjQxOGQ2OWVhYTRhZTYyNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0zMCw2ICszMCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQiBcCiAg
ICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyIFwKKyAgICAkKFdlYktp
dDIpL1BheW1lbnRQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MgXAogICAg
ICQoV2ViS2l0MikvUGx1Z2luUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1Bs
dWdpbnMgXApAQCAtNzMsNiArNzQsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvUGF5bWVudCBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3Mv
UGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIFwKICAg
ICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTExNSw2ICsxMTcsOSBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgXAogICAgIE5ldHdv
cmtTb2NrZXRTdHJlYW0gXAogICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIFwKKyAg
ICBQYXltZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFByb2Nlc3NQcm94eSBcCisgICAgUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRyb2xsZXJQcm94eSBcCiAg
ICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MTc1NzQ0ZjYyMjMyMjYxMTk2N2Y2Y2Q5N2Y2OTU5Nzg2YWUzMTVmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKQEAg
LTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1l
bnRQcm9jZXNzJiBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+IHByb2Nlc3M7CisgICAgcmV0dXJuIHByb2Nlc3M7
Cit9CisKK1BheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2VzcygpCit7Cit9CisKK1BheW1lbnRQ
cm9jZXNzOjp+UGF5bWVudFByb2Nlc3MoKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpp
bml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAg
Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKK30KKworYm9v
bCBQYXltZW50UHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKG1lc3Nh
Z2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAg
ICAgIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIENoaWxkUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29y
a2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4p
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFhZTdjYTRhYTlmZmUz
N2NmYTBiODZiZDE3OThjODVhMDM1M2UwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
aW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3Nz
VGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3QgUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDog
cHVibGljIENoaWxkUHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFBy
b2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz47CitwdWJs
aWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1lbnQ7
CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQ
cm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworcHJpdmF0
ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdm9p
ZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICBi
b29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAgIHZv
aWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllNzZjNDIxNzA1NjA4ZTY1YjcxYTFkOTBkYzZj
NmU1NGQwMzUzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKK21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKKyAgICAK
K30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMWZmZDcxMTI3NmRmZGU5NmE1ZDMyYzQ5ZjhlMDE3OWRiZTZj
NmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UmVmPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworfQorCitQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRp
ZmllciwgKnRoaXMpKQoreworICAgIC8vIEZJWE1FOgorICAgIC8vIFVzZSBtX2Nvbm5lY3Rpb24t
PnNldE9ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlXaGVu
UHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZSh0cnVlKQorICAgIC8vIHRvIGZvcmNlIHN5bmNocm9ub3Vz
IG1lc3NhZ2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXN5bmNocm9ub3VzIG1lc3NhZ2VzIGluIHRoZSBX
ZWJQcm9jZXNzLgorICAgIC8vIE90aGVyd2lzZSwgdGhlIFdlYlByb2Nlc3Mgd291bGQgcHJvY2Vz
cyBpbmNvbWluZyBzeW5jaHJvbm91cyBJUEMgd2hpbGUgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91
cyBJUEMKKyAgICAvLyByZXBseSBmcm9tIHRoZSBwYXltZW50IHByb2Nlc3MsIHdoaWNoIHdvdWxk
IGJlIHVuc2FmZS4gSW52ZXN0aWdhdGUgaWYgd2UgbmVlZCB0byBjYWxsIHRoaXMuCisgICAgbV9j
b25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIG1fY29ubmVjdGlvbi0+aW52
YWxpZGF0ZSgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAg
UGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVw
bHlFbmNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworfQorCit2b2lkIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKKyAgICBVTlVTRURf
UEFSQU0oY29ubmVjdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2VSZWNlaXZlck5hbWUp
OworICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlTmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmMwMWZhZjg1YTVlNTUxY2FkYmU2NzhlOTMxYjhjNGJk
YmYyZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8
cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBS
ZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9j
b25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9u
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIK
KyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUg
eyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NDMyMjU5NjYyNjkzNTkzOTE2ZTNk
OTRjYTk1NGZkNTA5NzlhNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tIGIvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmE2YWFlYjU2YjI0YzBhMzZjZmU2NzE1MjhkOWZjZWZhZWQ2ODliNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9T
Lm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCAi
UGF5bWVudFByb2Nlc3MuaCIKKworI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1l
dGVycy5oIgorCisjZGVmaW5lIEVOQUJMRV9NQU5VQUxfREFUQUJBU0VfU0FOREJPWElORyAwCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJv
Y2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQoreworI2lmIEVOQUJMRV9NQU5VQUxfREFUQUJB
U0VfU0FOREJPWElORworICAgIC8vIE5lZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQsIGJlY2F1
c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgorICAgIE5TQnVuZGxlICp3ZWJr
aXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAi
V0tXZWJWaWV3IildOworICAgIHNhbmRib3hQYXJhbWV0ZXJzLnNldE92ZXJyaWRlU2FuZGJveFBy
b2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAImNvbS5hcHBsZS5XZWJL
aXQuUGF5bWVudHMiIG9mVHlwZTpAInNiIl0pOworICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6
ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMpOworI2VuZGlmCit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYg
Ly8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNi
IGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUu
V2ViS2l0LlBheW1lbnRzLnNiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5OTJjNTdmOTUzYTNlOTlhNjBjMzQ1MTg4
MWY0NDg0YTNkMzMzY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKQEAgLTAs
MCArMSwzMiBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKzsgYXJlIG1ldDoKKzsg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCis7ICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCis7IFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKzsgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCis7IENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Cis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiso
dmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQor
KGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBvcnQgImNvbW1v
bi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikp
CisKKyhkZW55IGxzb3BlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5kZXggYTcy
YmM5MjlkYmQ3Yzc0YzIyNjY5YjgyMzE3YTYxZmZhYmRmMzc2OS4uNWQwY2M2ZTJmNTRkMzY4MzJk
ZDI1Zjg3YzA4Mjc3MDkzYmRjM2E1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgK
QEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAgICAgICBXZWJDb250ZW50LAogICAgICAgICBO
ZXR3b3JrLAogICAgICAgICBQbHVnaW4KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
ICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB9Owog
CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
YXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NzM3MDk3MzQwM2Q0NjM0MDhlZDYzYmJjZWY0NTYzYmQwMDk5ODFmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQoreworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOworfQorCitib29sIFBheW1lbnRQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQoreworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJhYzg2M2MwMGE4YTQwNzAxMzUxMmNhMjMxYzA1NTgzNTE3YjllZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRl
IDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
eworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CisKKyAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpE
ZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKworICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDJjZTcxNmU0YzcyZTU4MmFiZTMwZjQ4NzlkMmM2
ZWI5ZTQ5OWE5N2IuLjYyYjU0NzRlZmFhNzI0ZWFiNTI4YjRmNjcwMTc5MWYwY2U5YWFkZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCkBAIC0zMiw1
ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZXZWJQ
cm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKTsKIFN0cmlu
ZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQYXltZW50UHJvY2VzcygpOworI2VuZGlm
IC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBlZGJiNWUx
ZjY3OTRiNmY0ODEzZTNhY2E2Y2U1MDNlYmZjMzIwZTE5Li41Y2ZhOTc4N2I5MDFmZjcxMmFlMmE3
ZmQ3ODA0ZDBmMTU3YWY2MzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTc5LDYgKzc5LDkgQEAgTmV0d29y
a1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwCiAKIE5ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcAogCitQYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5jcHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcAorCiAvLyBUT0RPOiBXZSBzaG91bGQgdW5pZnkgdGhlc2UgZmlsZXMgb25jZSBHVEsn
cyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogUGxhdGZvcm0vTG9nZ2luZy5jcHAgQG5vLXVu
aWZ5CiBQbGF0Zm9ybS9Nb2R1bGUuY3BwIEBuby11bmlmeQpAQCAtMjA3LDYgKzIxMCw4IEBAIFNo
YXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5jcHAKIAogU2hhcmVkL0dhbWVw
YWQvR2FtZXBhZERhdGEuY3BwCiAKK1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorCiAvLyBUT0RPOiBUaGVzZSBmaWxlcyBzaG91bGQgYmUgdW5pZmll
ZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBTaGFyZWQvUGx1Z2lucy9O
UElkZW50aWZpZXJEYXRhLmNwcCBAbm8tdW5pZnkKIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyLmNwcCBAbm8tdW5pZnkKQEAgLTM3Niw2ICszODEsOCBAQCBVSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKIAorVUlQcm9jZXNzL1BheW1lbnRzL1BheW1l
bnRQcm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcAogVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC00NjcsNiArNDc0LDggQEAg
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwCiBXZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCiAKK1dlYlBy
b2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisKIC8vIFRP
RE86IFRoZXNlIGZpbGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2Vz
czIgaXMgcmVtb3ZlZC4KIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIEBuby11bmlmeQog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAppbmRleCA1OTRiZjkwZGQ1ZjA4YmZkYzQzNGI5ZjVkYzU5ZTQ4
YzNhYTJkNzFlLi5hMmQ0MWIxMGQ5NzUzYThkYWNhZTZhYzAwM2EzNDMxNDY4NjU4MWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xODMsNiArMTgzLDggQEAgU2hhcmVkL21hYy9XZWJHZXN0
dXJlRXZlbnQuY3BwCiBTaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHREYXRhLm1tCiBTaGFyZWQv
bWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCiAKK1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbQorCiBTaGFyZWQvUGx1Z2lucy9tYWMvUGx1Z2luU2FuZGJveFByb2ZpbGUu
bW0KIAogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFj
Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCAw
NDAxZTcyYjRjNmY1ZTRlNTlkZDhjYWI0MGI2NjQzNWQ0ZjU4ZmI5Li43YmYzZjVhMTJjOTdlY2E3
OWRiNzQwZTY5YzQ1ZGZjOWVhNGFiYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSwxMSArNjIxLDI3IEBAIHZvaWQgV0tDb250ZXh0VGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAgICAgdG9J
bXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiB9CiAKK3Zv
aWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHQp
Cit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0b0ltcGwoY29udGV4dCktPnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lk
ZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbChj
b250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKK1Byb2Nlc3NJRCBX
S0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gdG9JbXBsKGNv
bnRleHRSZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJu
IDA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogdm9pZCBXS0NvbnRl
eHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVm
IGRvbWFpblJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJheVJlZiBtaW1lVHlwZXNSZWYs
IFdLQXJyYXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZh
dGUuaAppbmRleCA0NmQzN2UxZThhMTU4OTU4MGEzNTUzOGVlNWY2ZjliYzJkODBlMjJjLi4xZjFl
ODczOWQzMmVkNzZkNTE3MTFjNmJkN2JlYTA2OTQxM2Y5NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC05Miw2ICs5Miw4IEBA
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRS
ZWYsIGJvb2wpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKy8vIE5PVEU6IFRoaXMgaXMgb25seSBh
dmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAogV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRU
ZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29udGV4dFJl
ZiwgYm9vbCk7CkBAIC0xMTIsNiArMTE0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0
Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYpOwogV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1VSTFJl
ZiBzZXJ2ZXJVUkwpOwogCiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9SVCBXS1By
b2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4o
V0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIGRvbWFpbiwgV0tTdHJpbmdSZWYgbmFt
ZSwgV0tBcnJheVJlZiBtaW1lVHlwZXMsIFdLQXJyYXlSZWYgZXh0ZW5zaW9ucyk7CiBXS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRDbGVhclN1cHBvcnRlZFBsdWdpbnMoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQppbmRleCBjZjI4MTFlOGIzYWNhYWIwZDA4MWUwODgyY2JmZDgzYzdkNWRkNWNlLi4w
ZjMyMTI4YTJmM2RhODU1NmY0NDRkNzQ5Y2I1MzkyNzg1MDgxNmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDI0LDYg
KzQyNCwxMyBAQCAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMKICAgICBfcHJvY2Vzc1Bv
b2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogfQogCistICh2b2lkKV90ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcworeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgX3Byb2Nlc3NQ
b29sLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vz
cwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQ0
NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllcgogICAgIHJl
dHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCistIChw
aWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIo
KTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKICAg
ICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRl
LmgKaW5kZXggNGQzYTE5MTIwYWJkNDllZWUwNDkyNzk0YTc3ZjRhZmIwNmNkZTkwYy4uMGI5OTll
ODY0YTkxOWFjNThjOTAxOWM4NDYzZTYwN2M1ZjM3ZWNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAg
LTg0LDEyICs4NCwxNiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0
YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25s
eS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBh
cmUgcnVubmluZy4KKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5U
X1BST0NFU1MgaXMgRU5BQkxFRAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3M7CiAt
ICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIu
MCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxh
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKIC8vIFRlc3Qg
b25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWls
YWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistIChwaWRfdClfcGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjMpKTsKIAogLy8gVGVzdCBv
bmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA4N2IwYmJlYzgxMzAzYTc1Yzg1ZTJhOGNiYzMw
ZTdhYzIyZDgzZGNlLi42ZDY2ZWMzMWFmZjZlZGMxYTQxZjY4NDgzMjUyM2NkODdlNmJkMmE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgICAgIFBsdWdpbjY0LAogI2VuZGlm
CiAgICAgICAgIE5ldHdvcmssCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAg
UGF5bWVudCwKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIH07CiAKICAg
ICBzdHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCAzYjQ2MTYz
NGU4NTE3MzlkNjk1ZDA1NTViZTU0ZDY5YjQ4NDYwNjQ4Li41NzJjZTQ5MGUwY2E1MTVkYTIwYTdm
N2EyYzg4Nzk2OTEwNjNjNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTYyLDYgKzYyLDEw
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25zdCBQcm9jZXNzTGF1bmNoZXI6
OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlBy
b2Nlc3NUeXBlOjpQbHVnaW42NDoKICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBs
dWdpbi42NCI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIGNhc2Ug
UHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDoKKyAgICAgICAgcmV0dXJuICJj
b20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5
bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTJmMWFkNmY5OWJk
YjQ3YTc1NDk4ZGE2ZjA5NzdmMTNjOTA2NGNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKQEAgLTAsMCAr
MSwxMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgor
CisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGF5bWVudFByb2Nlc3NDYWxs
YmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJhY2tJRDsKKworICAgIHJldHVy
biArK2NhbGxiYWNrSUQ7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6OlBheW1lbnRQcm9jZXNz
UHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQorICAgIDogQ2hpbGRQcm9jZXNzUHJv
eHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkpCisgICAgLCBt
X3Byb2Nlc3NQb29sKHByb2Nlc3NQb29sKQorICAgICwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJl
cXVlc3RzKDApCit7CisgICAgY29ubmVjdCgpOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5Ojp+
UGF5bWVudFByb2Nlc3NQcm94eSgpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6
dGVybWluYXRlRm9yVGVzdGluZygpCit7CisgICAgdGVybWluYXRlKCk7Cit9CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5j
aE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCit7CisgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlw
ZSA9IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisgICAgQ2hpbGRQcm9j
ZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7Cit9CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCit7CisgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0
aW9uKCkgPT0gJmNvbm5lY3Rpb24pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQ
cm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9wZW5kaW5nQ29ubmVj
dGlvblJlcGxpZXMuYXBwZW5kKFdURk1vdmUocmVwbHkpKTsKKworICAgIGlmIChzdGF0ZSgpID09
IFN0YXRlOjpMYXVuY2hpbmcpIHsKKyAgICAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVl
c3RzKys7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBib29sIGlzU2VydmljZVdvcmtl
clByb2Nlc3MgPSBmYWxzZTsKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW47
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc2VjdXJpdHlPcmlnaW4p
LCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpD
b25uZWN0aW9uJikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFByb2Nlc3NQb29sID0gbWFrZVJlZiht
X3Byb2Nlc3NQb29sKTsKKworICAgIC8vIFRoZSBwYXltZW50IHByb2Nlc3MgbXVzdCBoYXZlIGNy
YXNoZWQgb3IgZXhpdGVkLCBzbyBzZW5kIGFueSBwZW5kaW5nIHN5bmMgcmVwbGllcyB3ZSBtaWdo
dCBoYXZlLgorICAgIHdoaWxlICghbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuaXNFbXB0eSgp
KSB7CisgICAgICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy50YWtl
Rmlyc3QoKTsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9CisgICAgLy8gVGVsbCBQ
cm9jZXNzUG9vbCB0byBmb3JnZXQgYWJvdXQgdGhpcyBwYXltZW50IHByb2Nlc3MuIFRoaXMgbWF5
IGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgbV9wcm9jZXNzUG9vbC5wYXltZW50UHJvY2Vz
c0NyYXNoZWQodGhpcyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQorewor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbklkZW50aWZpZXIp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIENoaWxkUHJv
Y2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlm
aWVyKTsKKworICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25u
ZWN0aW9uSWRlbnRpZmllcikpIHsKKyAgICAgICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVw
IGhlcmUuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOyArK2kpCisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbihmYWxzZSwgeyB9KSwgMCk7CisgICAgCisgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJl
cXVlc3RzID0gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
eW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
eW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTNmNTJiYTc2MTJkYWEz
YzIzY2IwMTQ1ZjE2MTI1MDM4NTZkMjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oCkBAIC0wLDAgKzEsODUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJQcm9jZXNzTGF1
bmNoZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBQQUwg
eworY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1
cml0eU9yaWdpbjsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUG9vbDsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsK
K2VudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOworc3RydWN0IFdlYnNpdGVEYXRhOworCitjbGFz
cyBQYXltZW50UHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIENoaWxkUHJvY2Vzc1Byb3h5IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29s
Jik7CisgICAgflBheW1lbnRQcm9jZXNzUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGdldFBheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKwor
ICAgIHZvaWQgdGVybWluYXRlRm9yVGVzdGluZygpOworCitwcml2YXRlOgorICAgIC8vIENoaWxk
UHJvY2Vzc1Byb3h5CisgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6
TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OworCisgICAgLy8gTWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisKKyAgICAvLyBQ
cm9jZXNzTGF1bmNoZXI6OkNsaWVudAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nl
c3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CisKKyAg
ICBXZWJQcm9jZXNzUG9vbCYgbV9wcm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVkIG1fbnVtUGVu
ZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5kaW5n
Q29ubmVjdGlvblJlcGxpZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTBlZmZiYjU4MjljYTA2NmU1ZWIzNGMxYzdlNDk2ZTdhM2YzODZlOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21l
c3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgeworICAgIERpZENy
ZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0
aW9uSWRlbnRpZmllcikKKworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGZhNDU3
NjJlY2ViYTAxM2E2YWNhNGY5NjRkYTg1NjYzOTc0MWQ1NzUuLmJlYzc5YjU0Y2JmNmM2ZWM1ZWZl
ZmY0YTk3NTcwZjY5OWI1NTNmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwCkBAIC00Niw0ICs0NiwxMSBAQCB2b2lkIFdlYkNvbnRleHRDbGllbnQ6
Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogICAg
IG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K3ZvaWQgV2ViQ29udGV4dENsaWVudDo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNz
UG9vbCogcHJvY2Vzc1Bvb2wpCit7CisgICAgCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJDb250ZXh0Q2xpZW50LmgKaW5kZXggODBjMzExMjJjMDc3NmQ0ZWU4ZDc3OGQ1NjY4MjEw
MTUyMjE2MzdkNi4uNTliM2E0MDc5MTA4ZjIzOGYxZDZmOGFiZjFhYjllZGNjODQ1MzkxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaApAQCAtNDUsNiArNDUs
MTAgQEAgY2xhc3MgV2ViQ29udGV4dENsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbnRl
eHRDbGllbnRCYXNlPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXNDaGFuZ2VkKFdlYlByb2Nlc3NQb29sKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0Rp
ZENyYXNoKFdlYlByb2Nlc3NQb29sKik7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxl
bWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApp
bmRleCBlZDU1YjQwM2RiMjlmOTQwMDQzOGJhMzJhNjBjNzU4Mjc0OTM0ZmE2Li4yYzZhY2JiMDVj
YjAyNmFjZGE3NWMwNjdkMWYwZDlkNDU5YTEyN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKQEAgLTI5LDYgKzI5LDEwIEBACiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlBy
b2Nlc3NQcm94eTsKIApAQCAtNTQsNiArNTgsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBwcm9jZXNzRGlkQ2xvc2UoTmV0d29ya1Byb2Nlc3NQcm94eSopCiAgICAgewogICAgIH0KKyAg
ICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNz
RGlkQ2xvc2UoUGF5bWVudFByb2Nlc3NQcm94eSopCisgICAgeworICAgIH0KKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29s
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzUG9vbDsgfQogICAgIHZvaWQgY2xlYXJQcm9jZXNz
UG9vbCgpIHsgbV9wcm9jZXNzUG9vbCA9IG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBlNGE4NzcwNDc1NzhjNDhmNDBkNzFjNjkyN2M5
NjVkYjk2MmI3OTQwLi5lZTU5NjJlMTcyYjdiOGJmZmM2ZTUyZTkwNTA4NGI1MGRjZmU5YzFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01NCw2ICs1
NCwxMCBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNp
bmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgpAQCAt
NDQyLDYgKzQ0Niw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRNZW1vcnlQcmVzc3VyZUV2
ZW50KGJvb2wgaXNDcml0aWNhbCkKIHsKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6
OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkp
OwogICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRp
ZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpDaGlsZFBy
b2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogICAgIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZW5kTWVtb3J5UHJl
c3N1cmVFdmVudChpc0NyaXRpY2FsKTsKICNlbmRpZgpAQCAtNjA3LDYgKzYxNCwzNiBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1By
b3h5JiB3ZWJQcm9jZXNzUHJveAogICAgIG1fbmV0d29ya1Byb2Nlc3MtPmdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKIH0KIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVQYXlt
ZW50UHJvY2VzcygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICBtX3Bh
eW1lbnRQcm9jZXNzID0gc3RkOjptYWtlX3VuaXF1ZTxQYXltZW50UHJvY2Vzc1Byb3h5PigqdGhp
cyk7Cit9CisgICAgCit2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIFBBTDo6U2Vzc2lvbklEIGlu
aXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgZW5zdXJlUGF5bWVu
dFByb2Nlc3MoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisKK3ZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXlt
ZW50UHJvY2Vzc1Byb3h5KQoreworICAgIEFTU0VSVChtX3BheW1lbnRQcm9jZXNzKTsKKyAgICBB
U1NFUlQocGF5bWVudFByb2Nlc3NQcm94eSA9PSBtX3BheW1lbnRQcm9jZXNzLmdldCgpKTsKKwor
ICAgIGZvciAoYXV0byYgc3VwcGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCisgICAg
ICAgIHN1cHBsZW1lbnQtPnByb2Nlc3NEaWRDbG9zZShwYXltZW50UHJvY2Vzc1Byb3h5KTsKKwor
ICAgIG1fY2xpZW50LnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2godGhpcyk7CisKKyAgICBpZiAobV9h
dXRvbWF0aW9uU2Vzc2lvbikKKyAgICAgICAgbV9hdXRvbWF0aW9uU2Vzc2lvbi0+dGVybWluYXRl
KCk7CisKKyAgICBtX3BheW1lbnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmIHByb3h5LCBTZWN1cml0eU9yaWdpbkRhdGEmJiBz
ZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbklEKQog
ewpAQCAtNjgzLDYgKzcyMCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlCiAgICAgICAgIHNl
bmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWRkV2Vic2l0ZURhdGFTdG9y
ZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0
ZXJzKCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5yZW1vdmVT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3Nh
Z2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQoKSkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJv
eVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwogICAg
IH0KIH0KQEAgLTEzMzYsNiArMTM3NiwxNSBAQCBWZWN0b3I8U3RyaW5nPiBXZWJQcm9jZXNzUG9v
bDo6YWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9jZXNzSQogICAg
IH0KICAgICByZXR1cm4geyB9OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQcm9j
ZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpCit7CisgICAg
aWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBt
X3BheW1lbnRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOworfQorI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFsd2F5c1VzZXND
b21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7CkBAIC0xNjA3
LDYgKzE2NTYsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFs
cygpCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCks
IDApOwogfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nl
c3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKQoreworICAgIGlmICgh
bV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vz
cy0+dGVybWluYXRlRm9yVGVzdGluZygpOworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRy
OworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGQzYThkOGU1YjBhZmRmNmFlNGU1MzA2ZjQ5M2E4Yjlj
YjUwYzI1ZWQuLjQyYTcwYWE4MDc1YmU1ZjllY2VhMTlkOWI4ZTkyODJiYTMwYWY1NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNDAsNiArNDAsOSBAQAog
I2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc1JlcXVlc3QuaCIKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHkuaCIKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENv
bm5lY3Rpb25DbGllbnQuaCIKQEAgLTE3Myw2ICsxNzYsMTIgQEAgcHVibGljOgogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHZvaWQgc2VuZFN5bmNUb05ldHdvcmtpbmdQcm9j
ZXNzKFQmJiBtZXNzYWdlLCBVJiYgcmVwbHkpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZv
aWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNz
YWdlKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1l
c3NhZ2UgdG8gV2ViUHJvY2VzcyBvciBQYXltZW50UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9y
IGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNl
bmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVz
c2FnZSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZvaWQgcHJv
Y2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkqKTsKIAogICAgIC8vIERpc2Nv
bm5lY3QgdGhlIHByb2Nlc3MgZnJvbSB0aGUgY29udGV4dC4KQEAgLTIxNyw2ICsyMjYsOSBAQCBw
dWJsaWM6CiAgICAgUHJvY2Vzc0lEIG5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogICAgIFZl
Y3RvcjxTdHJpbmc+IGFjdGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3RpbmcoUHJv
Y2Vzc0lEKTsKICAgICBib29sIG5ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5n
KGNvbnN0IFN0cmluZyYpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUHJvY2Vz
c0lEIHBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAKICAgICBXZWJQYWdlR3JvdXAmIGRlZmF1bHRQYWdlR3JvdXAoKSB7IHJldHVy
biBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCk7IH0KIApAQCAtMjc2LDYgKzI4OCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wp
OwogCiAgICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygp
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9pZCB0ZXJtaW5hdGVO
ZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3Nl
cygpOwogICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxh
eSgpOwpAQCAtMzQyLDYgKzM1NywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBlbnN1cmVQYXltZW50UHJvY2Vzcygp
OworICAgIFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzKCkgeyByZXR1cm4gbV9w
YXltZW50UHJvY2Vzcy5nZXQoKTsgfQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9j
ZXNzUHJveHkqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsKICAgICBTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJ
RCh1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwpAQCAtNjQwLDYgKzY2MSw5IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9kaWROZXR3b3JrUHJvY2Vzc0NyYXNoIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50UHJvY2Vzc1By
b3h5PiBtX3BheW1lbnRQcm9jZXNzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPj4gbV9k
aWN0aW9uYXJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0
aWNzUmVxdWVzdD4+IG1fc3RhdGlzdGljc1JlcXVlc3RzOwpAQCAtNzQxLDYgKzc2NSwyMiBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZO
ZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZv
cndhcmQ8VD4obWVzc2FnZSksIDApOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50
UHJvY2VzcyhUJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAobV9wYXltZW50UHJvY2VzcyAmJiBtX3Bh
eW1lbnRQcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNz
LT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNo
aW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3Mo
KTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwg
MCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25zdCBU
JiBtZXNzYWdlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKaW5kZXggMTk5YzVhMDE2ZGI1ZjNiZjFlZjdkNDVmNTIxYmNlN2NlNDZhNGE1NC4uZTQxNmFh
MDBjMDE4NzdlMzQ3NDY0ZmZhOTNmNzQ3MDNjNDJhZGQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02MjMsNiArNjIzLDEyIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0CiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
K3sKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMs
IGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUocmVwbHkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogYm9vbCBXZWJQcm9jZXNz
UHJveHk6OnBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMWJiODgzY2YyZjIzYTcwNjRhYmQ0Y2VmN2U1
OWI3NmNkZWVkODJmMy4uNGY0NDBkN2ZmMTcyMmU0NmEzYjQ2NjlhYmU0OGY1ODU2ZTI4YzYzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI3Niw2ICsy
NzYsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxT
ZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAgICAgYm9vbCBwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0OwogICAgIGJvb2wg
c2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNWE3
ZjVkM2Q0NjlmMjMyMGNiYzI4NzBmYjljMWQ4MWZlYjZlMjFlZS4uZDQ0MzU0ZjMzYmU2YzAyNGI2
Zjc0YTIwYWNhZTU5MGRhZTk1MmNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsOSBAQCBtZXNzYWdl
cyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNo
bWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6
YXRpb24pIERlbGF5ZWQKICNlbmRpZgogICAgIEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
IC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgR2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6
U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkhhbmRsZSkgRGVsYXllZAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAg
UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWEyNTViODk1NjJkZTU4NDRiYmYzMjIxY2M0YjdlODIy
MmY5YzY0OC4uYzUwM2ZmZDZmNWJlZmJkZmUwYTBmMGM2YjM3MzRjODU5MjY4ZTQyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCkBAIC0xMzUsNiArMTM5LDkg
QEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogICAgICAgICBBU1NFUlQo
bm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAg
ICBub25EZWZhdWx0RGF0YVN0b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZv
ciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkp
IHsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICAgICAgcHJvY2Vzc1Bvb2wt
PnNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNl
c3Npb24obV9zZXNzaW9uSUQpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
ICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdv
cmtQcm9jZXNzKCkpCiAgICAgICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnJlbW92ZVNlc3Np
b24obV9zZXNzaW9uSUQpOwogICAgICAgICB9CkBAIC0xNjI2LDYgKzE2MzMsMTkgQEAgdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjpjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3Nl
cyhDb21wbGV0aW9uSGFuZGwKICAgICBjYWxsYmFjaygpOwogfQogCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYnNpdGVEYXRh
U3RvcmU6OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpCit7CisgICAgcmVzb2x2ZURpcmVjdG9y
aWVzSWZOZWNlc3NhcnkoKTsKKworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
IHBhcmFtZXRlcnM7CisKKyAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vzc2lvbklEOwor
CisgICAgcmV0dXJuIHBhcmFtZXRlcnM7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKwogVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gV2Vic2l0ZURhdGFTdG9yZTo6cGVuZGlu
Z0Nvb2tpZXMoKSBjb25zdAogewogICAgIHJldHVybiBjb3B5VG9WZWN0b3IobV9wZW5kaW5nQ29v
a2llcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggYmQ1NzkxM2QzOTk0NzQ1MWQwZTk5YTBhZDVmMThiOTgz
YWUxMDMxZS4uNWVhODBlYjlhZjUxY2RhZWQwYzZlYjUxODMzOGQxYzBlOTk4NTI0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtNjIsNiArNjIsOSBAQCBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdl
YnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9u
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIHN0cnVj
dCBXZWJzaXRlRGF0YVJlY29yZDsKIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsK
IApAQCAtMTY5LDYgKzE3Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nl
c3NQb29sKFdlYlByb2Nlc3NQb29sJikgY29uc3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycyBwYXJhbWV0ZXJzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMo
KTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4gcGVuZGluZ0Nvb2tpZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdD
b29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNTZkMmMyMDRhNmIzOGQ2OGIyODg3Mjk5
ZTAwNzZkOGU5MTM3Nzk0Li44ZjkwMDY2MzRiYTllMTkwYzc3NTQ2NTlkYTlkY2I0ZDNkZmZjMWFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTg0NCw2ICs4NDQsNyBAQAogCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENv
b2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kuaCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250
ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250
ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKKwkJMzkxMzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUu
V2ViS2l0LlBheW1lbnRzLnNiICovOyB9OwogCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNG
NDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2
MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIu
aCAqLzsgfTsKQEAgLTkwMiw2ICs5MDMsMTAgQEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1
IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29u
UGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5
OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1
MTEwQUUwRDEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3
QSAvKiBXS0ljb25EYXRhYmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZXMuaCAqLzsgfTsKKwkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3MDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUw
MEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8q
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkw
MEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVt
U2hpbUxpYnJhcnkuaCAqLzsgfTsKIAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0
ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0g
Ki87IH07CkBAIC05NTMsNiArOTU4LDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8q
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1
MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZD
MDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMy
OTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTdE
RDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAwODE2
NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAw
Rjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1l
bnUuaCAqLzsgfTsKIAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNw
YWNlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNGMTEx
MkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMgLyog
V0tDcmVkZW50aWFsVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtOTgwLDYgKzk4Niw4IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhF
OSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3
REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAw
RTUzQkU5IC8qIElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5o
ICovOyB9OworCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkEx
ODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLzsgfTsKKwkJNTFFMzUyMDAx
ODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJ
CTUxRTZDMTY0MUYyOTM1REQwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lz
dGVudFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVy
c2lzdGVudFN0b3JhZ2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdL
QnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFGMDYwREUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAq
LzsgfTsKQEAgLTE1NTIsNiArMTU2MCw3IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsK
IAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdC
OURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1Jh
bmdlLmggKi87IH07CisJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vz
c0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJ
RTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFC
NUUyMDBDNzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRB
MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUw
MTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07
CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJC
MjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi87IH07CkBAIC0yOTU4LDYgKzI5Njcs
MTEgQEAKIAkJM0Y0MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJM0Y0MThFRjgxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20u
YXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBs
ZS5XZWJLaXQuUGF5bWVudHMuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2
MDJCMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDJDMjE5NTE0QkQwMDU2NDky
QSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzOTJFOTQyQjIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgy
IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvckNob29zZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCRjE1
ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTMwODAsNiArMzA5NCw3IEBACiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9j
a2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2Nr
aW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYx
Mzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5j
bHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJD
b250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDRGNUExMUYxOUQ3
Q0YwMDRDRjgyMSAvKiBDb29raWVTdG9yYWdlVXRpbHNDRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MTFDNzNEMjJCMDA3OTkzQ0IgLyogV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwNTIzNzIxQzczRDM3QjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMzEwMywxMSAr
MzExOCwxNSBAQAogCQk1MTEwQUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tJY29uRGF0YWJhc2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEwQUUwQjEzM0MxNkNCMDA3Mjcx
N0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tJY29uRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExOEU5QTIx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEzMUYy
OTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3Jh
Z2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0
b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlG
NSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0
b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE3MUYy
OTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTEx
OEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNzFGMjk1OTYz
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdEM0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4
QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9X
ZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMxMjUsNiArMzE0NCw3IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAv
KiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkz
NUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVu
dUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTJGNTg4RTEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg5MDEy
QTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTk1LDYgKzMyMTUs
OCBAQAogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUx
MTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTIxNjNB
NDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUx
N0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyog
UGF5bWVudFByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXltZW50UHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODNC
MzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IFNoaW0ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxODcxQjU5MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250
ZXh0TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVu
dS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzIxNCw2ICszMjM2LDcgQEAKIAkJ
NTFBNTU2MDAxMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3RTFEMUM0Q0I5MDA0QkE5QUYgLyog
V2ViSURCUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YklEQlJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdGMUQx
QzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViSURCUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
QTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7
IHBhdGggPSBQYXltZW50U2VydmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFBNzI4REMxQjFCQUQyRDAwMTAyRUVFIC8qIFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlv
blByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3
RjJGMjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdG
MkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzI3Myw2ICszMjk2LDExIEBACiAJCTUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MUUzNTFD
ODE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElEQlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJv
Y2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
UHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nl
c3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
RTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1l
cGFkUHJvdmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxRTZDMTVGMUYyOTM1NTEwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVy
c2lzdGVudFN0b3JhZ2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHBhdGggPSBpb3MvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BlcnNpc3RlbnRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQZXJzaXN0ZW50U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQw
MSw2ICs0NDI5LDcgQEAKIAkJRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRp
dG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVF
NTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFn
ZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRkVGMzlD
MTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0Nh
Y2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hl
RW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAw
MzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5u
ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1NzMsNiArNDYwMiw3IEBACiAJ
CQkJMUExRDIxMTYxOTFEOTk1QzAwMDE2MTlGIC8qIHBvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFk
ZXJzLnNoICovLAogCQkJCUJDMkU2RTc0MTE0MTk2RjAwMEE2M0IxRSAvKiBQbGF0Zm9ybSAqLywK
IAkJCQkxQUFEREY0QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLAorCQkJCTUxRjdEQzBB
MTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLywKIAkJCQlCQzAzMkRDMzEwRjQz
ODI2MDA1OEMxNUEgLyogVUlQcm9jZXNzICovLAogCQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1
QSAvKiBXZWJQcm9jZXNzICovLAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3
b3JrUHJvY2VzcyAqLywKQEAgLTQ3NzgsNiArNDgwOCw3IEBACiAJCQkJNDFEMEZDN0QyMEU0M0E1
MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAogCQkJCTVD
N0FDRkQxMjE4REQ4QkQwMDRDQkI1OSAvKiBOZXR3b3JrLU9TWC5lbnRpdGxlbWVudHMgKi8sCiAJ
CQkJQkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlLnhjY29uZmlnICov
LAorCQkJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZp
ZyAqLywKIAkJCQlBMUVERDJEQjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0u
eGNjb25maWcgKi8sCiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZp
Y2UuMzIueGNjb25maWcgKi8sCiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdp
blNlcnZpY2UuNjQueGNjb25maWcgKi8sCkBAIC00OTM1LDYgKzQ5NjYsNyBAQAogCQkJCTUxNUJF
MUFFMUQ1OTAwMzQwMEREN0M2OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEw
MEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAq
LywKKwkJCQkzOTEzNjAyQTIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudCAqLywKIAkJCQkxQUFF
MDU4QzEyNzlEQ0Q0MDA4NTI0MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRG
MDBCQjI1RUQgLyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNG
QjBFNiAvKiBXZWJzaXRlRGF0YSAqLywKQEAgLTYyMTEsNiArNjI0MywyNCBAQAogCQkJcGF0aCA9
IFJlc291cmNlcy9tYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEz
NjAyQTIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzkxMzYwMkIyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKKwkJCQkzOTEzNjAyQzIxOTUxNEJE
MDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKKwkJCSk7
CisJCQlwYXRoID0gUGF5bWVudDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CTM5MkU5NDJBMjE5QTJFODUwMDUwRjk4MiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8q
IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOTJFOTQyQjIxOUEz
OTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCSk7
CisJCQlwYXRoID0gUGF5bWVudHM7CisJCQlzb3VyY2VUcmVlID0gIjx1bmtub3duPiI7CisJCX07
CiAJCTQxMzA3NTk3MURFODRFRDcwMDM5RUM2OSAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjUzMCw2ICs2NTgwLDE2IEBACiAJCQluYW1l
ID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3REQ1QkIxODBE
QTdDNDAwODE2NjBCIC8qIFBheW1lbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nl
c3NQcm94eS5jcHAgKi8sCisJCQkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQ
cm9jZXNzUHJveHkuaCAqLywKKwkJCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVu
dFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudHM7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MThFOEVGMTE2QjIwOEYwMDBF
OTE0MjkgLyogQXV0aGVudGljYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtNjU4Niw2ICs2NjQ2LDIwIEBACiAJCQlwYXRoID0gaW9zOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8q
IFBheW1lbnRQcm9jZXNzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQlFMUZFRjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovLAorCQkJCTUxRTM1MUZB
MTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8sCisJCQkJNTFFMzUxRkIx
ODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8sCisJCQkJNTFFMzUxRkMxODBG
NUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovLAorCQkJCTUxRTM1
MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
Ki8sCisJCQkJNTFFMzUxRkUxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmggKi8sCisJCQkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQ
YXltZW50UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUzOUJE
NUIyMURBREIwQkEwMEYyRTRFMSAvKiBjYXB0dXJlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY5ODksNiArNzA2Myw3IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20u
YXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgKi8sCisJCQkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0
OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8sCiAJCQkJQTc4Q0NERDcxOTNB
QzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLywKIAkJCQlBNzhD
Q0REOTE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiICov
LAogCQkJKTsKQEAgLTcwMzcsNiArNzExMiw3IEBACiAJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVC
QUI1IC8qIE1lZGlhU3RyZWFtICovLAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBO
ZXR3b3JrICovLAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25z
IChVc2VyKSAqLywKKwkJCQkzOTJFOTQyQTIxOUEyRTg1MDA1MEY5ODIgLyogUGF5bWVudHMgKi8s
CiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCiAJCQkJNTExOEU5
OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAw
QjYzOTBDIC8qIFVzZXJDb250ZW50ICovLApAQCAtNzE5Myw2ICs3MjY5LDcgQEAKIAkJCQlCQ0NG
MDg1QzExM0YzQjc1MDBDNjUwQzUgLyogbWFjICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQw
M0VEMyAvKiBOZXR3b3JrICovLAogCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3Rp
ZmljYXRpb25zICovLAorCQkJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAq
LywKIAkJCQkxQUVGQ0MwNTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKIAkJCQkyRDE1
NTFBOTFGNUE5QjQyMDAwNkUzRkUgLyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQUYwODlF
MTkyNjgxQUMwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywKQEAgLTgyODQsNiArODM2MSwxMCBA
QAogCQkJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVz
c2FnZXMuaCAqLywKIAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNz
YWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4NDM4MTI3RjY1RDUw
MDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggKi8sCisJCQkJNTEx
OEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKKwkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNz
YWdlcy5oICovLAorCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5
RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JF
QjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAogCQkJCUNEQTI5QTI1MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyTWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNjFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJh
Y2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg2MDIsNiAr
ODY4MywxNCBAQAogCQkJbmFtZSA9IFBERjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAv
KiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gaW9zOworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ4OUQyODIxQTBBMkJFODAwNzhDMDZBIC8q
IGNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkw
NjcsNiArOTE1Niw5IEBACiAJCQkJMUFDNzUzN0MxODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2Fk
U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQ
YWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2
ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThF
OUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzFFMTIzQkEyMEEx
MTU3MzAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1
ODJEMzE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMDA1MSw2ICsxMDE0Myw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTM5
MTM2MDI1MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGlu
IFJlc291cmNlcyAqLywKIAkJCQlFMTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxl
LldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5
NTlGQiAvKiBjb20uY2lzY28ud2ViZXgucGx1Z2luLmdwYzY0LnNiIGluIFJlc291cmNlcyAqLywK
IAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4g
UmVzb3VyY2VzICovLApAQCAtMTA2NTQsNiArMTA3NDcsMTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNG
OUYwMDAxMjhBRkQgLyogTlBSdW50aW1lT2JqZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEOTEzNDQ4MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQ5MkE3OTQyMTJCNkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1l
bnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUx
NiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUE4MUYy
OTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1
RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0RBMjlBMjgxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JF
QjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1
Z2luLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTdlZTc4ODk2NDg3OWI5Yjk3NmRiNDlhZTAzZWEyZDViYTBkNDYwMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5j
bHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9j
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQor
CitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5j
b2RlcikKK3sKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24pCit7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3Nl
ZCh0aGlzKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmJl
MjBhYmY2YmQzNDZjNmIxZGMyZTcxNWUzMTBlZDNkNWYzMjUzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5k
ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBQQUwgewor
Y2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbj4sIHByaXZhdGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZh
dGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsK
KyAgICB9CisgICAgfldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgCisgICAg
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgp
OyB9CisKK3ByaXZhdGU6CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAg
SVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0
dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMmJmYWVlNDc2
ZTFmNGJjY2NkYjI2NjBmZTVkOGU2NmJkNjc0YTNkNy4uNWRmYzU1NTAwYzU2OTM4MTQ1Y2I2M2Jm
NzZkNWQ4Yjc2OTM5MGEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSBmaW5hbDsKIAogICAgIHZvaWQgc2No
ZWR1bGVTdG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7Cisg
ICAgdm9pZCBzY2hlZHVsZVBheW1lbnRKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpv
YkRhdGEmKTsKIAogICAgIHZvaWQgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgdGFzayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA3MGNlOGVhNGVlZTgwOTZlMDRiM2VlNjdkMWY0Y2YyMTI3MzUwZGFjLi45NTFlZmVi
Yzg2YzhkZTljZWZkOTVmZjBjYzRlY2NkZDg3MTJhZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2ICs0Myw5IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNp
bmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisj
aW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIK
QEAgLTY5LDYgKzcyLDkgQEAKICNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5j
bHVkZSAiV2ViU29ja2V0U3RyZWFtLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNp
bmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlICJX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5o
IgpAQCAtMTIxNyw2ICsxMjIzLDMxIEBAIFdlYkxvYWRlclN0cmF0ZWd5JiBXZWJQcm9jZXNzOjp3
ZWJMb2FkZXJTdHJhdGVneSgpCiB7CiAgICAgcmV0dXJuIG1fd2ViTG9hZGVyU3RyYXRlZ3k7CiB9
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzczo6d2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24q
IGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24pOworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID09IGNvbm5l
Y3Rpb24pOworCisgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7
Cit9CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklEKQoreworICAgIGlmICghbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbikgeworICAg
ICAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyOworCisgICAg
ICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGluaXRpYWxTZXNzaW9u
SUQpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllciksIDApKSB7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRp
ZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICAgICAgQ1JBU0goKTsK
KworICAgICAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0gV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB9
CisgICAgcmV0dXJuICptX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCmluZGV4IGJkYTAwMzY3ZDI0OTM3YTNkM2Y5NDUwZGE2YzRmNTQ0OTFhMTVlOWMuLjFj
NmZkYWI5ZGU0YmZiZWZkY2I3YWU5NTk0MmUxYTc5NzJmY2ZjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtOTgsNiArOTgsOSBAQCBjbGFzcyBXZWJMb2FkZXJTdHJh
dGVneTsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKIGNsYXNzIFdl
YlByb2Nlc3NTdXBwbGVtZW50OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQYWdlR3JvdXBEYXRhOwpAQCAtMTc1LDYgKzE3OCwx
MSBAQCBwdWJsaWM6CiAKICAgICBMaWJXZWJSVENOZXR3b3JrJiBsaWJXZWJSVENOZXR3b3JrKCk7
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24qKTsKKyAg
ICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCk7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJf
dCk7CiAKICAgICB2b2lkIGVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb25Jbk5ldHdv
cmtQcm9jZXNzKCk7CkBAIC00MzEsNiArNDM5LDEwIEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eT4gbV9hdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBSZWZQdHI8V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24+IG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1f
cGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQu
LjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFO
REFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1F
KSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsK
IAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxF
X1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODRlNWIzNmU3YTljNGVhMGNiYThhY2Iz
YjE3Y2U4ZTg3MTgzYWJiNi4uZDFiOTdkNDUzODM0NWJmOTU4MzcwOTMzNzVjMGVkOGJiZjYxNDZh
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29t
PgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpw
YXltZW50UHJvY2Vzc05hbWUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVu
dFByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp0ZXJtaW5h
dGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTgtMTEtMDcgIENhaW8gTGltYSAgPHRpY2Fpb2xp
bWFAZ21haWwuY29tPgogCiAgICAgICAgIFtCaWdJbnRdIEFkZCBzdXBwb3J0IHRvIEJpZ0ludCBp
bnRvIFZhbHVlQWRkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRB
TE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdL
X1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9O
T1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1F
TlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExV
R0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5
NDQyYTBjYWY1MDg0Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8v
IEVuc3VyZSB0aGUgc2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUg
b3BlcmF0aW9ucyB3ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNz
UG9vbCAqc2hhcmVkUHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bv
b2xdOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1l
bnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQ
cm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUg
PSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3
IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hl
ZCkKIAogICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmls
ZUV4aXN0c0F0UGF0aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkw
LCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVY
UEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50
XSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNGNiOGZhOTdhNjZjOGE3ZmQ4NDU5
ZWVkMGE0NTg0MmIyYjgxZmE4My4uYmRhYTJjOWZlYTk0MDc1OTQxNDY0NDE5YWFjYTMzNWQ1Mzkx
Yzg5NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTEwNDYsNiArMTA0Niw5IEBAIFRFU1Qo
U2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBN
YWtlIHN1cmUgcGF5bWVudCBwcm9jZXNzIGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEo
MCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vz
c0lkZW50aWZpZXIpOworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxl
IHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBF
Q1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJv
Y2Vzc0NvdW50KTsKIApAQCAtMTEzMCw2ICsxMTMzLDkgQEAgVEVTVChTZXJ2aWNlV29ya2Vycywg
SGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8vIFRoZXJlIHNob3VsZCBi
ZSBubyBwYXltZW50IHByb2Nlc3MgY3JlYXRlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIp
OworCiAgICAgLy8gTGV0J3MgdXNlIHRoZSB3ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNl
cnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEgcGFnZS4KICAgICBuZXdDb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgPSBbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggOGRiNTY5MGIzOTQzMTA5NGI1MzU4ZDBkMmFm
Yjg3Njk5ZDIwNmRhMC4uZDYyYzYwZjc4Y2M1MzBhMzVhYzczYWU4YTQ4NGQ1NjA4YjExN2Q3ZiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMzMsNiArMzMzLDcgQEAgaW50ZXJmYWNl
IFRlc3RSdW5uZXIgewogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAg
IHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0
ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZGYxYWRhZjBlMGEwMjJkODNiZDlk
Mjk3NDRkYjIyOWU0NzdlNTk1NC4uZWU5NDRmOTA0YmQwNjBhNDMwZTE1YjYwZGQ1MWIwMjg2OWQz
MTE4NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjU1LDYgKzEyNTUsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjp0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNo
cm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2Uo
KS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3Zv
aWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiVGVybWluYXRlUGF5bWVudFByb2Nlc3MiKSk7CisgICAgV0tCdW5kbGVQYWdl
UG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7
Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBuZXh0VUlTY3JpcHRDYWxsYmFja0lEKCkKIHsKICAgICBz
dGF0aWMgdW5zaWduZWQgY2FsbGJhY2tJRCA9IEZpcnN0VUlTY3JpcHRDYWxsYmFja0lEOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApp
bmRleCBmNWIyYzIwZDIwYjRkOTM5YWRiMWRkMDIxMGYzZDBlZTI3ZjA0NWQ4Li4wMWI0YmQ2MmVl
MjQwZDUwZDUxODk1YTA0N2M0NmMwMDQzYWU3MmMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDQ2LDYgKzQ0Niw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lk
IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoSlNW
YWx1ZVJlZik7CiAgICAgdm9pZCBjYWxsRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2Fs
bGJhY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
ZDU1YTlmYzgxZjkzMjJjOWE1ODljMmEwNWM0ZTNlN2U5NzRlNDM1Ni4uMjEzM2E3ZjYwZWJjYWI0
ZmU0MDkyZGFkMGUwYzlhNzI3YjQwNmM1NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKQEAgLTEwNjQsNiArMTA2NCwxNSBAQCBjb25zdCBjaGFyKiBUZXN0Q29u
dHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NOYW1lKCkKICNlbmRpZgogfQogCitjb25zdCBjaGFyKiBU
ZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKCkKK3sKKyNpZiBQTEFURk9STShGQU1J
TFlfSU9TKQorICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyI7CisjZWxzZQor
ICAgIHJldHVybiAiUGF5bWVudCBwcm9jZXNzIG5vdCBhdmFpbGFibGUgb24gYW55dGhpbmcgYnV0
IGlPUyI7CisjZW5kaWYKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGUoYm9vbCBhbGxvd3MpCiB7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3Mp
OwpAQCAtMTQ4OSw2ICsxNDk4LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsCiAgICAgc3Rh
dGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSkt
Pm5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5
bWVudFByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGNsaWVudEluZm8pKS0+cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOworfQorCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91
cykKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5IikpOwpAQCAtMTgyMiw2ICsxODM2LDEzIEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQo
MSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKQor
eworICAgIHBpZF90IHBpZCA9IFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllciht
X2NvbnRleHQuZ2V0KCkpOworICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlk
ICVsZClcbiIsIHBheW1lbnRQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsK
KyAgICBleGl0KDEpOworfQorCiAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdh
dGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBA
IC0yNjIxLDYgKzI2NDIsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlU2Vydmlj
ZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWlu
YXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24m
KQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDYyNWE1YjU0
NjU5MjJjN2JhZmQ5NGI3YWNjODEyNzY1N2I4YmM5MWYuLjdmMGY3NWI0ZGJhZjVkOTFjZjQ1MDY3
OTE1NjU0MzVmYzM1Zjg0MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKQEAgLTE4MSw2ICsxODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHdl
YlByb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5ldHdvcmtQcm9jZXNzTmFt
ZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkYXRhYmFzZVByb2Nlc3NOYW1lKCk7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHBheW1lbnRQcm9jZXNzTmFtZSgpOwogCiAgICAgV29ya1F1ZXVl
TWFuYWdlciYgd29ya1F1ZXVlTWFuYWdlcigpIHsgcmV0dXJuIG1fd29ya1F1ZXVlTWFuYWdlcjsg
fQogCkBAIC0yNTIsNiArMjUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3
b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsK
KyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFs
bFNlc3Npb25DcmVkZW50aWFscygpOwogCkBAIC0zNTcsNiArMzU5LDggQEAgcHJpdmF0ZToKICAg
ICAvLyBXS0NvbnRleHRDbGllbnQKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENy
YXNoKFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NE
aWRDcmFzaCgpOworICAgIHN0YXRpYyB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250
ZXh0UmVmLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKCk7
CiAKICAgICAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAgICAgc3RhdGljIHZvaWQgZGlkQ29t
bWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IGQ4MWU1OGIzOTE3YTIzYmMzMWQ1ZDc2OGViYTgxZGYwZjBlYTcyYWQuLjY1ZTlj
NTY5MWQ1YTU2ZDBmNjIyYzU2NzUwZmEzMDQ2ZTU2ODAxMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDQ3LDYgKzE0NDcsMTIgQEAgV0tSZXRhaW5Q
dHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCisgICAgaWYg
KFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyIpKSB7CisgICAgICAgIEFTU0VSVCghbWVzc2FnZUJvZHkpOworICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKSB7CiAg
ICAgICAgIEFTU0VSVCghbWVzc2FnZUJvZHkpOwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354883</attachid>
            <date>2018-11-14 18:22:25 -0800</date>
            <delta_ts>2018-11-14 19:10:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181114182224.patch</filename>
            <type>text/plain</type>
            <size>137399</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmI2ODgzZjcxNmM0ZGZhOTU3OThkYzBlYjNiZmZmYjYxNjAyNjE2Li4yNGRlZDM4OTdjMDA3MjFk
NmQ3OWQ5MWI4Y2NkMzEwNGE3ZDhmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhc3MgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9kaXNjb25uZWN0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjM2FhYzBhZTZkZTBkOGVmY2MyMjhkNmJiZTVlM2YyZTk0
ZTU2ODI5Li42NmJmYTMzM2VhYmNiZDI2ODUwNTg4NmY3Mzk2MDQwZGM3N2RjMTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0xNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIENvZGUgcXVhbGl0eSBjb25jZXJucyBy
YWlzZWQgZm9yIDE5MTI5MTogW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYTc5NGYyMTIxMzU2Y2E0MDdhODYzZGExZWI5YTJkZDhlOWM4M2RlYi4uZjMwMzI4MDYyMWY1
MmZiMDFkMmVlNjlmNGNlNTNjOTViZDg4OWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZTVmMmNmMmZkYmM5YTg2Y2Q2MDZm
Mjg4ODNiYTljZGUxM2QzMi4uOGU1NTAwMGM0MzIwMzQ0OWMxNDE0OWMzNGRhNWJmYWQxNGIwYTM2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzog
QWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1l
bnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQ
VUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BV
TW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJl
VG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0Fs
bExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1v
cnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlh
RGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEg
cmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNDU2Nzg4M2M4ODMyYTU3MzI2ZGNmNzYwNDM4MDFhMmY5ZWRjYjc0ZS4uMjM0
MTk0ZjYzMmNmOTNmNjRiZmJhNjA4Y2M5NTAyMTYxOWE2ZTZlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBj
b25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2
NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4
MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4
OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEw
MjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1Yzhj
ODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4ZjFmNjc2
NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMiID0gIiVA
IFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50IiA9ICIl
QCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFh
ZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLjM5MzNkMTJmMDBlZDM5YmIzNDk3NGVhOWFhMTVhMDM4
ODY5ZTEwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3MiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJVF9ESVJ9
L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAgICIke1dF
QktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Qcm9jZXNz
IgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2FtZXBhZCIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCkBAIC00
NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
CiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgorICAgIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIxLDYgKzIyOSwx
MCBAQCBzZXQoTmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCiAKK3NldChQ
YXltZW50UHJvY2Vzc19MSUJSQVJJRVMKKyAgICBXZWJLaXQKKykKKwogc2V0KFBsdWdpblByb2Nl
c3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKaW5kZXggNDA1ZDYzYmJiMDEyYTM5ZTY1ZGE4YmE4
Yjg5MDgzNThhMjU4YmQ2Yy4uZWViN2EyNmFkYTE0NjNkMmFkNWE4ZGNmZGIyMDZhNGQ2M2NmM2Uy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0Lnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2Nv
bmZpZwpAQCAtMTExLDYgKzExMSw4IEBAIFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OW3Nkaz1tYWNv
c3gqXVthcmNoPWkzODZdID0gTk87CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FUyA9ICQoV0tf
Q09SRV9QUkVESUNUSU9OX0RFRklORVNfJChXS19IQVZFX0NPUkVfUFJFRElDVElPTikpOwogV0tf
Q09SRV9QUkVESUNUSU9OX0RFRklORVNfWUVTID0gSEFWRV9DT1JFX1BSRURJQ1RJT047CiAKK1dL
X1BBWU1FTlRfU0VSVklDRV9QUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRz
OworCiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gJChXS19TVE9SQUdFX1NFUlZJ
Q0VfUFJPRFVDVF9OQU1FXyQoV0tfVVNFX0xFR0FDWV9TVE9SQUdFX1NFUlZJQ0VfTkFNRSkpOwog
V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV8gPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9Q
Uk9EVUNUX05BTUVfTk8pOwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyA9IGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2Mw
Y2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWEx
YTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpAQCAtMjg4LDYgKzI4OCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxF
X05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7
CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0g
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjNhMzc0ZTBmNWQ4YWJjNWQzODQyZDliZTA2YWQ3MDNkYjE0ZjA5NQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcK
QEAgLTAsMCArMSwzNCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBh
cmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy8vIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworI2luY2x1ZGUgIkJhc2VYUENTZXJ2aWNlLnhjY29uZmlnIgorCitXS19QQVlNRU5UX0VOVElU
TEVNRU5UU19SRVNUUklDVEVEX05PID0gOworV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJ
Q1RFRF9ZRVMgPSBDb25maWd1cmF0aW9ucy9QYXltZW50LU9TWC1zYW5kYm94LmVudGl0bGVtZW50
czsKKworQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VDSF9OTyA9ICQoV0tfUEFZTUVO
VF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF8kKFdLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5U
UykpOworT1RIRVJfQ09ERV9TSUdOX0ZMQUdTID0gJChXS19MSUJSQVJZX1ZBTElEQVRJT05fQ09E
RV9TSUdOX0ZMQUdTKTsKKworUFJPRFVDVF9OQU1FID0gJChXS19QQVlNRU5UX1NFUlZJQ0VfUFJP
RFVDVF9OQU1FKTsKK1BST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7
CitJTkZPUExJU1RfRklMRSA9IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkNjdk
NDhjNjRkNzI5YmNmZWU4MGY1YWM0MGY0ZTdjM2ViYzc3MzI0Li4zZmE4ZmY3ZTcxZGJiZDZkZmU0
OWY1MjU3MjY1YjBiZjgyODNkMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0z
MCw2ICszMCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQiBcCiAgICAgJChX
ZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyIFwKKyAgICAkKFdlYktpdDIpL1Bh
eW1lbnRQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MgXAogICAgICQoV2Vi
S2l0MikvUGx1Z2luUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMg
XApAQCAtNzMsNiArNzQsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9O
ZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisgICAgJChXZWJL
aXQyKS9VSVByb2Nlc3MvUGF5bWVudCBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lu
cyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIFwKICAgICAkKFdl
YktpdDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTEyMSw2ICsxMjMsMTAgQEAgTUVTU0FHRV9S
RUNFSVZFUlMgPSBcCiAgICAgTmV0d29ya1NvY2tldFN0cmVhbSBcCiAgICAgUGxheWJhY2tTZXNz
aW9uTWFuYWdlciBcCiAgICAgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IFwKKyAgICBOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciBcCisgICAgUGF5bWVudFByb2Nlc3MgXAorICAgIFBh
eW1lbnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwK
ICAgICBQbHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50UHJvY2Vzcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE3NTc0NGY2MjIzMjI2MTE5NjdmNmNk
OTdmNjk1OTc4NmFlMzE1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nlc3M6
OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9jZXNz
PiBwcm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzOworfQorCitQYXltZW50UHJvY2Vzczo6UGF5
bWVudFByb2Nlc3MoKQoreworfQorCitQYXltZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKCkK
K3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRl
cm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nl
c3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDaGls
ZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBDaGlsZFByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47
CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQxYWU3Y2E0YWE5ZmZlMzdjZmEwYjg2YmQxNzk4Yzg1YTAzNTNlMDQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQ
cm9jZXNzLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOworc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOworCitjbGFzcyBQYXltZW50UHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFBheW1lbnRQcm9jZXNzKTsKKyAgICBmcmllbmQgTmV2ZXJE
ZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+OworcHVibGljOgorICAgIHN0YXRpYyBQYXltZW50UHJv
Y2VzcyYgc2luZ2xldG9uKCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBQcm9jZXNzVHlwZSBwcm9j
ZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpQYXltZW50OworCisgICAgflBheW1lbnRQcm9jZXNzKCk7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFByb2Nlc3MoKTsK
KworICAgIC8vIENoaWxkUHJvY2VzcworICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBvdmVy
cmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKwor
ICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKKyAgICB2b2lkIGNyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYpOworICAgIAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45ZTc2YzQyMTcwNTYwOGU2NWI3MWExZDkwZGM2YzZlNTRkMDM1MzlmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisj
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBQYXltZW50
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CisgICAgCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFmZmQ3
MTEyNzZkZmRlOTZhNWQzMmM0OWY4ZTAxNzlkYmU2YzZiNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbj4gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50
aWZpZXIpKTsKK30KKworUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OlBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNl
cnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICAvLyBG
SVhNRToKKyAgICAvLyBVc2UgbV9jb25uZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNw
YXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1
ZSkKKyAgICAvLyB0byBmb3JjZSBzeW5jaHJvbm91cyBtZXNzYWdlcyB0byBiZSB0cmVhdGVkIGFz
IGFzeW5jaHJvbm91cyBtZXNzYWdlcyBpbiB0aGUgV2ViUHJvY2Vzcy4KKyAgICAvLyBPdGhlcndp
c2UsIHRoZSBXZWJQcm9jZXNzIHdvdWxkIHByb2Nlc3MgaW5jb21pbmcgc3luY2hyb25vdXMgSVBD
IHdoaWxlIHdhaXRpbmcgZm9yIGEgc3luY2hyb25vdXMgSVBDCisgICAgLy8gcmVwbHkgZnJvbSB0
aGUgcGF5bWVudCBwcm9jZXNzLCB3aGljaCB3b3VsZCBiZSB1bnNhZmUuIEludmVzdGlnYXRlIGlm
IHdlIG5lZWQgdG8gY2FsbCB0aGlzLgorICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24o
KS5kaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJB
TShjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZU5hbWUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVO
VVNFRF9QQVJBTShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsKKyAgICBVTlVTRURfUEFSQU0obWVzc2Fn
ZU5hbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5U
KFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmJj
MDFmYWY4NWE1ZTU1MWNhZGJlNjc4ZTkzMWI4YzRiZGJmMmYxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbj4sIHByaXZhdGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsK
KyAgICB+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKworICAgIElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2
YXRlOgorICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1l
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYp
OworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNz
YWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIo
KTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5U
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45ODQzMjI1OTY2MjY5MzU5MzkxNmUzZDk0Y2E5NTRmZDUwOTc5YTZjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
bWVzc2FnZXMgLT4gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIg
eworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lv
cy9QYXltZW50UHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9z
L1BheW1lbnRQcm9jZXNzSU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhNmFhZWI1NmIyNGMwYTM2Y2ZlNjcx
NTI4ZDlmY2VmYWVkNjg5YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQpAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW1wb3J0ICJjb25maWcuaCIK
KworI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpbXBv
cnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKworI2RlZmluZSBFTkFCTEVf
TUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcgMAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9p
ZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5p
dGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6
ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVy
cykKK3sKKyNpZiBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcKKyAgICAvLyBOZWVk
IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50
IGJ1bmRsZSBJRC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5k
bGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAgICBzYW5kYm94
UGFyYW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBw
YXRoRm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIiBvZlR5cGU6QCJzYiJd
KTsKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRi
b3hQYXJhbWV0ZXJzKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9p
b3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2Vz
L1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lOTkyYzU3Zjk1M2EzZTk5YTYwYzM0NTE4ODFmNDQ4NGEzZDMzM2NiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiCkBAIC0wLDAgKzEsMzIgQEAKKzsgQ29weXJpZ2h0IChD
KSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorOworOyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzsgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorOworOyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCis7IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCis7IFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworOyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCis7IFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworKHZlcnNpb24gMSkKKyhkZW55IGRlZmF1bHQg
KHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhhbGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1y
ZWFkLW1ldGFkYXRhKQorCisoaW1wb3J0ICJjb21tb24uc2IiKQorCisoZGVueSBtYWNoLWxvb2t1
cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQorCisoZGVueSBsc29wZW4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IGE3MmJjOTI5ZGJkN2M3NGMyMjY2OWI4MjMxN2E2
MWZmYWJkZjM3NjkuLjVkMGNjNmUyZjU0ZDM2ODMyZGQyNWY4N2MwODI3NzA5M2JkYzNhNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoK
ICAgICAgICAgV2ViQ29udGVudCwKICAgICAgICAgTmV0d29yaywKICAgICAgICAgUGx1Z2luCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudAorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25z
dCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTczNzA5NzM0MDNkNDYzNDA4ZWQ2M2JiY2Vm
NDU2M2JkMDA5OTgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8
IHNlc3Npb25JRDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zZXNzaW9u
SUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWM4NjNjMDBhOGE0MDcwMTM1
MTJjYTIzMWMwNTU4MzUxN2I5ZWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICov
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29k
ZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycygpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJP
Q0VTUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAppbmRl
eCAyY2U3MTZlNGM3MmU1ODJhYmUzMGY0ODc5ZDJjNmViOWU0OTlhOTdiLi42MmI1NDc0ZWZhYTcy
NGVhYjUyOGI0ZjY3MDE3OTFmMGNlOWFhZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
cm9jZXNzRXhlY3V0YWJsZVBhdGguaApAQCAtMzIsNSArMzIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFi
bGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQ
cm9jZXNzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxl
UGF0aE9mUGF5bWVudFByb2Nlc3MoKTsKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKaW5kZXggODc2NmRmZDMwMjA5NjMxZDM5OGE1Mzk4MzhjZWE5ZmMw
NGE4NzdmYS4uZWFhMmMzZTY3NTNlM2I5OGE4NGJmYzUzZWJiMDgzODUxYWRjNjliNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CkBAIC03OSw2ICs3OSw5IEBAIE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0Rh
dGFUYXNrUmVwbGF5LmNwcAogCiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdp
c3Rlci5jcHAKIAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCitQYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKwogLy8gVE9ETzogV2Ugc2hv
dWxkIHVuaWZ5IHRoZXNlIGZpbGVzIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3Zl
ZC4KIFBsYXRmb3JtL0xvZ2dpbmcuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vTW9kdWxlLmNwcCBA
bm8tdW5pZnkKQEAgLTIwNyw2ICsyMTAsOCBAQCBTaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJSZXN1bHQuY3BwCiAKIFNoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAogCitTaGFy
ZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKwogLy8gVE9E
TzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNz
MiBpcyByZW1vdmVkLgogU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAgQG5vLXVu
aWZ5CiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAgQG5vLXVuaWZ5
CkBAIC0zODAsNiArMzg1LDggQEAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcAorCiBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NN
YW5hZ2VyLmNwcApAQCAtNDgwLDYgKzQ4Nyw4IEBAIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCitXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiAvLyBUT0RPOiBUaGVzZSBmaWxlcyBzaG91bGQgYmUg
dW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
ZWNjODJkMWE4Y2U0Njc1YWMxYTRmNmVkNzA0YjZiMjQyOGQ5NzUyOC4uZGJjMmE4NWE3MTU5YWNh
MGRiMGRkNjMwODE1NmNkMWZkODdiOGQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTgz
LDYgKzE4Myw4IEBAIFNoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmNwcAogU2hhcmVkL21hYy9X
ZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQogU2hhcmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5t
bQogCitQYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KKwogU2hhcmVkL1Bs
dWdpbnMvbWFjL1BsdWdpblNhbmRib3hQcm9maWxlLm1tCiAKIFNoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggMDQwMWU3MmI0YzZmNWU0ZTU5ZGQ4Y2FiNDBi
NjY0MzVkNGY1OGZiOS4uN2JmM2Y1YTEyYzk3ZWNhNzlkYjc0MGU2OWM0NWRmYzllYTRhYmI4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC02MjEs
MTEgKzYyMSwyNyBAQCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
KFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3NlcygpOwogfQogCit2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQoreworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRl
c3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiBQcm9jZXNz
SUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmKQogewogICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPm5ldHdvcmtQcm9jZXNz
SWRlbnRpZmllcigpOwogfQogCitQcm9jZXNzSUQgV0tDb250ZXh0R2V0UGF5bWVudFByb2Nlc3NJ
ZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+cGF5bWVudFByb2Nlc3NJ
ZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit9CisKIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkb21haW5SZWYsIFdLU3RyaW5nUmVmIG5h
bWVSZWYsIFdLQXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5UmVmIGV4dGVuc2lvbnNSZWYp
CiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggNDZkMzdlMWU4YTE1ODk1
ODBhMzU1MzhlZTVmNmY5YmMyZDgwZTIyYy4uMWYxZTg3MzlkMzJlZDc2ZDUxNzExYzZiZDdiZWEw
Njk0MTNmOTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dFByaXZhdGUuaApAQCAtOTIsNiArOTIsOCBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRT
ZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsKIAogV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0VGVybWluYXRlTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmKTsKIFdLX0VY
UE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKFdLQ29udGV4
dFJlZik7CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZTUVOVF9QUk9D
RVNTIGlzIEVOQUJMRUQKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKFdLQ29udGV4dFJlZik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JT
ZXJ2aWNlV29ya2VyVGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wpOwpAQCAtMTEyLDYgKzExNCw3
IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxpc3QoV0tDb250ZXh0UmVm
LCBXS0FycmF5UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFByZWNvbm5lY3RUb1NlcnZl
cihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJMKTsKIAogV0tfRVhQT1JU
IFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRl
eHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0UGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAogV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0
cmluZ1JlZiBkb21haW4sIFdLU3RyaW5nUmVmIG5hbWUsIFdLQXJyYXlSZWYgbWltZVR5cGVzLCBX
S0FycmF5UmVmIGV4dGVuc2lvbnMpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJTdXBw
b3J0ZWRQbHVnaW5zKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggY2YyODExZThiM2Fj
YWFiMGQwODFlMDg4MmNiZmQ4M2M3ZDVkZDVjZS4uMGYzMjEyOGEyZjNkYTg1NTZmNDQ0ZDc0OWNi
NTM5Mjc4NTA4MTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQyNCw2ICs0MjQsMTMgQEAgLSAodm9pZClfY2xlYXJT
dXBwb3J0ZWRQbHVnaW5zCiAgICAgX3Byb2Nlc3NQb29sLT5jbGVhclN1cHBvcnRlZFBsdWdpbnMo
KTsKIH0KIAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3MKK3sKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlUGF5bWVudFByb2Nl
c3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwog
LSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnRl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC00NDQsNiArNDUxLDE1IEBAIC0gKHBpZF90KV9u
ZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIKICAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5uZXR3b3Jr
UHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorLSAocGlkX3QpX3BheW1lbnRQcm9jZXNzSWRlbnRp
ZmllcgoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcmV0dXJuIF9wcm9jZXNz
UG9vbC0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAocGlk
X3QpMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV9z
eW5jTmV0d29ya1Byb2Nlc3NDb29raWVzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT5zeW5jTmV0d29y
a1Byb2Nlc3NDb29raWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDRkM2ExOTEyMGFiZDQ5ZWVl
MDQ5Mjc5NGE3N2Y0YWZiMDZjZGU5MGMuLjBiOTk5ZTg2NGE5MTlhYzU4YzkwMTljODQ2M2U2MDdj
NWYzN2VjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC04NCwxMiArODQsMTYgQEAKIC0gKF9XS0Rv
d25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgcGF0
aDooTlNTdHJpbmcgKilwYXRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3
aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCisvLyBOT1RFOiBUaGlz
IGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZTUVOVF9QUk9DRVNTIGlzIEVOQUJMRUQKKy0gKHZv
aWQpX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzOwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1By
b2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZvaWQpX2Rpc2FibGVTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTQpLCBpb3MoMTIuMCkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChwaWRfdClfbmV0d29ya1By
b2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjAp
KTsKKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1Mg
aXMgRU5BQkxFRAorLSAocGlkX3QpX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZB
SUxBQkxFKGlvcygxMS4zKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHNpemVfdClfd2ViUHJvY2Vz
c0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5k
ZXggODdiMGJiZWM4MTMwM2E3NWM4NWUyYThjYmMzMGU3YWMyMmQ4M2RjZS4uNmQ2NmVjMzFhZmY2
ZWRjMWE0MWY2ODQ4MzI1MjNjZDg3ZTZiZDJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTU3LDYgKzU3LDkgQEAgcHVi
bGljOgogICAgICAgICBQbHVnaW42NCwKICNlbmRpZgogICAgICAgICBOZXR3b3JrLAorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQsCisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICAgICB9OwogCiAgICAgc3RydWN0IExhdW5jaE9wdGlvbnMgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggM2I0NjE2MzRlODUxNzM5ZDY5NWQwNTU1YmU1NGQ2OWI0
ODQ2MDY0OC4uNTcyY2U0OTBlMGNhNTE1ZGEyMGE3ZjdhMmM4ODc5NjkxMDYzYzUxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tCkBAIC02Miw2ICs2MiwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciogc2Vy
dmljZU5hbWUoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRp
bwogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1Z2luNjQ6CiAgICAg
ICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQiOwogI2VuZGlmCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5
cGU6OlBheW1lbnQ6CisgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyI7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94
eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjkyZjFhZDZmOTliZGI0N2E3NTQ5OGRhNmYwOTc3ZjEzYzkwNjRj
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1Bh
eW1lbnRQcm9jZXNzUHJveHkuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHkuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAi
V2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyB1aW50
NjRfdCBnZW5lcmF0ZVBheW1lbnRQcm9jZXNzQ2FsbGJhY2tJRCgpCit7CisgICAgc3RhdGljIHVp
bnQ2NF90IGNhbGxiYWNrSUQ7CisKKyAgICByZXR1cm4gKytjYWxsYmFja0lEOworfQorCitQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9j
ZXNzUG9vbCkKKyAgICA6IENoaWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNB
dEJhY2tncm91bmRQcmlvcml0eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkK
KyAgICAsIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQoreworICAgIGNvbm5lY3Qo
KTsKK30KKworUGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQorewor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQorewor
ICAgIHRlcm1pbmF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5j
aE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQor
eworICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nl
c3NUeXBlOjpQYXltZW50OworICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25z
KGxhdW5jaE9wdGlvbnMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NX
aWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9V
TlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFBy
b2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQoreworICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3Zl
KHJlcGx5KSk7CisKKyAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAg
ICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5
bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2Vydmlj
ZVdvcmtlclByb2Nlc3MsIHNlY3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNw
YXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBw
cm90ZWN0ZWRQcm9jZXNzUG9vbCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBU
aGUgcGF5bWVudCBwcm9jZXNzIG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBh
bnkgcGVuZGluZyBzeW5jIHJlcGxpZXMgd2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVu
ZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0g
bV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgfQorICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0
IHRoaXMgcGF5bWVudCBwcm9jZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgor
ICAgIG1fcHJvY2Vzc1Bvb2wucGF5bWVudFByb2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0
dGFjaG1lbnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nl
c3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK3sKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNo
aW5nKGxhdW5jaGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29u
bmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBEbyBiZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rp
b25SZXF1ZXN0czsgKytpKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6
Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAg
IAorICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzEzZjUyYmE3NjEyZGFhM2MyM2NiMDE0NWYxNjEyNTAzODU2ZDI2OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1l
bnRQcm9jZXNzUHJveHkuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vz
c1Byb3h5LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJp
dHlPcmlnaW5EYXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vz
c1Bvb2w7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlw
ZTsKK3N0cnVjdCBXZWJzaXRlRGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5h
bCA6IHB1YmxpYyBDaGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5
bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1By
b3h5KCk7CisgICAgCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJv
Y2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisKKyAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3Rp
bmcoKTsKKworcHJpdmF0ZToKKyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQorICAgIHZvaWQgZ2V0
TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3Zl
cnJpZGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworICAgIC8vIE1lc3NhZ2UgaGFuZGxl
cnMKKyAgICB2b2lkIGRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0
IElQQzo6QXR0YWNobWVudCYpOworCisgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKKyAg
ICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIpIG92ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1Bvb2wmIG1fcHJvY2Vz
c1Bvb2w7CisKKyAgICB1bnNpZ25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7Cisg
ICAgRGVxdWU8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9Q
YXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZWZmYmI1ODI5Y2Ew
NjZlNWViMzRjMWM3ZTQ5NmU3YTNmMzg2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2Vzc1By
b3h5IExlZ2FjeVJlY2VpdmVyIHsKKyAgICBEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBmYTQ1NzYyZWNlYmEwMTNhNmFjYTRmOTY0ZGE4NTY2
Mzk3NDFkNTc1Li5iZWM3OWI1NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2OTliNTUzZjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtNDYsNCAr
NDYsMTEgQEAgdm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdl
YlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0Rp
ZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0K
IAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYkNvbnRleHRDbGllbnQ6OnBh
eW1lbnRQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQoreworICAg
IAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCmluZGV4
IDgwYzMxMTIyYzA3NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYuLjU5YjNhNDA3OTEwOGYy
MzhmMWQ2ZjhhYmYxYWI5ZWRjYzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb250ZXh0Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIFdlYkNvbnRleHRDbGll
bnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFzZT4gewogcHVibGljOgog
ICAgIHZvaWQgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZChXZWJQcm9jZXNzUG9v
bCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICAKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0MDNkYjI5Zjk0MDA0Mzhi
YTMyYTYwYzc1ODI3NDkzNGZhNi4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVjMDY3ZDFmMGQ5ZDQ1OWEx
MjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVu
dC5oCkBAIC0yOSw2ICsyOSwxMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdv
cmtQcm9jZXNzUHJveHk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFBheW1l
bnRQcm9jZXNzUHJveHk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogY2xh
c3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKQEAgLTU0LDYgKzU4
LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKE5ldHdvcmtQ
cm9jZXNzUHJveHkqKQogICAgIHsKICAgICB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBheW1lbnRQcm9jZXNzUHJv
eHkqKQorICAgIHsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAog
ICAgIFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c1Bvb2w7IH0KICAgICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1fcHJvY2Vzc1Bvb2wgPSBu
dWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5k
ZXggYzgyYWZjZjM1YTIyNDlkZTAwMjA5ZDQ1Y2M0MGQ2ZjM5MjdmMGQzMy4uMjhiYTlhZDNkYWRk
NzU3MzQyMzkwMzBjMWEzMDM2YjI2YjEzZTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTQsNiArNTQsMTAgQEAKICNpbmNsdWRlICJTYW5kYm94
RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgogI2lu
Y2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNp
bmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkLmgiCiAjaW5j
bHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKQEAgLTQ0Miw2ICs0NDYsOSBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlzQ3JpdGljYWwpCiB7CiAg
ICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVN
ZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKICAgICBzZW5kVG9OZXR3b3JraW5nUHJv
Y2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVu
dChpc0NyaXRpY2FsKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBzZW5kVG9Q
YXltZW50UHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJl
c3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBQbHVnaW5Qcm9jZXNzTWFu
YWdlcjo6c2luZ2xldG9uKCkuc2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCk7CiAj
ZW5kaWYKQEAgLTYwNyw2ICs2MTQsMzYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3gKICAgICBt
X25ldHdvcmtQcm9jZXNzLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1By
b3h5LCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
dm9pZCBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3MoKQoreworICAgIGlmICgh
bV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgbV9wYXltZW50UHJvY2VzcyA9IHN0ZDo6bWFrZV91
bmlxdWU8UGF5bWVudFByb2Nlc3NQcm94eT4oKnRoaXMpOworfQorICAgIAordm9pZCBXZWJQcm9j
ZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2Vi
UHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgbV9wYXltZW50
UHJvY2Vzcy0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RG
TW92ZShyZXBseSkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0Ny
YXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3NQcm94eSkKK3sKKyAgICBB
U1NFUlQobV9wYXltZW50UHJvY2Vzcyk7CisgICAgQVNTRVJUKHBheW1lbnRQcm9jZXNzUHJveHkg
PT0gbV9wYXltZW50UHJvY2Vzcy5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIHN1cHBsZW1lbnQg
OiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQorICAgICAgICBzdXBwbGVtZW50LT5wcm9jZXNzRGlk
Q2xvc2UocGF5bWVudFByb2Nlc3NQcm94eSk7CisKKyAgICBtX2NsaWVudC5wYXltZW50UHJvY2Vz
c0RpZENyYXNoKHRoaXMpOworCisgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCisgICAgICAg
IG1fYXV0b21hdGlvblNlc3Npb24tPnRlcm1pbmF0ZSgpOworCisgICAgbV9wYXltZW50UHJvY2Vz
cyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdv
cmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5
JiBwcm94eSwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9u
YWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRCkKIHsKQEAgLTY4Myw2ICs3MjAsOSBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdF
bmFibGVkKGJvb2wgcHJpdmF0ZQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM6OmxlZ2FjeVByaXZhdGVTZXNzaW9uUGFyYW1ldGVycygpKSk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
ICAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ry
b3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNz
ZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC0xMzMyLDYgKzEzNzIsMTUg
QEAgVmVjdG9yPFN0cmluZz4gV2ViUHJvY2Vzc1Bvb2w6OmFjdGl2ZVBhZ2VzT3JpZ2luc0luV2Vi
UHJvY2Vzc0ZvclRlc3RpbmcoUHJvY2Vzc0kKICAgICB9CiAgICAgcmV0dXJuIHsgfTsKIH0KKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUHJvY2Vzc0lEIFdlYlByb2Nlc3NQb29sOjpwYXlt
ZW50UHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9wYXltZW50UHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpzZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChib29sIGFs
d2F5c1VzZUNvbXBsZXhUZXh0KQogewpAQCAtMTYwMyw2ICsxNjUyLDE3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKQogICAgIGlmIChtX25ldHdvcmtQcm9j
ZXNzKQogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6Q2xlYXJDYWNoZWRDcmVkZW50aWFscygpLCAwKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVudFBy
b2Nlc3NGb3JUZXN0aW5nKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcGF5bWVudFByb2Nlc3MtPnRlcm1pbmF0ZUZvclRlc3RpbmcoKTsK
KyAgICBtX3BheW1lbnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA1
NTNkYWM1ZTQxZjg2ZTBjN2M2YmU3YWYxNzllNDdiMWMwZTdlNzZkLi4zMjJjMDk2ZDc1ZTgyNDk4
NWQ3MWEwZWQzOTExNmIxNjVmNGM1YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKQEAgLTQwLDYgKzQwLDkgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVy
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlN0
YXRpc3RpY3NSZXF1ZXN0LmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRl
ICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENs
aWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgiCkBAIC0xNzMs
NiArMTc2LDEyIEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PiB2b2lkIHNlbmRTeW5jVG9OZXR3b3JraW5nUHJvY2VzcyhUJiYgbWVzc2FnZSwgVSYmIHJlcGx5
KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNz
UmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CiAKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgIC8vIFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdlYlByb2Nlc3Mgb3IgUGF5
bWVudFByb2Nlc3MgYXMgYXBwcm9wb3JpYXRlIGZvciBjdXJyZW50IHByb2Nlc3MgbW9kZWwuCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVz
c2FnZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2Vz
c1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOworI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoV2Vi
UHJvY2Vzc1Byb3h5Kik7CiAKICAgICAvLyBEaXNjb25uZWN0IHRoZSBwcm9jZXNzIGZyb20gdGhl
IGNvbnRleHQuCkBAIC0yMTcsNiArMjI2LDkgQEAgcHVibGljOgogICAgIFByb2Nlc3NJRCBuZXR3
b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKICAgICBWZWN0b3I8U3RyaW5nPiBhY3RpdmVQYWdlc09y
aWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJRCk7CiAgICAgYm9vbCBuZXR3b3Jr
UHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFByb2Nlc3NJRCBwYXltZW50UHJvY2Vzc0lkZW50aWZp
ZXIoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgV2ViUGFnZUdy
b3VwJiBkZWZhdWx0UGFnZUdyb3VwKCkgeyByZXR1cm4gbV9kZWZhdWx0UGFnZUdyb3VwLmdldCgp
OyB9CiAKQEAgLTI3Niw2ICsyODgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlT
U0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRD
cmVkZW50aWFscygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB0ZXJt
aW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lk
IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKICAgICB2b2lkIGRpc2FibGVTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsKQEAgLTM0Miw2ICszNTcsMTIgQEAg
cHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vz
c1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHZvaWQgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBQYXltZW50UHJvY2Vzc1Byb3h5
KiBwYXltZW50UHJvY2VzcygpIHsgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MuZ2V0KCk7IH0KKyAg
ICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBQQUw6
OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBh
eW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5Kik7CisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9p
ZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29y
a1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBzdGQ6Om9wdGlv
bmFsPFBBTDo6U2Vzc2lvbklEPik7CiAgICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogc2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQodWludDY0X3QgcGFnZUlEKSBjb25zdDsK
QEAgLTY0MSw2ICs2NjIsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5IYW5kbGVIVFRQU1Nl
cnZlclRydXN0RXZhbHVhdGlvbiB7IHRydWUgfTsKICAgICBib29sIG1fZGlkTmV0d29ya1Byb2Nl
c3NDcmFzaCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtQcm9jZXNzUHJv
eHk+IG1fbmV0d29ya1Byb2Nlc3M7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGF5bWVudFByb2Nlc3NQcm94eT4gbV9wYXltZW50UHJvY2VzczsKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4+IG1fZGljdGlvbmFyeUNhbGxiYWNrczsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+PiBtX3N0YXRpc3RpY3NS
ZXF1ZXN0czsKQEAgLTc0Miw2ICs3NjYsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRv
TmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQogICAg
IG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKIH0K
IAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpCit7Cisg
ICAgaWYgKG1fcGF5bWVudFByb2Nlc3MgJiYgbV9wYXltZW50UHJvY2Vzcy0+Y2FuU2VuZE1lc3Nh
Z2UoKSkKKyAgICAgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVz
c2FnZSksIDApOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdl
KQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgbV9wYXltZW50UHJvY2Vzcy0+
c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZW5kVG9BbGxQcm9jZXNzZXMoY29uc3QgVCYgbWVzc2FnZSkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDFjMDVmMzQ5ZTY2NjY1Njc4
ZjgzZDIxMjc4NGJmOGZmYTZlODhhOTkuLjFhYTkwYWNiYzQyOGFlYzhmNDc0NDUwNGNmNGQxZjQz
OWU5MDNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cApAQCAtNjIzLDYgKzYyMywxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldAogewogICAgIG1f
cHJvY2Vzc1Bvb2wtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgV1RGTW92ZShy
ZXBseSkpOwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxT
ZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9wcm9jZXNzUG9vbC0+Z2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBpbml0aWFsU2Vzc2lvbklELCBXVEZNb3Zl
KHJlcGx5KSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogI2lmICFQ
TEFURk9STShDT0NPQSkKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUlzQmVpbmdEZWJ1
Z2dlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IDdiZWI5NTE2NjU1NzI2NTQxOWQzZGE5MzIzZTQ4OWE5OTRkMGNlMzkuLjA4MWYxYTRlMzcw
YTUzMTVhYmQzNWI2Y2YzZjZlNWY3NGExYTE5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yODUsNiArMjg1LDkgQEAgcHJpdmF0ZToKICNlbmRpZgog
ICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIGJvb2wgcGxhdGZvcm1Jc0Jl
aW5nRGVidWdnZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3Rl
ZENvZGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDZhOThmNGU5NjA0N2RhYmYxNjRhNzYxMGE4N2Yy
YTlmNjg2MGI0OGEuLjhmNWUxZDY2NjBiMTUwZDc1NzMwYTYzZTFmMDkzZDQzZjZhMzZkMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTM3LDYgKzM3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVn
aW5Qcm9jZXNzVG9rZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9v
bCBzdXBwb3J0c0FzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBEZWxheWVkCiAjZW5kaWYKICAg
ICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIEdl
dFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklE
KSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAg
ICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGI5
MGMxNDI0MTc2YzY1MTVlN2VlNGE1NjIyYjhlYzZlYmUyNmMzODEuLmNkNWZjYzMwOGZhNjYyNmFj
YmJiY2VkYjU5YzE0N2JlYWQzZWI0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0zNCw2ICszNCwx
MCBAQAogI2luY2x1ZGUgIk1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzUG9vbC5oIgpAQCAtMTM1LDYgKzEzOSw5IEBAIFdlYnNpdGVEYXRhU3RvcmU6On5XZWJz
aXRlRGF0YVN0b3JlKCkKICAgICAgICAgQVNTRVJUKG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0
KG1fc2Vzc2lvbklEKSA9PSB0aGlzKTsKICAgICAgICAgbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5y
ZW1vdmUobV9zZXNzaW9uSUQpOwogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2Vi
UHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICAgICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNz
YWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgICAgIGlmIChhdXRvKiBuZXR3
b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQogICAgICAgICAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzLT5yZW1vdmVTZXNzaW9uKG1fc2Vzc2lvbklEKTsKICAgICAgICAg
fQpAQCAtMTYyNiw2ICsxNjMzLDE5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2Fs
bGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFt
ZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1l
dGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKKworICAgIHJldHVybiBwYXJhbWV0ZXJzOwor
fQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBlbmRpbmdDb29raWVzKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDg1
MmI2YmI1ZDM2ZmJiNmU5NTk5MmU4ODI0NjhiMjZiZGQ5MDcxNTkuLjM5MTg2MTQ4OWMwM2I3ZTBj
Yjg1NjdmYjVlZTNlZTJhZDE3ZmJlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTY2LDYgKzY2LDkgQEAg
Y2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRl
RGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1
Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKQEAgLTE3MSw2ICsxNzQsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0Fzc29jaWF0ZWRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNv
bnN0OwogCiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycygpOworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMgcGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVz
KCkgY29uc3Q7CiAgICAgdm9pZCBhZGRQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tp
ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYmU0MGRiZDc4MTQ2NDZlNzU4MTY4NDg2ZjU5ZjNlNGU1NjdhMWNkMS4uNjA3ZWRkMzAy
ODgzOGQ2YWUzYjVhN2IyMTJmMGRkZTJlM2QwODdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDgsNiArODQ4LDcgQEAKIAkJMzdG
OTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgw
MDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMxOTQ3MTg1
MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1
MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0
QjE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEw
RDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CisJ
CTM5MTM2MDI1MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNi
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAy
NDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsK
IAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkz
RjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CkBAIC05MDYsNiArOTA3LDEw
IEBACiAJCTUxMEY1OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTc5
MURERDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhDOTVFMDBB
RkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNv
bnRleHRNZW51SXRlbURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8q
IFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTE4RTlBODFG
Mjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJ
NTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CisJCTUxMThFOUFB
MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3
MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKKwkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
cy5oICovOyB9OwogCQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oICovOyB9OwogCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJy
YXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFG
OEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CiAJCTUx
MUY4QTgxMTM4QjQ4NUQwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBB
OTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovOyB9OwpAQCAtOTU3LDYgKzk2Miw3IEBA
CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUw
RiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4
NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBh
eW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
LmggKi87IH07CiAJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNUEx
MjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi87IH07CiAJCTUxOEFDQUVBMTJB
RUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMg
LyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxOEFDRjExMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRl
bnRpYWxUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE4QUNGMTAxMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk4NCw2ICs5OTAs
OCBAQAogCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFERDlGMjkx
NjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI3
MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmggKi87IH07CiAJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUM5MTgw
RjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLzsgfTsKKwkJNTFFMzUxRkYxODBGNUQw
RjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
UHJvY2Vzcy5jcHAgKi87IH07CisJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MUU2QzE2NDFGMjkzNUREMDBGRDM0Mzcg
LyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUU2QzE2MTFGMjkzNUNEMDBGRDM0
MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi87IH07CiAJ
CTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENTQx
NTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFGMDYwRTAxNjU0MzE3
RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAv
KiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CkBAIC0xNTY5LDYgKzE1NzcsNyBA
QAogCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAw
MzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5n
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNUZF
NTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovOyB9OworCQlFMTE1QzcxNDE5
MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyog
UGF5bWVudFByb2Nlc3NJT1MubW0gKi87IH07CiAJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAv
KiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiICovOyB9OwogCQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJv
Y2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovOyB9OwogCQlFMTUxM0M2NzE2NkVBQkIyMDAxNDlG
Q0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQ
cm94eS5oICovOyB9OwpAQCAtMjk4MCw2ICsyOTg5LDExIEBACiAJCTNGNDE4RUY2MTg4N0JEOTcw
MDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzRjQxOEVGNzE4ODdC
RDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY4MTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkz
OTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyQjIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzOTEzNjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkyRTk0MkIyMTlBMzk5QTAw
NTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJBMTU4OTNGNjMw
MDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9y
UGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTAyLDYgKzMxMTYsNyBAQAogCQk0
RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVt
U2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNl
Y0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUExODBGNzRGMTAw
OTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEgLyogQ29va2llU3RvcmFn
ZVV0aWxzQ0YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29r
aWVTdG9yYWdlVXRpbHNDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIz
NzExQzczRDIyQjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcyMUM3M0QzN0IwMDc5
OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxMjUsMTEgKzMxNDAsMTUgQEAKIAkJNTExMEFFMEExMzND
MTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdl
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NQcm94
eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNz
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1
MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTUxMThFOUE0MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVBy
b2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdl
UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nl
c3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMUY3RDNGMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDQwMUVC
MUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2Vj
SXRlbVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNlY0l0
ZW1TaGltTGlicmFyeS5oOyBwYXRoID0gLi4vLi4vV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1M
aWJyYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTQ3LDYgKzMxNjYsNyBA
QAogCQk1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8q
IFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEUxMkE4
ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhGMTJBODgzODgwMDYy
OTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OTAxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRp
Y2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzIxNyw2ICszMjM3LDggQEAKIAkJNTE3Q0YwRTExNjNBNDg2QzAw
QzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvQ2FjaGVTdG9yYWdl
RW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyog
UGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hp
bS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBTaGltLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIg
LyogV2ViQ29udGV4dE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViQ29udGV4dE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3
MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMyMzYsNiArMzI1OCw3IEBACiAJCTUxQTU1NjAwMTI4QzZEOTIwMDlBQkNFQyAv
KiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTFBNTg3N0UxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJREJSZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3RjFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQlJlc3VsdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyog
UGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUGF5bWVudFNlcnZpY2UueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTcyOERDMUIxQkFEMkQwMDEw
MkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFEIC8qIExv
Z2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2luZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGNDEyNUJGOEQ0MDA4QUVCMUQgLyogTG9n
Z2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnaW5nLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyOTUsNiArMzMxOCwxMSBAQAogCQk1
MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTFFMzUxQzgxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0
aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJVdGls
aXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzNTFDOTE4MEYyQ0ND
MDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElEQlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFG
QTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGF5bWVudFByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUz
NTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGF5bWVudFByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkMx
ODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1l
bnRQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUz
NTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyog
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFF
Mzk5MDUxRDZGNTRDNTAwOUM4ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVSUdhbWVwYWRQcm92aWRlckNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE1RjFGMjkzNTUxMDBGRDM0
MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
SU9TLm1tOyBwYXRoID0gaW9zL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFn
ZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNjExRjI5MzVDRDAw
RkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0NDksNiArNDQ3Nyw3IEBACiAJCUUxRTU1MkMz
MTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAw
Q0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVu
dFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQ
YXltZW50UHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1
OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRy
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVF
bnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQw
MEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00NjIxLDYgKzQ2NTAsNyBAQAogCQkJCTFBMUQyMTE2MTkxRDk5NUMwMDAxNjE5
RiAvKiBwb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaCAqLywKIAkJCQlCQzJFNkU3NDEx
NDE5NkYwMDBBNjNCMUUgLyogUGxhdGZvcm0gKi8sCiAJCQkJMUFBRERGNEIxMEQ4MkFGMDAwRDNE
NjNEIC8qIFNoYXJlZCAqLywKKwkJCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVu
dFByb2Nlc3MgKi8sCiAJCQkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAq
LywKIAkJCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKIAkJCQk1
MTBDQzdEQTE2MTM4RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCkBAIC00ODI2LDYg
KzQ4NTYsNyBAQAogCQkJCTQxRDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAvKiBOZXR3b3JrLU9TWC1z
YW5kYm94LmVudGl0bGVtZW50cyAqLywKIAkJCQk1QzdBQ0ZEMTIxOEREOEJEMDA0Q0JCNTkgLyog
TmV0d29yay1PU1guZW50aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEyNzhG
RSAvKiBOZXR3b3JrU2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQk1MUE2MEIyOTE4MENDRDkwMDBG
M0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8sCiAJCQkJQTFFREQyREIxODg0Qjk2
NDAwQkJGRTk4IC8qIFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnICovLAogCQkJCUJDODI4M0Yy
MTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnICovLAogCQkJCUJD
ODI4M0Y0MTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnICovLApA
QCAtNDk4Myw2ICs1MDE0LDcgQEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0MDBERDdDNjggLyogR2Ft
ZXBhZCAqLywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJD
MTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJMzkxMzYwMkEyMTk1MTRCRDAw
NTY0OTJBIC8qIFBheW1lbnQgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAwODUyNDE4IC8qIFBs
dWdpbnMgKi8sCiAJCQkJMkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8qIFJlbW90ZUxheWVyVHJl
ZSAqLywKIAkJCQkxQUJGNDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0ZURhdGEgKi8sCkBA
IC02MjYzLDYgKzYyOTUsMjQgQEAKIAkJCXBhdGggPSBSZXNvdXJjZXMvbWFjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMzkxMzYwMkEyMTk1MTRCRDAwNTY0OTJBIC8qIFBh
eW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5
MTM2MDJCMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgKi8sCisJCQkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnQ7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkzOTJFOTQyQTIxOUEyRTg1MDA1MEY5ODIg
LyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgKi8sCisJCQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRzOworCQkJ
c291cmNlVHJlZSA9ICI8dW5rbm93bj4iOworCQl9OwogCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVD
NjkgLyogd2VicnRjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTY1ODIsNiArNjYzMiwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE3REQ1QkMx
ODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovLAorCQkJCTUxN0RE
NUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8sCisJCQkJNTEy
QTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4g
Ki8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJNTE4RThFRjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY2MzgsNiArNjY5
OCwyMCBAQAogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAw
NzMxNjU4IC8qIGlvcyAqLywKKwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVu
dFByb2Nlc3MuY3BwICovLAorCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
UHJvY2Vzcy5oICovLAorCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJv
Y2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIw
MEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMy
RjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2Fw
dHVyZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03MDYx
LDYgKzcxMzUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlB
NzhDQ0REODE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNi
ICovLAorCQkJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzLnNiICovLAogCQkJCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLywKIAkJCSk7CkBAIC03MTA5LDYgKzcxODQs
NyBAQAogCQkJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJ
CQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0
NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCisJCQkJMzkyRTk0MkEy
MTlBMkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERC
MTM3MSAvKiBQbHVnaW5zICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9y
YWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywK
QEAgLTcyNzEsNiArNzM0Nyw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1h
YyAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkz
MUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKKwkJCQk1MTdERDVC
QjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUFFRkNDMDUxMUQwMUYzNDAw
ODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0MjAwMDZFM0ZFIC8qIFJl
bW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBCNjM5MEMgLyogVXNlckNv
bnRlbnQgKi8sCkBAIC04MzcwLDYgKzg0NDcsMTAgQEAKIAkJCQk1QzBCMTc3NTFFN0M4NzlDMDBF
OTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCiAJCQkJMUEyRDg0Mzcx
MjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFG
Mjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREEyOUEyNTFDQkVCNjdB
MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RB
MjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCkBAIC04Njg5LDYgKzg3NzAsMTQgQEAKIAkJCW5hbWUgPSBQREY7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZFRjM5QjE5MEY3OTFDMDA3
MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8s
CisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MTU5LDYgKzkyNDgsOSBAQAogCQkJCTFBQzc1
MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQThCNjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5
cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUx
MThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0
TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBE
RktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4RkIwMjE4OTEyNjQwMDI1QTg4
RCAvKiBQZW5jaWxLaXRTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtMTAxNTIsNiArMTAyNDQsNyBA
QAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUUx
N0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNz
LnNiIGluIFJlc291cmNlcyAqLywKKwkJCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29t
LmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUx
NkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAq
LywKIAkJCQk0MTRERDM3OTIwQkY0M0Y1MDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdp
bi5ncGM2NC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgz
IC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAqLywKQEAgLTEwNzYxLDYgKzEw
ODU0LDExIEBACiAJCQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVj
dE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyog
TlBSdW50aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZB
RDQwMEY0OTNGRCAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1
MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4g
U291cmNlcyAqLywKKwkJCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QUExRjI5NTk3
NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0Ew
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWU3ODg5NjQ4Nzli
OWI5NzZkYjQ5YWUwM2VhMmQ1YmEwZDQ2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisKKworI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdl
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0aW9u
LT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpOworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJiZTIwYWJmNmJkMzQ2YzZiMWRjMmU3MTVlMzEwZWQz
ZDVmMzI1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXlt
ZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV1Nl
cnZlci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQ
Qzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRl
KElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOworICAgIAorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigp
IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQ
Qzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAg
IC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAg
ICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJu
IDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5oCmluZGV4IDJiZmFlZTQ3NmUxZjRiY2NjZGIyNjYwZmU1ZDhlNjZiZDY3NGEz
ZDcuLjVkZmM1NTUwMGM1NjkzODE0NWNiNjNiZjc2ZDVkOGI3NjkzOTBhMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVn
aXN0cmF0aW9uUHJvbWlzZShjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JikgZmluYWw7CiAKICAgICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpvYihjb25zdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworICAgIHZvaWQgc2NoZWR1bGVQYXltZW50Sm9iKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKICAgICB2b2lkIHJ1bk9yRGVs
YXlUYXNrRm9ySW1wb3J0KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2spOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzBjZThlYTRlZWU4MDk2ZTA0YjNl
ZTY3ZDFmNGNmMjEyNzM1MGRhYy4uOTUxZWZlYmM4NmM4ZGU5Y2VmZDk1ZmYwY2M0ZWNjZGQ4NzEy
YWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiAr
NDMsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2Fn
ZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlVzZXJE
YXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUg
IldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAjaW5jbHVkZSAi
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUg
IldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTEyMTcsNiArMTIyMywzMSBAQCBXZWJM
b2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAgIHJl
dHVybiBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
Cit2b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVCht
X3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
UEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRD
b25uZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklk
ZW50aWZpZXIpLCAwKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
aWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlm
aWVyKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29u
bmVjdGlvbklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
CiB2b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAxODdlYTQwZGU3ZTFkNDk0
YTkyN2E0Mjk3NjcwOGZjNTQ0ZWFmMDZmLi4zMWM2OWE1MDdhMGY2OTZjYjYzMjQyODc4NDBkYTk3
NGY0Y2JmMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4LDYg
Kzk4LDkgQEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3Mg
V2ViUGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0ZURh
dGFUeXBlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFn
ZUdyb3VwRGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2ViUlRD
TmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24mIGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGlu
aXRpYWxTZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAg
ICB2b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDMyLDYgKzQ0MCwx
MCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk+IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
cjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJm
NjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1
ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjg4LDYgKzI4
OCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05B
VklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFj
b3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7
CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5B
QkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1f
TkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDhjNTM1YzdmZjYzMDdjOTU1ZmE5NzcxMjEzMDQ4OGU0YWE4OGNlOTYuLjU1ZjY3N2MwMjRl
N2E4ZWM2ODJjYTI4MGFiYmE2MWRiNDUyNjA2MWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMS0xNCAgWmFt
aXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mg
c3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nl
c3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE4
LTExLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRkIFNQSSB0byBzaG93IGEgc2FmZSBicm93c2luZyB3YXJuaW5nCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4z
MGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29j
b2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVf
UEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BM
VUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpp
bmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0Li5jMzQ2YWJmZDYy
MGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBD
aGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUgc2hhcmVkIHByb2Nl
c3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3ZSdyZSBhYm91dCB0
byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVkUHJvY2Vzc1Bvb2wg
PSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAgRVhQRUNUX0VRKChw
aWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwog
ICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vz
c0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRl
ZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVYUEVDVF9UUlVFKFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDp0YXJnZXRVUkwu
cGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3Bh
eW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFy
ZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KaW5kZXggNjFkZGJjM2Q2M2E5ZWE4N2MyNmVjYTBkMWJmZDY2Nzc2NTczMDkxNi4uZTY0
MDNlOWUwZmY2ZWFiZGE5ZWNlMGYyOWNmZmE2NWU1NTVjZGM4NyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KQEAgLTEwNDYsNiArMTA0Niw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VX
b3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5bWVudCBwcm9jZXNz
IGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUg
c2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCku
Y29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJt
ZWQpOwogCkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHBh
eW1lbnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3LmdldCgpLmNv
bmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7CisKICAg
ICAvLyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBoYXMgc2VydmljZSB3
b3JrZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0
ZURhdGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAppbmRleCA4ZGI1NjkwYjM5NDMxMDk0YjUzNThkMGQyYWZiODc2OTlk
MjA2ZGEwLi5kNjJjNjBmNzhjYzUzMGEzNWFjNzNhZThhNDg0ZDU2MDhiMTE3ZDdmIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMzMyw2ICszMzMsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1
bm5lciB7CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVu
dFByb2Nlc3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZENhbmNlbENs
aWVudFJlZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA1ZGE1NDZhZWQ1ZTdmN2UzNTk1ODNkZDg5YTgy
MmI0MGU1Y2NjZjc0Li5jOWQwNmU5NWNjYjc5NGY2YjlkYzY0YmYzYTlmMjczYjgxNTcxNTdhIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKQEAgLTEyNTUsNiArMTI1NSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNN
ZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFn
ZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwog
c3RhdGljIHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1
bnNpZ25lZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGU4
YmE5N2Y3MTY4NGRmY2EwNzc1NzNjY2FiYzEzY2U2NDM0MDJmYjEuLjdlNjUyYzUzZWU1YWQ0NmNm
ZTY1YWZlNzA5M2U4YTFiOWE2NTg5NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDYsNiArNDQ2LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWlu
YXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVlUmVm
KTsKICAgICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjaygp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkNGU4MThl
ZjIxNWIzYzY2MzU5Zjg4NDY1MjcxZjBjZTA4MjNjZWUxLi44YmRiZDRjNzVkODExOTI3NjQ0NTgy
MDMzY2M2MzZiYTMyMGQ0OGM5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcApAQCAtMTA3NCw2ICsxMDc0LDE1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVy
OjpuZXR3b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250
cm9sbGVyOjpwYXltZW50UHJvY2Vzc05hbWUoKQoreworI2lmIFBMQVRGT1JNKEZBTUlMWV9JT1Mp
CisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbHNlCisgICAgcmV0
dXJuICJQYXltZW50IHByb2Nlc3Mgbm90IGF2YWlsYWJsZSBvbiBhbnl0aGluZyBidXQgaU9TIjsK
KyNlbmRpZgorfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZShib29sIGFsbG93cykKIHsKICAgICBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZUZvcldlYlNvY2tldFRlc3RpbmcocGxhdGZvcm1Db250ZXh0KCksIGFsbG93cyk7CkBAIC0x
NTA4LDYgKzE1MTcsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRD
cmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2wKICAgICBzdGF0aWNfY2Fz
dDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+bmV0d29y
a1Byb2Nlc3NEaWRDcmFzaCgpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJv
Y2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpLT5wYXltZW50UHJvY2Vzc0RpZENyYXNoKCk7Cit9CisKIHZvaWQgVGVzdENv
bnRyb2xsZXI6OmRpZFJlY2VpdmVLZXlEb3duTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0Rp
Y3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBib29sIHN5bmNocm9ub3VzKQogewog
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJLZXkiKSk7CkBAIC0xODQxLDYgKzE4NTUsMTMgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiAgICAgZXhpdCgxKTsKIH0K
IAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpCit7CisgICAg
cGlkX3QgcGlkID0gV0tDb250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKG1fY29udGV4
dC5nZXQoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxu
IiwgcGF5bWVudFByb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOworICAgIGV4
aXQoMSk7Cit9CisKIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKIAogdm9pZCBUZXN0Q29udHJv
bGxlcjo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVm
IG5hdmlnYXRpb24sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTI2NDAs
NiArMjY2MSwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
UHJvY2VzcygpCiAgICAgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MocGxh
dGZvcm1Db250ZXh0KCkpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcygpCit7CisgICAgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MocGxh
dGZvcm1Db250ZXh0KCkpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpCiB7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNjI1YTViNTQ2NTkyMmM3
YmFmZDk0YjdhY2M4MTI3NjU3YjhiYzkxZi4uN2YwZjc1YjRkYmFmNWQ5MWNmNDUwNjc5MTU2NTQz
NWZjMzVmODQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAt
MTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogd2ViUHJvY2Vz
c05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogbmV0d29ya1Byb2Nlc3NOYW1lKCk7CiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGRhdGFiYXNlUHJvY2Vzc05hbWUoKTsKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogcGF5bWVudFByb2Nlc3NOYW1lKCk7CiAKICAgICBXb3JrUXVldWVNYW5hZ2Vy
JiB3b3JrUXVldWVNYW5hZ2VyKCkgeyByZXR1cm4gbV93b3JrUXVldWVNYW5hZ2VyOyB9CiAKQEAg
LTI1Miw2ICsyNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9j
ZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZv
aWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lv
bkNyZWRlbnRpYWxzKCk7CiAKQEAgLTM1Nyw2ICszNTksOCBAQCBwcml2YXRlOgogICAgIC8vIFdL
Q29udGV4dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tD
b250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNo
KCk7CisgICAgc3RhdGljIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYs
IGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKIAogICAg
IC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXROYXZp
Z2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5k
ZXggYjhmY2Q1N2I4NzU5YWFkZjNjZDczZDk5NjFmNTA3YmI4ZWU0NGI4Yi4uMGM0ZjZhOWNlYzM3
YjM3MDU4MzMxNGZmYzgwOTJlZTg0MDVhMTNmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0NTMsNiArMTQ1MywxMiBAQCBXS1JldGFpblB0cjxXS1R5
cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUlu
amVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIikpIHsKICAgICAgICAg
QVNTRVJUKCFtZXNzYWdlQm9keSk7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354885</attachid>
            <date>2018-11-14 19:10:36 -0800</date>
            <delta_ts>2018-11-15 00:46:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181114191035.patch</filename>
            <type>text/plain</type>
            <size>137400</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmI2ODgzZjcxNmM0ZGZhOTU3OThkYzBlYjNiZmZmYjYxNjAyNjE2Li4yNGRlZDM4OTdjMDA3MjFk
NmQ3OWQ5MWI4Y2NkMzEwNGE3ZDhmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhc3MgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9kaXNjb25uZWN0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjM2FhYzBhZTZkZTBkOGVmY2MyMjhkNmJiZTVlM2YyZTk0
ZTU2ODI5Li42NmJmYTMzM2VhYmNiZDI2ODUwNTg4NmY3Mzk2MDQwZGM3N2RjMTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0xNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIENvZGUgcXVhbGl0eSBjb25jZXJucyBy
YWlzZWQgZm9yIDE5MTI5MTogW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYTc5NGYyMTIxMzU2Y2E0MDdhODYzZGExZWI5YTJkZDhlOWM4M2RlYi4uZjMwMzI4MDYyMWY1
MmZiMDFkMmVlNjlmNGNlNTNjOTViZDg4OWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZTVmMmNmMmZkYmM5YTg2Y2Q2MDZm
Mjg4ODNiYTljZGUxM2QzMi4uOGU1NTAwMGM0MzIwMzQ0OWMxNDE0OWMzNGRhNWJmYWQxNGIwYTM2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzog
QWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1l
bnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQ
VUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BV
TW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJl
VG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0Fs
bExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1v
cnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlh
RGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEg
cmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNDU2Nzg4M2M4ODMyYTU3MzI2ZGNmNzYwNDM4MDFhMmY5ZWRjYjc0ZS4uMjM0
MTk0ZjYzMmNmOTNmNjRiZmJhNjA4Y2M5NTAyMTYxOWE2ZTZlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBj
b25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2
NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4
MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4
OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEw
MjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1Yzhj
ODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4ZjFmNjc2
NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMiID0gIiVA
IFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50IiA9ICIl
QCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFh
ZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEzODg2YjVkNDhiNjZkMzFm
MDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3MiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJVF9ESVJ9
L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAgICIke1dF
QktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Qcm9jZXNz
IgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2FtZXBhZCIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCkBAIC00
NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
CiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgorICAgIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyMSw2ICsyMjks
MTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQogCitzZXQo
UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisKIHNldChQbHVnaW5Qcm9j
ZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2JiYjAxMmEzOWU2NWRhOGJh
OGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRjZmRiMjA2YTRkNjNjZjNl
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNj
b25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJFRElDVElPTltzZGs9bWFj
b3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVMgPSAkKFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BSRURJQ1RJT04pKTsKIFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9QUkVESUNUSU9OOwogCitX
S19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJW
SUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9TRVJWSUNFX05BTUUpKTsK
IFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19TVE9SQUdFX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8gPSBj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYzYTM3NGUwZjVkOGFiYzVkMzg0MmQ5YmUwNmFkNzAzZGIxNGYwOTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
CkBAIC0wLDAgKzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8g
YXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorLy8gICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKy8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisvLyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorLy8gUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorLy8gT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyNpbmNsdWRlICJCYXNlWFBDU2VydmljZS54Y2NvbmZpZyIKKworV0tfUEFZTUVOVF9FTlRJ
VExFTUVOVFNfUkVTVFJJQ1RFRF9OTyA9IDsKK1dLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RS
SUNURURfWUVTID0gQ29uZmlndXJhdGlvbnMvUGF5bWVudC1PU1gtc2FuZGJveC5lbnRpdGxlbWVu
dHM7CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1F
TlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVO
VFMpKTsKK09USEVSX0NPREVfU0lHTl9GTEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NP
REVfU0lHTl9GTEFHUyk7CisKK1BST0RVQ1RfTkFNRSA9ICQoV0tfUEFZTUVOVF9TRVJWSUNFX1BS
T0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUp
OworSU5GT1BMSVNUX0ZJTEUgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZDY3
ZDQ4YzY0ZDcyOWJjZmVlODBmNWFjNDBmNGU3YzNlYmM3NzMyNC4uM2ZhOGZmN2U3MWRiYmQ2ZGZl
NDlmNTI1NzI2NWIwYmY4MjgzZDE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
MzAsNiArMzAsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL3dl
YnJ0YyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIgXAogICAgICQo
V2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlciBcCisgICAgJChXZWJLaXQyKS9Q
YXltZW50UHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Qcm9jZXNzIFwKICAgICAkKFdl
YktpdDIpL1BsdWdpblByb2Nlc3MvbWFjIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5z
IFwKQEAgLTczLDYgKzc0LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3Mv
TmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL1BheW1lbnQgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdp
bnMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvU3RvcmFnZSBcCkBAIC0xMjEsNiArMTIzLDEwIEBAIE1FU1NBR0Vf
UkVDRUlWRVJTID0gXAogICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0gXAogICAgIFBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIgXAogICAgIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSBcCisgICAgTmV0
d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgXAorICAgIFBheW1lbnRQcm9jZXNzIFwKKyAgICBQ
YXltZW50UHJvY2Vzc1Byb3h5IFwKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiBc
CiAgICAgUGx1Z2luQ29udHJvbGxlclByb3h5IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFByb2Nlc3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNzU3NDRmNjIyMzIyNjExOTY3ZjZj
ZDk3ZjY5NTk3ODZhZTMxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNz
OjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vz
cz4gcHJvY2VzczsKKyAgICByZXR1cm4gcHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBh
eW1lbnRQcm9jZXNzKCkKK3sKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcygp
Cit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRU
ZXJtaW5hdGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q2hp
bGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMWFlN2NhNGFhOWZmZTM3Y2ZhMGI4NmJkMTc5OGM4NWEwMzUzZTA0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
UHJvY2Vzcy5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjsKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczsKKworY2xhc3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVy
RGVzdHJveWVkPFBheW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFBy
b2Nlc3MmIHNpbmdsZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJv
Y2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2Vzcygp
OworCisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNzKCk7
CisKKyAgICAvLyBDaGlsZFByb2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3Zl
cnJpZGU7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisK
KyAgICAvLyBNZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmKTsKKyAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWU3NmM0MjE3MDU2MDhlNjViNzFhMWQ5MGRjNmM2ZTU0ZDAzNTM5ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVu
dFByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgeworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZmZk
NzExMjc2ZGZkZTk2YTVkMzJjNDlmOGUwMTc5ZGJlNmM2YjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVT
ZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8g
RklYTUU6CisgICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlz
cGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRy
dWUpCisgICAgLy8gdG8gZm9yY2Ugc3luY2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBh
cyBhc3luY2hyb25vdXMgbWVzc2FnZXMgaW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3
aXNlLCB0aGUgV2ViUHJvY2VzcyB3b3VsZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQ
QyB3aGlsZSB3YWl0aW5nIGZvciBhIHN5bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20g
dGhlIHBheW1lbnQgcHJvY2Vzcywgd2hpY2ggd291bGQgYmUgdW5zYWZlLiBJbnZlc3RpZ2F0ZSBp
ZiB3ZSBuZWVkIHRvIGNhbGwgdGhpcy4KKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKwor
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246On5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9u
KCkuZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
Cit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBVTlVTRURfUEFS
QU0oY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBV
TlVTRURfUEFSQU0obWVzc2FnZVJlY2VpdmVyTmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKG1lc3Nh
Z2VOYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVO
VChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJi
YzAxZmFmODVhNWU1NTFjYWRiZTY3OGU5MzFiOGM0YmRiZjJmMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRl
IElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7
CisgICAgflBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJp
dmF0ZToKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFt
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRy
KCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTg0MzIyNTk2NjI2OTM1OTM5MTZlM2Q5NGNhOTU0ZmQ1MDk3OWE2YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
IyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K21lc3NhZ2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVy
IHsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9p
b3MvUGF5bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lv
cy9QYXltZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTZhYWViNTZiMjRjMGEzNmNmZTY3
MTUyOGQ5ZmNlZmFlZDY4OWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgi
CisKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1w
b3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxF
X01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxp
emVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRl
cnMpCit7CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVl
ZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVu
dCBidW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVu
ZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJv
eFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUg
cGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2Ii
XSk7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5k
Ym94UGFyYW1ldGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMv
aW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTk5MmM1N2Y5NTNhM2U5OWE2MGMzNDUxODgxZjQ0ODRhM2QzMzNjYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDMyIEBACis7IENvcHlyaWdodCAo
QykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKzsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0
ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUt
cmVhZC1tZXRhZGF0YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1sb29r
dXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVuKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAppbmRleCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdh
NjFmZmFiZGYzNzY5Li41ZDBjYzZlMmY1NGQzNjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6
CiAgICAgICAgIFdlYkNvbnRlbnQsCiAgICAgICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3MzcwOTczNDAzZDQ2MzQwOGVkNjNiYmNl
ZjQ1NjNiZDAwOTk4MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
YXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycygpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBzZXNzaW9uSUQ7Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiByZXN1bHQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lv
bklEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFjODYzYzAwYThhNDA3MDEz
NTEyY2EyMzFjMDU1ODM1MTdiOWVlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCww
ICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAq
LworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNv
ZGVyOworY2xhc3MgRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMoKTsKKworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYpOworCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BS
T0NFU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxl
UGF0aC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5k
ZXggMmNlNzE2ZTRjNzJlNTgyYWJlMzBmNDg3OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3
MjRlYWI1MjhiNGY2NzAxNzkxZjBjZTlhYWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAgLTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRh
YmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3Jr
UHJvY2VzcygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJs
ZVBhdGhPZlBheW1lbnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDg3NjZkZmQzMDIwOTYzMWQzOThhNTM5ODM4Y2VhOWZj
MDRhODc3ZmEuLmVhYTJjM2U2NzUzZTNiOThhODRiZmM1M2ViYjA4Mzg1MWFkYzY5YjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dApAQCAtNzksNiArNzksOSBAQCBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtE
YXRhVGFza1JlcGxheS5jcHAKIAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVn
aXN0ZXIuY3BwCiAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcAorUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisKIC8vIFRPRE86IFdlIHNo
b3VsZCB1bmlmeSB0aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92
ZWQuCiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAg
QG5vLXVuaWZ5CkBAIC0yMDcsNiArMjEwLDggQEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCUmVzdWx0LmNwcAogCiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorU2hh
cmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIC8vIFRP
RE86IFRoZXNlIGZpbGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2Vz
czIgaXMgcmVtb3ZlZC4KIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwIEBuby11
bmlmeQogU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwIEBuby11bmlm
eQpAQCAtMzgwLDYgKzM4NSw4IEBAIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmNwcAogCitVSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCiBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
TWFuYWdlci5jcHAKQEAgLTQ4MCw2ICs0ODcsOCBAQCBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ1NvY2tldC5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKwogLy8gVE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJl
IHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGVjYzgyZDFhOGNlNDY3NWFjMWE0ZjZlZDcwNGI2YjI0MjhkOTc1MjguLmRiYzJhODVhNzE1OWFj
YTBkYjBkZDYzMDgxNTZjZDFmZDg3YjhkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4
Myw2ICsxODMsOCBAQCBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMv
V2ViSGl0VGVzdFJlc3VsdERhdGEubW0KIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMu
bW0KIAorUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCisKIFNoYXJlZC9Q
bHVnaW5zL21hYy9QbHVnaW5TYW5kYm94UHJvZmlsZS5tbQogCiBTaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDA0MDFlNzJiNGM2ZjVlNGU1OWRkOGNhYjQw
YjY2NDM1ZDRmNThmYjkuLjdiZjNmNWExMmM5N2VjYTc5ZGI3NDBlNjljNDVkZmM5ZWE0YWJiOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNjIx
LDExICs2MjEsMjcgQEAgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vz
cyhXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKIH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JU
ZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vz
c0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vz
c0lkZW50aWZpZXIoKTsKIH0KIAorUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNz
SWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNz
SWRlbnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorfQorCiB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0Nv
bnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJpbmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBu
YW1lUmVmLCBXS0FycmF5UmVmIG1pbWVUeXBlc1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVm
KQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IDQ2ZDM3ZTFlOGExNTg5
NTgwYTM1NTM4ZWU1ZjZmOWJjMmQ4MGUyMmMuLjFmMWU4NzM5ZDMyZWQ3NmQ1MTcxMWM2YmQ3YmVh
MDY5NDEzZjk0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHRQcml2YXRlLmgKQEAgLTkyLDYgKzkyLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0
U2V0VXNlc05ldHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiAKIFdLX0VYUE9SVCB2
b2lkIFdLQ29udGV4dFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZik7CiBXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRl
eHRSZWYpOworLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJP
Q0VTUyBpcyBFTkFCTEVECitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50
UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcoV0tDb250ZXh0UmVmLCBib29s
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
U2VydmljZVdvcmtlclRlc3RpbmcoV0tDb250ZXh0UmVmLCBib29sKTsKQEAgLTExMiw2ICsxMTQs
NyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJl
ZiwgV0tBcnJheVJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2
ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCk7CiAKIFdLX0VYUE9S
VCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250
ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1l
bnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCB2
b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tT
dHJpbmdSZWYgZG9tYWluLCBXS1N0cmluZ1JlZiBuYW1lLCBXS0FycmF5UmVmIG1pbWVUeXBlcywg
V0tBcnJheVJlZiBleHRlbnNpb25zKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyU3Vw
cG9ydGVkUGx1Z2lucyhXS0NvbnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IGNmMjgxMWU4YjNh
Y2FhYjBkMDgxZTA4ODJjYmZkODNjN2Q1ZGQ1Y2UuLjBmMzIxMjhhMmYzZGE4NTU2ZjQ0NGQ3NDlj
YjUzOTI3ODUwODE2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MjQsNiArNDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFy
U3VwcG9ydGVkUGx1Z2lucwogICAgIF9wcm9jZXNzUG9vbC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5z
KCk7CiB9CiAKKy0gKHZvaWQpX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzCit7CisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKyAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisK
IC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT50
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpAQCAtNDQ0LDYgKzQ1MSwxNSBAQCAtIChwaWRfdClf
bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXIKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiBfcHJvY2Vz
c1Bvb2wtPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gKHBp
ZF90KTA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogLSAodm9pZClf
c3luY05ldHdvcmtQcm9jZXNzQ29va2llcwogewogICAgIF9wcm9jZXNzUG9vbC0+c3luY05ldHdv
cmtQcm9jZXNzQ29va2llcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCA0ZDNhMTkxMjBhYmQ0OWVl
ZTA0OTI3OTRhNzdmNGFmYjA2Y2RlOTBjLi4wYjk5OWU4NjRhOTE5YWM1OGM5MDE5Yzg0NjNlNjA3
YzVmMzdlY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAtODQsMTIgKzg0LDE2IEBACiAtIChfV0tE
b3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRhOihOU0RhdGEgKilyZXN1bWVEYXRhIHBh
dGg6KE5TU3RyaW5nICopcGF0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkg
d2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgorLy8gTk9URTogVGhp
cyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistICh2
b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQ
cm9jZXNzOwogLSAodm9pZClfdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9kaXNhYmxlU2Vy
dmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLy8gVGVzdCBvbmx5LgogLSAocGlkX3QpX25ldHdvcmtQ
cm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4w
KSk7CisvLyBOT1RFOiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gUEFZTUVOVF9QUk9DRVNT
IGlzIEVOQUJMRUQKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTEuMykpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nl
c3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmlu
ZGV4IDg3YjBiYmVjODEzMDNhNzVjODVlMmE4Y2JjMzBlN2FjMjJkODNkY2UuLjZkNjZlYzMxYWZm
NmVkYzFhNDFmNjg0ODMyNTIzY2Q4N2U2YmQyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1
YmxpYzoKICAgICAgICAgUGx1Z2luNjQsCiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJv
Y2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDNiNDYxNjM0ZTg1MTczOWQ2OTVkMDU1NWJlNTRkNjli
NDg0NjA2NDguLjU3MmNlNDkwZTBjYTUxNWRhMjBhN2Y3YTJjODg3OTY5MTA2M2M1MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQpAQCAtNjIsNiArNjIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNl
cnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0
aW8KICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAg
ICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NU
eXBlOjpQYXltZW50OgorICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMi
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJv
eHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI5MmYxYWQ2Zjk5YmRiNDdhNzU0OThkYTZmMDk3N2YxM2M5MDY0
Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9Q
YXltZW50UHJvY2Vzc1Byb3h5LmNwcApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUg
IldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgdWlu
dDY0X3QgZ2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQoKQoreworICAgIHN0YXRpYyB1
aW50NjRfdCBjYWxsYmFja0lEOworCisgICAgcmV0dXJuICsrY2FsbGJhY2tJRDsKK30KKworUGF5
bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJv
Y2Vzc1Bvb2wpCisgICAgOiBDaGlsZFByb2Nlc3NQcm94eShwcm9jZXNzUG9vbC5hbHdheXNSdW5z
QXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wp
CisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKK3sKKyAgICBjb25uZWN0
KCk7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KCkKK3sK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKK3sK
KyAgICB0ZXJtaW5hdGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVu
Y2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykK
K3sKKyAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9j
ZXNzVHlwZTo6UGF5bWVudDsKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9u
cyhsYXVuY2hPcHRpb25zKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNz
V2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlRf
VU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Cit9
CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1By
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47
CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92
ZShyZXBseSkpOworCisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5jaGluZykgeworICAg
ICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMrKzsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihpc1NlcnZp
Y2VXb3JrZXJQcm9jZXNzLCBzZWN1cml0eU9yaWdpbiksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlz
cGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQoreworICAgIGF1dG8g
cHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bvb2wpOworCisgICAgLy8g
VGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0ZWQsIHNvIHNlbmQg
YW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAgd2hpbGUgKCFtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXBseSA9
IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIH0KKyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91
dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4K
KyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQ
cm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpB
dHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9j
ZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgaWYgKCFJUEM6OkNv
bm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAg
ICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFudXAgaGVyZS4KKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0
aW9uUmVxdWVzdHM7ICsraSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6
OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKKyAg
ICAKKyAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxM2Y1MmJhNzYxMmRhYTNjMjNjYjAxNDVmMTYxMjUwMzg1NmQyNjgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXlt
ZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nl
c3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nl
c3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5
cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHkgZmlu
YWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFBh
eW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAgICB+UGF5bWVudFByb2Nlc3NQ
cm94eSgpOworICAgIAorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworCisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0
aW5nKCk7CisKK3ByaXZhdGU6CisgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdl
dExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRl
OworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92
ZXJyaWRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRs
ZXJzCisgICAgdm9pZCBkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25z
dCBJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50Cisg
ICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nl
c3NQb29sOworCisgICAgdW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOwor
ICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6RGVsYXllZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMv
UGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGVmZmJiNTgyOWNh
MDY2ZTVlYjM0YzFjN2U0OTZlN2EzZjM4NmU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CisgICAgRGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2
NjM5NzQxZDU3NS4uYmVjNzliNTRjYmY2YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQg
KzQ2LDExIEBAIHZvaWQgV2ViQ29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChX
ZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NE
aWRDcmFzaCh0b0FQSShwcm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50Ojpw
YXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAg
ICAKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRl
eCA4MGMzMTEyMmMwNzc2ZDRlZThkNzc4ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhm
MjM4ZjFkNmY4YWJmMWFiOWVkY2M4NDUzOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dENsaWVudC5oCkBAIC00NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xp
ZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoK
ICAgICB2b2lkIHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bv
b2wqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRD
cmFzaChXZWJQcm9jZXNzUG9vbCopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4
YmEzMmE2MGM3NTgyNzQ5MzRmYTYuLjJjNmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlh
MTI3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBw
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1l
bnQuaApAQCAtMjksNiArMjksMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3
b3JrUHJvY2Vzc1Byb3h5OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXlt
ZW50UHJvY2Vzc1Byb3h5OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNs
YXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1
OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3Jr
UHJvY2Vzc1Byb3h5KikKICAgICB7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1By
b3h5KikKKyAgICB7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAK
ICAgICBXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nl
c3NQb29sOyB9CiAgICAgdm9pZCBjbGVhclByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0g
bnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmlu
ZGV4IGM4MmFmY2YzNWEyMjQ5ZGUwMDIwOWQ0NWNjNDBkNmYzOTI3ZjBkMzMuLjI4YmE5YWQzZGFk
ZDc1NzM0MjM5MDMwYzFhMzAzNmIyNmIxM2UyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNp
bmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisj
aW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2lu
Y2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC00NDIsNiArNDQ2LDkgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewog
ICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZl
TWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1By
b2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZl
bnQoaXNDcml0aWNhbCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRv
UGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVBy
ZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01h
bmFnZXI6OnNpbmdsZXRvbigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwog
I2VuZGlmCkBAIC02MDcsNiArNjE0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQ
cm94eSwgV1RGTW92ZShyZXBseSkpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBpZiAo
IW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+KCp0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVw
bHkmJiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVu
dFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdU
Rk1vdmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzUHJveHkpCit7CisgICAg
QVNTRVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1Byb3h5
ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50
IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vzc0Rp
ZENsb3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFByb2Nl
c3NEaWRDcmFzaCh0aGlzKTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAgICAg
ICBtX2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFByb2Nl
c3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hX
b3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94
eSYgcHJveHksIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlv
bmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQpCiB7CkBAIC02ODMsNiArNzIwLDkgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChib29sIHByaXZhdGUKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0
cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vz
c2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgfQogfQpAQCAtMTMzMiw2ICsxMzcyLDE1
IEBAIFZlY3RvcjxTdHJpbmc+IFdlYlByb2Nlc3NQb29sOjphY3RpdmVQYWdlc09yaWdpbnNJbldl
YlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJCiAgICAgfQogICAgIHJldHVybiB7IH07CiB9Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5
bWVudFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBh
bHdheXNVc2VDb21wbGV4VGV4dCkKIHsKQEAgLTE2MDMsNiArMTY1MiwxNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKICAgICBpZiAobV9uZXR3b3JrUHJv
Y2VzcykKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKSwgMCk7CiB9CisgICAgCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzRm9yVGVzdGluZygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3BheW1lbnRQcm9jZXNzLT50ZXJtaW5hdGVGb3JUZXN0aW5nKCk7
CisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29ya1By
b2Nlc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXgg
NTUzZGFjNWU0MWY4NmUwYzdjNmJlN2FmMTc5ZTQ3YjFjMGU3ZTc2ZC4uMzIyYzA5NmQ3NWU4MjQ5
ODVkNzFhMGVkMzkxMTZiMTY1ZjRjNWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxl
ci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJT
dGF0aXN0aWNzUmVxdWVzdC5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVk
ZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRD
bGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgpAQCAtMTcz
LDYgKzE3NiwxMiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4gdm9pZCBzZW5kU3luY1RvTmV0d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBs
eSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vz
c1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICAvLyBTZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9yIFBh
eW1lbnRQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLgor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1l
c3NhZ2UpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nl
c3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdl
YlByb2Nlc3NQcm94eSopOwogCiAgICAgLy8gRGlzY29ubmVjdCB0aGUgcHJvY2VzcyBmcm9tIHRo
ZSBjb250ZXh0LgpAQCAtMjE3LDYgKzIyNiw5IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzSUQgbmV0
d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gYWN0aXZlUGFnZXNP
cmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9jZXNzSUQpOwogICAgIGJvb2wgbmV0d29y
a1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VH
cm91cCYgZGVmYXVsdFBhZ2VHcm91cCgpIHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQo
KTsgfQogCkBAIC0yNzYsNiArMjg4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55
U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVk
Q3JlZGVudGlhbHMoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVy
bWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9p
ZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2Vy
dmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCk7CkBAIC0zNDIsNiArMzU3LDEyIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nl
c3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICB2b2lkIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94
eSogcGF5bWVudFByb2Nlc3MoKSB7IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9Cisg
ICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFM
OjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBw
YXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZv
aWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdv
cmtQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRp
b25hbDxQQUw6OlNlc3Npb25JRD4pOwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7
CkBAIC02NDEsNiArNjYyLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNT
ZXJ2ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9j
ZXNzQ3Jhc2ggeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1By
b3h5PiBtX25ldHdvcmtQcm9jZXNzOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
c3RkOjp1bmlxdWVfcHRyPFBheW1lbnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNz
UmVxdWVzdHM7CkBAIC03NDIsNiArNzY2LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRU
b05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3Zv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQorewor
ICAgIGlmIChtX3BheW1lbnRQcm9jZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNz
YWdlKCkpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1l
c3NhZ2UpLCAwKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2Fn
ZSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3Mt
PnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNz
UG9vbDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxYzA1ZjM0OWU2NjY2NTY3
OGY4M2QyMTI3ODRiZjhmZmE2ZTg4YTk5Li4xYWE5MGFjYmM0MjhhZWM4ZjQ3NDQ1MDRjZjRkMWY0
MzllOTAzYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKQEAgLTYyMyw2ICs2MjMsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBt
X3Byb2Nlc3NQb29sLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUo
cmVwbHkpKTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNz
UHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFs
U2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdl
dFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92
ZShyZXBseSkpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAh
UExBVEZPUk0oQ09DT0EpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVi
dWdnZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApp
bmRleCA3YmViOTUxNjY1NTcyNjU0MTlkM2RhOTMyM2U0ODlhOTk0ZDBjZTM5Li4wODFmMWE0ZTM3
MGE1MzE1YWJkMzViNmNmM2Y2ZTVmNzRhMWExOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjg1LDYgKzI4NSw5IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNC
ZWluZ0RlYnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0
ZWRDb2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2YTk4ZjRlOTYwNDdkYWJmMTY0YTc2MTBhODdm
MmE5ZjY4NjBiNDhhLi44ZjVlMWQ2NjYwYjE1MGQ3NTczMGE2M2UxZjA5M2Q0M2Y2YTM2ZDI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0zNyw2ICszNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1
Z2luUHJvY2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJv
b2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAg
ICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25u
ZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25J
RCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQog
ICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBi
OTBjMTQyNDE3NmM2NTE1ZTdlZTRhNTYyMmI4ZWM2ZWJlMjZjMzgxLi5jZDVmY2MzMDhmYTY2MjZh
Y2JiYmNlZGI1OWMxNDdiZWFkM2ViNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQs
MTAgQEAKICNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdl
clByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Bvb2wuaCIKQEAgLTEzNSw2ICsxMzksOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vi
c2l0ZURhdGFTdG9yZSgpCiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdl
dChtX3Nlc3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCku
cmVtb3ZlKG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdl
YlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgeworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgICAgICAgICBwcm9jZXNzUG9vbC0+c2VuZFRvUGF5bWVudFByb2Nlc3MoTWVz
c2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihtX3Nlc3Npb25JRCkpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgICAgICAgICBpZiAoYXV0byogbmV0
d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAg
ICAgICBuZXR3b3JrUHJvY2Vzcy0+cmVtb3ZlU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgICAg
IH0KQEAgLTE2MjYsNiArMTYzMywxOSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAogICAgIGNh
bGxiYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGF5bWVudFByb2Nlc3NQYXJh
bWV0ZXJzKCkKK3sKKyAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOworCisgICAg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIHBhcmFt
ZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7CisKKyAgICByZXR1cm4gcGFyYW1ldGVyczsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiBXZWJzaXRlRGF0YVN0b3JlOjpwZW5kaW5nQ29va2llcygpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGNvcHlUb1ZlY3RvcihtX3BlbmRpbmdDb29raWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA4
NTJiNmJiNWQzNmZiYjZlOTU5OTJlODgyNDY4YjI2YmRkOTA3MTU5Li4zOTE4NjE0ODljMDNiN2Uw
Y2I4NTY3ZmI1ZWUzZWUyYWQxN2ZiZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Niw2ICs2Niw5IEBA
IGNsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0
ZURhdGFGZXRjaE9wdGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3Ry
dWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xNzEsNiArMTc0LDkgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vzc1Bvb2wmKSBj
b25zdDsKIAogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnMoKTsKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBwZW5kaW5nQ29va2ll
cygpIGNvbnN0OwogICAgIHZvaWQgYWRkUGVuZGluZ0Nvb2tpZShjb25zdCBXZWJDb3JlOjpDb29r
aWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGJlNDBkYmQ3ODE0NjQ2ZTc1ODE2ODQ4NmY1OWYzZTRlNTY3YTFjZDEuLjYwN2VkZDMw
Mjg4MzhkNmFlM2I1YTdiMjEyZjBkZGUyZTNkMDg3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ4LDYgKzg0OCw3IEBACiAJCTM3
RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4
MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9OwogCQkzN0ZDMTk0NzE4
NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4
NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5
NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUx
MEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9Owor
CQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5z
YiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzkxMzYw
MjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi87IH07
CiAJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8q
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNzE4ODdCRDk3MDAy
Nzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5
M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OwpAQCAtOTA2LDYgKzkwNywx
MCBAQAogCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUMwQzk3
OTFEREQ3ODU0MDAzMkNBRDMgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRkJCOUIxMjg4Qzk1RTAw
QUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAv
KiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTExOEU5QTgx
RjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE1MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJ
CTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNjFGMjk1
OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovOyB9OworCQk1MTE4RTlB
QTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlB
NzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CisJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCAqLzsgfTsKIAkJNTExRjdENDExRUIxQkNGNTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMuaCAqLzsgfTsKIAkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGli
cmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEx
RjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICovOyB9OwogCQk1
MTFGOEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjhBNzgxMzhCNDYwOTAw
QTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSAqLzsgfTsKQEAgLTk1Nyw2ICs5NjIsNyBA
QAogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1
MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0
ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5oICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODcxQjVB
MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9OwogCQk1MThBQ0FFQTEy
QUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNBRTkxMkFFRTZCQjAwQjA0Qjgz
IC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MThBQ0YxMTEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVk
ZW50aWFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxOEFDRjEwMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05ODQsNiArOTkw
LDggQEAKIAkJNTFERDlGMjgxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI2MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxREQ5RjI5
MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYy
NzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
cy5oICovOyB9OwogCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFDOTE4
MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi87IH07CisJCTUxRTM1MUZGMTgwRjVE
MEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVu
dFByb2Nlc3MuY3BwICovOyB9OworCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJNTFFNkMxNjQxRjI5MzVERDAwRkQzNDM3
IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNkMxNjExRjI5MzVDRDAwRkQz
NDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oICovOyB9Owog
CQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDU0
MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2MEUwMTY1NDMx
N0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIg
LyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMTU2OSw2ICsxNTc3LDcg
QEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJC
MzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9w
dXBNZW51LmggKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFu
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDVG
RTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKKwkJRTExNUM3MTQx
OTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8q
IFBheW1lbnRQcm9jZXNzSU9TLm1tICovOyB9OwogCQlFMTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcg
LyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdv
cmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5
RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNz
UHJveHkuaCAqLzsgfTsKQEAgLTI5ODAsNiArMjk4OSwxMSBAQAogCQkzRjQxOEVGNjE4ODdCRDk3
MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThFRjcxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzRjQxOEVGODE4ODdCRDk3MDAy
Nzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJ
MzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2Ig
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMkIyMTk1MTRCRDAwNTY0OTJBIC8qIFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5NDJCMjE5QTM5OUEw
MDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCQTE1ODkzRjYz
MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xv
clBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzEwMiw2ICszMTE2LDcgQEAKIAkJ
NEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRl
bVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBT
ZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
NTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGll
bnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMDMyRjFBMTgwRjc0RjEw
MDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNEY1QTExRjE5RDdDRjAwNENGODIxIC8qIENvb2tpZVN0b3Jh
Z2VVdGlsc0NGLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29v
a2llU3RvcmFnZVV0aWxzQ0YubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUy
MzcxMUM3M0QyMkIwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MjFDNzNEMzdCMDA3
OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CkBAIC0zMTI1LDExICszMTQwLDE1IEBACiAJCTUxMTBBRTBBMTMz
QzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJ
NTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExOEU5QTMxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQk1MTE4RTlBNDFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQ
cm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5
bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTFGN0QzRjFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGN0Q0MDFF
QjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNl
Y0l0ZW1TaGltTGlicmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTZWNJ
dGVtU2hpbUxpYnJhcnkuaDsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGlt
TGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE0Nyw2ICszMTY2LDcg
QEAKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIElu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1
IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhFMTJB
ODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RjEyQTg4Mzg4MDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODkwMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMTcsNiArMzIzNyw4IEBACiAJCTUxN0NGMEUxMTYzQTQ4NkMw
MEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0NhY2hlU3RvcmFn
ZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8q
IFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNo
aW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hpbS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMy
IC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4
NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMjM2LDYgKzMyNTgsNyBAQAogCQk1MUE1NTYwMDEyOEM2RDkyMDA5QUJDRUMg
LyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCUmVzdWx0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJREJSZXN1bHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8q
IFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBheW1lbnRTZXJ2aWNlLnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3MjhEQzFCMUJBRDJEMDAx
MDJFRUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkYyMTI1QkY4MjAwMDhBRUIxRCAvKiBM
b2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFEIC8qIExv
Z2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2luZy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjk1LDYgKzMzMTgsMTEgQEAKIAkJ
NTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJV
dGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzUxQzkxODBGMkND
QzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUx
RkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFF
MzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZD
MTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFF
MzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJvdmlkZXJDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYxRjI5MzU1MTAwRkQz
NDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFn
ZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTYxMUYyOTM1Q0Qw
MEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDQ5LDYgKzQ0NzcsNyBAQAogCQlFMUU1NTJD
MzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0RDMTFGOENGOUYw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1l
bnRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGF5bWVudFByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNG
NTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hl
RW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDJFMDYwQjFBQTc0NDBE
MDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDYyMSw2ICs0NjUwLDcgQEAKIAkJCQkxQTFEMjExNjE5MUQ5OTVDMDAwMTYx
OUYgLyogcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2ggKi8sCiAJCQkJQkMyRTZFNzQx
MTQxOTZGMDAwQTYzQjFFIC8qIFBsYXRmb3JtICovLAogCQkJCTFBQURERjRCMTBEODJBRjAwMEQz
RDYzRCAvKiBTaGFyZWQgKi8sCisJCQkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1l
bnRQcm9jZXNzICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3Mg
Ki8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3MgKi8sCiAJCQkJ
NTEwQ0M3REExNjEzOEUwMTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzICovLApAQCAtNDgyNiw2
ICs0ODU2LDcgQEAKIAkJCQk0MUQwRkM3RDIwRTQzQTUxMDAwNzZBRTggLyogTmV0d29yay1PU1gt
c2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNUM3QUNGRDEyMThERDhCRDAwNENCQjU5IC8q
IE5ldHdvcmstT1NYLmVudGl0bGVtZW50cyAqLywKIAkJCQlCQzgyODNBQjE2QjRCRUFEMDBBMjc4
RkUgLyogTmV0d29ya1NlcnZpY2UueGNjb25maWcgKi8sCisJCQkJNTFBNjBCMjkxODBDQ0Q5MDAw
RjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovLAogCQkJCUExRUREMkRCMTg4NEI5
NjQwMEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNG
MjE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZyAqLywKIAkJCQlC
QzgyODNGNDE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZyAqLywK
QEAgLTQ5ODMsNiArNTAxNCw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAzNDAwREQ3QzY4IC8qIEdh
bWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlC
QzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTM5MTM2MDJBMjE5NTE0QkQw
MDU2NDkyQSAvKiBQYXltZW50ICovLAogCQkJCTFBQUUwNThDMTI3OURDRDQwMDg1MjQxOCAvKiBQ
bHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAvKiBSZW1vdGVMYXllclRy
ZWUgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhICovLApA
QCAtNjI2Myw2ICs2Mjk1LDI0IEBACiAJCQlwYXRoID0gUmVzb3VyY2VzL21hYzsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM5MTM2MDJBMjE5NTE0QkQwMDU2NDkyQSAvKiBQ
YXltZW50ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkz
OTEzNjAyQjIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwICovLAorCQkJCTM5MTM2MDJDMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50OworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMzkyRTk0MkEyMTlBMkU4NTAwNTBGOTgy
IC8qIFBheW1lbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwICovLAorCQkJCTM5MkU5NDJCMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50czsKKwkJ
CXNvdXJjZVRyZWUgPSAiPHVua25vd24+IjsKKwkJfTsKIAkJNDEzMDc1OTcxREU4NEVENzAwMzlF
QzY5IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC02NTgyLDYgKzY2MzIsMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJD
MTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdE
RDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUx
MkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
ICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NjM4LDYgKzY2
OTgsMjAgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlCMTkwRjc5MUMw
MDczMTY1OCAvKiBpb3MgKi8sCisJCQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1l
bnRQcm9jZXNzLmNwcCAqLywKKwkJCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVu
dFByb2Nlc3MuaCAqLywKKwkJCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQk1MUUzNTFGRTE4MEY1RDBC
MDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCQk1MTAz
MkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRQcm9jZXNzOworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTM5QkQ1QjIxREFEQjBCQTAwRjJFNEUxIC8qIGNh
cHR1cmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzA2
MSw2ICs3MTM1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJ
QTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5z
YiAqLywKKwkJCQkzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5Q
YXltZW50cy5zYiAqLywKIAkJCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxl
LldlYktpdC5TdG9yYWdlLnNiICovLAogCQkJCUE3OENDREQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBj
b20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgKi8sCiAJCQkpOwpAQCAtNzEwOSw2ICs3MTg0
LDcgQEAKIAkJCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8sCiAJ
CQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5NzQx
NDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAorCQkJCTM5MkU5NDJB
MjE5QTJFODUwMDUwRjk4MiAvKiBQYXltZW50cyAqLywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBE
QjEzNzEgLyogUGx1Z2lucyAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3Rv
cmFnZSAqLywKIAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8s
CkBAIC03MjcxLDYgKzczNDcsNyBAQAogCQkJCUJDQ0YwODVDMTEzRjNCNzUwMEM2NTBDNSAvKiBt
YWMgKi8sCiAJCQkJNTEwQ0M3RTcxNjEzOEU3MjAwRDAzRUQzIC8qIE5ldHdvcmsgKi8sCiAJCQkJ
MzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCisJCQkJNTE3REQ1
QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnRzICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQw
MDgyMTlEMyAvKiBQbHVnaW5zICovLAogCQkJCTJEMTU1MUE5MUY1QTlCNDIwMDA2RTNGRSAvKiBS
ZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFBRjA4OUUxOTI2ODFBQzAwQjYzOTBDIC8qIFVzZXJD
b250ZW50ICovLApAQCAtODM3MCw2ICs4NDQ3LDEwIEBACiAJCQkJNUMwQjE3NzUxRTdDODc5QzAw
RTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAogCQkJCTFBMkQ4NDM3
MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTcx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNDFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tT
ZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBMjlBMjUxQ0JFQjY3
QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUNE
QTI5QTI2MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODY4OSw2ICs4NzcwLDE0IEBACiAJCQluYW1lID0gUERG
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFGRUYzOUIxOTBGNzkxQzAw
NzMxNjU4IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICov
LAorCQkJKTsKKwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQlFNDg5RDI4MjFBMEEyQkU4MDA3OEMwNkEgLyogY2FjaGUgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTE1OSw2ICs5MjQ4LDkgQEAKIAkJCQkxQUM3
NTM3QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE4QjY2QjAxQkM0M0M4NjAwODJERjc3IC8qIFBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRU
eXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0RENUJGMTgwREE3
RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMUUxMjNCQTIwQTExNTczMDAyNjQ2RjQgLyogUERGQ29udGV4
dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAvKiBQ
REZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREMxOEZCMDIxODkxMjY0MDAyNUE4
OEQgLyogUGVuY2lsS2l0U1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMTUyLDYgKzEwMjQ0LDcg
QEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlF
MTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vz
cy5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzkxMzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCUUxMUQzNUFF
MTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJNDE0REQzNzkyMEJGNDNGNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVn
aW4uZ3BjNjQuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4
MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0xMDc2MSw2ICsx
MDg1NCwxMSBAQAogCQkJCTJEOTEzNDQ3MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVPYmpl
Y3RNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDgyMTJDRjlGMDAwMTI4QUZEIC8q
IE5QUnVudGltZVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc5NDIxMkI2
QUQ0MDBGNDkzRkQgLyogTlBWYXJpYW50RGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUz
NTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUFBMUYyOTU5
NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEyODFDQkVCNjdB
MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDREEyOUEyQTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNz
aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTEzNDQ5MjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2VlNzg4OTY0ODc5
YjliOTc2ZGI0OWFlMDNlYTJkNWJhMGQ0NjAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFn
ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpj
cmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIG1fY29ubmVjdGlv
bi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQoreworCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOworfQorCit2b2lkIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmUyMGFiZjZiZDM0NmM2YjFkYzJlNzE1ZTMxMGVk
M2Q1ZjMyNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5
bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsxLDcwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU1dT
ZXJ2ZXIuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiwgcHJpdmF0ZSBJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0
ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAgIH0KKyAgICB+V2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworCisg
ICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9Cisg
ICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVy
biAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaAppbmRleCAyYmZhZWU0NzZlMWY0YmNjY2RiMjY2MGZlNWQ4ZTY2YmQ2NzRh
M2Q3Li41ZGZjNTU1MDBjNTY5MzgxNDVjYjYzYmY3NmQ1ZDhiNzY5MzkwYTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVzb2x2ZVJl
Z2lzdHJhdGlvblByb21pc2UoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSYpIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVsZVN0b3JhZ2VKb2IoY29uc3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHNjaGVkdWxlUGF5bWVudEpvYihj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwogCiAgICAgdm9pZCBydW5PckRl
bGF5VGFza0ZvckltcG9ydChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDcwY2U4ZWE0ZWVlODA5NmUwNGIz
ZWU2N2QxZjRjZjIxMjczNTBkYWMuLjk1MWVmZWJjODZjOGRlOWNlZmQ5NWZmMGNjNGVjY2RkODcx
MmFmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDYg
KzQzLDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNp
bmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3Nh
Z2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJVc2Vy
RGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgpAQCAtNjksNiArNzIsOSBAQAogI2luY2x1ZGUg
IldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW0uaCIKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRl
ICJXZWJzaXRlRGF0YS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBAIC0xMjE3LDYgKzEyMjMsMzEgQEAgV2Vi
TG9hZGVyU3RyYXRlZ3kmIFdlYlByb2Nlc3M6OndlYkxvYWRlclN0cmF0ZWd5KCkKIHsKICAgICBy
ZXR1cm4gbV93ZWJMb2FkZXJTdHJhdGVneTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQordm9pZCBXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQo
bV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik7CisgICAgQVNTRVJUKG1fd2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CisKKyAgICBtX3dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
KFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpCit7CisgICAgaWYgKCFtX3dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKSB7CisgICAgICAgIElQQzo6QXR0YWNobWVudCBlbmNvZGVk
Q29ubmVjdGlvbklkZW50aWZpZXI7CisKKyAgICAgICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oaW5pdGlhbFNlc3Npb25JRCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25J
ZGVudGlmaWVyKSwgMCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRp
ZmllcikpCisgICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAgIG1fd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIH0KKyAgICByZXR1cm4gKm1fd2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb247Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
IAogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMTg3ZWE0MGRlN2UxZDQ5
NGE5MjdhNDI5NzY3MDhmYzU0NGVhZjA2Zi4uMzFjNjlhNTA3YTBmNjk2Y2I2MzI0Mjg3ODQwZGE5
NzRmNGNiZjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05OCw2
ICs5OCw5IEBAIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNz
IFdlYlBhZ2VHcm91cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1cHBsZW1lbnQ7CisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBlbnVtIGNsYXNzIFdlYnNpdGVE
YXRhVHlwZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlBh
Z2VHcm91cERhdGE7CkBAIC0xNzUsNiArMTc4LDExIEBAIHB1YmxpYzoKIAogICAgIExpYldlYlJU
Q05ldHdvcmsmIGxpYldlYlJUQ05ldHdvcmsoKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgdm9pZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbiopOworICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uJiBlbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBp
bml0aWFsU2Vzc2lvbklEKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAg
ICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAgIHZvaWQgZW5zdXJlTGVnYWN5
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQzMiw2ICs0NDAs
MTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5PiBtX2F1dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gbV93ZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUmVmUHRyPFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYy
ZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2Yjcz
NWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsy
ODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9O
QVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9U
SUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21h
Y29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0g
OwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVO
QUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JN
X05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA4YzUzNWM3ZmY2MzA3Yzk1NWZhOTc3MTIxMzA0ODhlNGFhODhjZTk2Li41NWY2NzdjMDI0
ZTdhOGVjNjgyY2EyODBhYmJhNjFkYjQ1MjYwNjFiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMTEtMTQgIFph
bWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNz
IHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAx
OC0xMS0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEFkZCBTUEkgdG8gc2hvdyBhIHNhZmUgYnJvd3Npbmcgd2FybmluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4u
MzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCkBAIC0yODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2Nv
Y29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFC
TEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxF
X1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZ
TUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9Q
TFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0K
aW5kZXggM2YxYTYyODg2ODIxMDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4uYzM0NmFiZmQ2
MjBmOTM1NTVmZDgwMDVjOGExYjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5tbQpAQCAtMTQ0LDYgKzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywg
Q2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlZCBwcm9j
ZXNzIHBvb2wgZXhpc3RzIHNvIHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2UncmUgYWJvdXQg
dG8gZG8gd29yayB3aXRoIGl0LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFByb2Nlc3NQb29s
ID0gW1dLUHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVYUEVDVF9FUSgo
cGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsK
ICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nl
c3NDb3VudF0pOwogCiAgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBk
ZWZhdWx0RGF0YVN0b3JlXTsKQEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291cmNlTG9hZFN0
YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBFQ1RfVFJVRShb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGFyZ2V0VVJM
LnBhdGhdKTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9w
YXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hh
cmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJh
c2ljLm1tCmluZGV4IDYxZGRiYzNkNjNhOWVhODdjMjZlY2EwZDFiZmQ2Njc3NjU3MzA5MTYuLmU2
NDAzZTllMGZmNmVhYmRhOWVjZTBmMjljZmZhNjVlNTU1Y2RjODcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJh
c2ljLm1tCkBAIC0xMDQ2LDYgKzEwNDYsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTZXJ2aWNl
V29ya2VyUHJvY2Vzc0NyZWF0aW9uKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gTWFrZSBzdXJlIHBheW1lbnQgcHJvY2Vz
cyBpcyBub3QgbGF1bmNoZWQuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmln
dXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAgIC8v
IE1ha2Ugc3VyZSB0aGF0IGxvYWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRpZCBub3Qgc3RhcnQgdGhl
IHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MuCiAgICAgRVhQRUNUX0VRKDF1LCB3ZWJWaWV3LmdldCgp
LmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2Fy
bWVkKTsKIApAQCAtMTEzMCw2ICsxMTMzLDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyBw
YXltZW50IHByb2Nlc3MgY3JlYXRlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5j
b25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAg
ICAgLy8gTGV0J3MgdXNlIHRoZSB3ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNlcnZpY2Ug
d29ya2VyIGFuZCBsb2FkIGEgcGFnZS4KICAgICBuZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNp
dGVEYXRhU3RvcmUgPSBbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggOGRiNTY5MGIzOTQzMTA5NGI1MzU4ZDBkMmFmYjg3Njk5
ZDIwNmRhMC4uZDYyYzYwZjc4Y2M1MzBhMzVhYzczYWU4YTQ4NGQ1NjA4YjExN2Q3ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMzMsNiArMzMzLDcgQEAgaW50ZXJmYWNlIFRlc3RS
dW5uZXIgewogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQg
dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzKCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRDYW5jZWxD
bGllbnRSZWRpcmVjdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNWRhNTQ2YWVkNWU3ZjdlMzU5NTgzZGQ4OWE4
MjJiNDBlNWNjY2Y3NC4uYzlkMDZlOTVjY2I3OTRmNmI5ZGM2NGJmM2E5ZjI3M2I4MTU3MTU3YSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC0xMjU1LDYgKzEyNTUsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5h
dGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3Vz
TWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFn
ZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3ZvaWQgVGVz
dFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVGVybWluYXRlUGF5bWVudFByb2Nlc3MiKSk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5
bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBh
Z2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisK
IHN0YXRpYyB1bnNpZ25lZCBuZXh0VUlTY3JpcHRDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMg
dW5zaWduZWQgY2FsbGJhY2tJRCA9IEZpcnN0VUlTY3JpcHRDYWxsYmFja0lEOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBl
OGJhOTdmNzE2ODRkZmNhMDc3NTczY2NhYmMxM2NlNjQzNDAyZmIxLi43ZTY1MmM1M2VlNWFkNDZj
ZmU2NWFmZTcwOTNlOGExYjlhNjU4OTY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDQ2LDYgKzQ0Niw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1p
bmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJv
Y2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoSlNWYWx1ZVJl
Zik7CiAgICAgdm9pZCBjYWxsRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2FsbGJhY2so
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDRlODE4
ZWYyMTViM2M2NjM1OWY4ODQ2NTI3MWYwY2UwODIzY2VlMS4uOGJkYmQ0Yzc1ZDgxMTkyNzY0NDU4
MjAzM2NjNjM2YmEzMjBkNDhjOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKQEAgLTEwNzQsNiArMTA3NCwxNSBAQCBjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxl
cjo6bmV0d29ya1Byb2Nlc3NOYW1lKCkKICNlbmRpZgogfQogCitjb25zdCBjaGFyKiBUZXN0Q29u
dHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKCkKK3sKKyNpZiBQTEFURk9STShGQU1JTFlfSU9T
KQorICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyI7CisjZWxzZQorICAgIHJl
dHVybiAiUGF5bWVudCBwcm9jZXNzIG5vdCBhdmFpbGFibGUgb24gYW55dGhpbmcgYnV0IGlPUyI7
CisjZW5kaWYKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGUoYm9vbCBhbGxvd3MpCiB7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3MpOwpAQCAt
MTUwOCw2ICsxNTE3LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlk
Q3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsCiAgICAgc3RhdGljX2Nh
c3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPm5ldHdv
cmtQcm9jZXNzRGlkQ3Jhc2goKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFBy
b2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKS0+cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOworfQorCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tE
aWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91cykKIHsK
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5IikpOwpAQCAtMTg0MSw2ICsxODU1LDEzIEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQoMSk7CiB9
CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKQoreworICAg
IHBpZF90IHBpZCA9IFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRl
eHQuZ2V0KCkpOworICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClc
biIsIHBheW1lbnRQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsKKyAgICBl
eGl0KDEpOworfQorCiAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJl
ZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0yNjQw
LDYgKzI2NjEsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlU2VydmljZVdvcmtl
clByb2Nlc3MoKQogICAgIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHBs
YXRmb3JtQ29udGV4dCgpKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5
bWVudFByb2Nlc3MoKQoreworICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKHBs
YXRmb3JtQ29udGV4dCgpKTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKQogewpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDYyNWE1YjU0NjU5MjJj
N2JhZmQ5NGI3YWNjODEyNzY1N2I4YmM5MWYuLjdmMGY3NWI0ZGJhZjVkOTFjZjQ1MDY3OTE1NjU0
MzVmYzM1Zjg0MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAg
LTE4MSw2ICsxODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHdlYlByb2Nl
c3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5ldHdvcmtQcm9jZXNzTmFtZSgpOwog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkYXRhYmFzZVByb2Nlc3NOYW1lKCk7CisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIHBheW1lbnRQcm9jZXNzTmFtZSgpOwogCiAgICAgV29ya1F1ZXVlTWFuYWdl
ciYgd29ya1F1ZXVlTWFuYWdlcigpIHsgcmV0dXJuIG1fd29ya1F1ZXVlTWFuYWdlcjsgfQogCkBA
IC0yNTIsNiArMjUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2
b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Np
b25DcmVkZW50aWFscygpOwogCkBAIC0zNTcsNiArMzU5LDggQEAgcHJpdmF0ZToKICAgICAvLyBX
S0NvbnRleHRDbGllbnQKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdL
Q29udGV4dFJlZiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFz
aCgpOworICAgIHN0YXRpYyB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVm
LCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKCk7CiAKICAg
ICAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TmF2
aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkKik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmlu
ZGV4IGI4ZmNkNTdiODc1OWFhZGYzY2Q3M2Q5OTYxZjUwN2JiOGVlNDRiOGIuLjBjNGY2YTljZWMz
N2IzNzA1ODMzMTRmZmM4MDkyZWU4NDA1YTEzZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDUzLDYgKzE0NTMsMTIgQEAgV0tSZXRhaW5QdHI8V0tU
eXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCisgICAgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5hdGVQYXltZW50UHJv
Y2VzcyIpKSB7CisgICAgICAgIEFTU0VSVCghbWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKSB7CiAgICAgICAg
IEFTU0VSVCghbWVzc2FnZUJvZHkpOwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354900</attachid>
            <date>2018-11-15 00:46:40 -0800</date>
            <delta_ts>2018-11-15 12:05:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181115004638.patch</filename>
            <type>text/plain</type>
            <size>137381</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmI2ODgzZjcxNmM0ZGZhOTU3OThkYzBlYjNiZmZmYjYxNjAyNjE2Li4yNGRlZDM4OTdjMDA3MjFk
NmQ3OWQ5MWI4Y2NkMzEwNGE3ZDhmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhc3MgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9kaXNjb25uZWN0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjM2FhYzBhZTZkZTBkOGVmY2MyMjhkNmJiZTVlM2YyZTk0
ZTU2ODI5Li42NmJmYTMzM2VhYmNiZDI2ODUwNTg4NmY3Mzk2MDQwZGM3N2RjMTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0xNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIENvZGUgcXVhbGl0eSBjb25jZXJucyBy
YWlzZWQgZm9yIDE5MTI5MTogW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYTc5NGYyMTIxMzU2Y2E0MDdhODYzZGExZWI5YTJkZDhlOWM4M2RlYi4uZjMwMzI4MDYyMWY1
MmZiMDFkMmVlNjlmNGNlNTNjOTViZDg4OWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZTVmMmNmMmZkYmM5YTg2Y2Q2MDZm
Mjg4ODNiYTljZGUxM2QzMi4uOGU1NTAwMGM0MzIwMzQ0OWMxNDE0OWMzNGRhNWJmYWQxNGIwYTM2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzog
QWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1l
bnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQ
VUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BV
TW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJl
VG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0Fs
bExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1v
cnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlh
RGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEg
cmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNDU2Nzg4M2M4ODMyYTU3MzI2ZGNmNzYwNDM4MDFhMmY5ZWRjYjc0ZS4uMjM0
MTk0ZjYzMmNmOTNmNjRiZmJhNjA4Y2M5NTAyMTYxOWE2ZTZlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBj
b25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2
NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4
MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4
OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEw
MjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1Yzhj
ODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4ZjFmNjc2
NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMiID0gIiVA
IFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50IiA9ICIl
QCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFh
ZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEzODg2YjVkNDhiNjZkMzFm
MDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3MiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJVF9ESVJ9
L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAgICIke1dF
QktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Qcm9jZXNz
IgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2FtZXBhZCIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCkBAIC00
NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
CiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgorICAgIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyMSw2ICsyMjks
MTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQogCitzZXQo
UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisKIHNldChQbHVnaW5Qcm9j
ZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2JiYjAxMmEzOWU2NWRhOGJh
OGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRjZmRiMjA2YTRkNjNjZjNl
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNj
b25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJFRElDVElPTltzZGs9bWFj
b3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVMgPSAkKFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BSRURJQ1RJT04pKTsKIFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9QUkVESUNUSU9OOwogCitX
S19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJW
SUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9TRVJWSUNFX05BTUUpKTsK
IFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19TVE9SQUdFX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8gPSBj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQzMjEzMzZkZDA3MGU5Yjc4YjU5ZjgwZGUyYzE1MWFlZWFkNzMwNjEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
CkBAIC0wLDAgKzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBt
ZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8v
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BBWU1FTlRfRU5USVRMRU1F
TlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVE
X1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzOwor
CitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0gJChXS19QQVlNRU5UX0VO
VElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JFU1RSSUNURURfRU5USVRMRU1FTlRTKSk7
CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJQlJBUllfVkFMSURBVElPTl9DT0RFX1NJ
R05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdLX1BBWU1FTlRfU0VSVklDRV9QUk9EVUNU
X05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsKK0lO
Rk9QTElTVF9GSUxFID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2N2Q0OGM2
NGQ3MjliY2ZlZTgwZjVhYzQwZjRlN2MzZWJjNzczMjQuLmQzMTc1YWQ4YjBiMzJjN2Y1NjY2YTZi
M2JkMjdlM2Q5MjY1MjJiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMwLDYg
KzMwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMg
XAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCIFwKICAgICAkKFdlYktp
dDIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIgXAorICAgICQoV2ViS2l0MikvUGF5bWVu
dFByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAgJChXZWJLaXQy
KS9QbHVnaW5Qcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCkBA
IC03Myw2ICs3NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdv
cmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwK
ICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9QYXltZW50cyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lucyBc
CiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIFwKICAgICAkKFdlYktp
dDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTEyMSw2ICsxMjMsMTAgQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAgICAgTmV0d29ya1NvY2tldFN0cmVhbSBcCiAgICAgUGxheWJhY2tTZXNzaW9u
TWFuYWdlciBcCiAgICAgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IFwKKyAgICBOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlciBcCisgICAgUGF5bWVudFByb2Nlc3MgXAorICAgIFBheW1l
bnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAg
ICBQbHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFiZWFlYzExY2NlMmFlMjlhMDY0MmMyNDE1
NmJjNmYyMDNmNTFjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0
b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2Vz
czsKKyAgICByZXR1cm4gcHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9j
ZXNzKCkKK3sKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2VzcygpCit7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUo
KQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q2hpbGRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41Y2FiNTRkYmNjMGNiMWFmYzBiYmFjODhkMWNkYTg1NWYwZmVjMzUzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5o
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjsKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKwor
Y2xhc3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVk
PFBheW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFByb2Nlc3MmIHNp
bmdsZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUg
PSBQcm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2VzcygpOworCisgICAg
dm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNzKCk7CisKKyAgICAv
LyBDaGlsZFByb2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBN
ZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmKTsKKyAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
IVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkwZjhl
MWEzOGUxMjEyOGE0ODJmZmI3NTdmMWE5OGVmODZlMDQzMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgeworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2YWIyNDJhODFjNjY5
M2RmNzc5YjQyNGE1NWZhZjI4MjE0OTEwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
MCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNz
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7
Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8gRklYTUU6Cisg
ICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpCisgICAg
Ly8gdG8gZm9yY2Ugc3luY2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hy
b25vdXMgbWVzc2FnZXMgaW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUg
V2ViUHJvY2VzcyB3b3VsZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3
YWl0aW5nIGZvciBhIHN5bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1l
bnQgcHJvY2Vzcywgd2hpY2ggd291bGQgYmUgdW5zYWZlLiBJbnZlc3RpZ2F0ZSBpZiB3ZSBuZWVk
IHRvIGNhbGwgdGhpcy4KKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246On5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7
CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkuZGlkUmVj
ZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVj
dGlvbik7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFS
QU0obWVzc2FnZVJlY2VpdmVyTmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2VOYW1lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5U
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNTczZjgwMzY3
YmFmYjk5YzQyOTA1NGEwYTY5NDljODYxYTg5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3Nh
Z2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVz
c2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgflBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKworICAg
IC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAg
ICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJu
IDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzA0YzBkYmMyNDc1NDIxN2M3ZDlhM2MwNGI4NDBlM2QyMjNkYmMyNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2Vz
IC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVu
dFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2ZhM2FhMWQyMmE4MzVjMWVkOWU2NThiYTIzMzgw
YTkxZWI4MjdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQ
TEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVBTF9E
QVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQ
cm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywg
U2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7Cisj
aWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBvdmVy
cmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUg
SUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xh
c3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRl
cnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJl
c291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7CisgICAg
Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1l
dGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2
NzJjNjg2YjE2NjdhZDk3ZjVkZmQ3NWE0YjNhN2JkYzA2MDdiMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDMyIEBACis7IENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Cis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFs
LXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEp
CisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2Vydmlj
ZS1uYW1lLXByZWZpeCAiIikpCisKKyhkZW55IGxzb3BlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQ
cm9jZXNzLmgKaW5kZXggYTcyYmM5MjlkYmQ3Yzc0YzIyNjY5YjgyMzE3YTYxZmZhYmRmMzc2OS4u
NWQwY2M2ZTJmNTRkMzY4MzJkZDI1Zjg3YzA4Mjc3MDkzYmRjM2E1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAgICAgICBXZWJD
b250ZW50LAogICAgICAgICBOZXR3b3JrLAogICAgICAgICBQbHVnaW4KKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICAgICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MDgzMzEyY2Y4OGY3ZGY5NjQ5YjJkMzYyYmQ3NDYxMTEwMGY4MzAw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQor
eworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOwor
fQorCitib29sIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYTA5YWI3ZWZkN2YyMDk0ZmU2ZDY3ZWY0NWI5ZjM4
NDY3MzdhZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVu
Y29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
KCk7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKTsKKworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDJjZTcxNmU0Yzcy
ZTU4MmFiZTMwZjQ4NzlkMmM2ZWI5ZTQ5OWE5N2IuLjYyYjU0NzRlZmFhNzI0ZWFiNTI4YjRmNjcw
MTc5MWYwY2U5YWFkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aC5oCkBAIC0zMiw1ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGV4
ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdp
blByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQYXltZW50
UHJvY2VzcygpOworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCA4NzY2ZGZkMzAyMDk2MzFkMzk4YTUzOTgzOGNlYTlmYzA0YTg3N2ZhLi5lYWEy
YzNlNjc1M2UzYjk4YTg0YmZjNTNlYmIwODM4NTFhZGM2OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTc5
LDYgKzc5LDkgQEAgTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXku
Y3BwCiAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcAogCitQ
YXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiAvLyBUT0RPOiBXZSBzaG91bGQgdW5pZnkgdGhl
c2UgZmlsZXMgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogUGxhdGZvcm0v
TG9nZ2luZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9Nb2R1bGUuY3BwIEBuby11bmlmeQpAQCAt
MjA3LDYgKzIxMCw4IEBAIFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5j
cHAKIAogU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCiAKK1NoYXJlZC9QYXltZW50L1Bh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorCiAvLyBUT0RPOiBUaGVzZSBmaWxl
cyBzaG91bGQgYmUgdW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQu
CiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcCBAbm8tdW5pZnkKIFNoYXJlZC9Q
bHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcCBAbm8tdW5pZnkKQEAgLTM4MCw2ICsz
ODUsOCBAQCBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCiBVSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCiBVSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKIAorVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5m
b1N0b3JlLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBA
IC00ODAsNiArNDg3LDggQEAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
Y3BwCiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCiAKK1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCisKIC8vIFRPRE86IFRoZXNlIGZpbGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2Ug
R1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3ZlZC4KIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBlY2M4MmQxYThjZTQ2
NzVhYzFhNGY2ZWQ3MDRiNmIyNDI4ZDk3NTI4Li5kYmMyYTg1YTcxNTlhY2EwZGIwZGQ2MzA4MTU2
Y2QxZmQ4N2I4ZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xODMsNiArMTgzLDggQEAg
U2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuY3BwCiBTaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1
bHREYXRhLm1tCiBTaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCiAKK1BheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQorCiBTaGFyZWQvUGx1Z2lucy9tYWMvUGx1
Z2luU2FuZGJveFByb2ZpbGUubW0KIAogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTW9kdWxlTWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcAppbmRleCAwNDAxZTcyYjRjNmY1ZTRlNTlkZDhjYWI0MGI2NjQzNWQ0ZjU4ZmI5
Li43YmYzZjVhMTJjOTdlY2E3OWRiNzQwZTY5YzQ1ZGZjOWVhNGFiYjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSwxMSArNjIxLDI3IEBA
IHZvaWQgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVm
IGNvbnRleHQpCiAgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc2VzKCk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tD
b250ZXh0UmVmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0
b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRH
ZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAg
ICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7
CiB9CiAKK1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsK
KyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K30KKwogdm9pZCBXS0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLU3RyaW5nUmVmIGRvbWFpblJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJh
eVJlZiBtaW1lVHlwZXNSZWYsIFdLQXJyYXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCA0NmQzN2UxZThhMTU4OTU4MGEzNTUzOGVlNWY2
ZjliYzJkODBlMjJjLi4xZjFlODczOWQzMmVkNzZkNTE3MTFjNmJkN2JlYTA2OTQxM2Y5NDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5o
CkBAIC05Miw2ICs5Miw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3Jr
UHJvY2VzcyhXS0NvbnRleHRSZWYsIGJvb2wpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKy8vIE5P
VEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxF
RAorV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250
ZXh0UmVmKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJU
ZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CkBAIC0xMTIsNiArMTE0LDcgQEAgV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1VSTFJlZiBzZXJ2ZXJVUkwpOwogCiBXS19FWFBPUlQgV0tQcm9jZXNzSUQg
V0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0
KTsKK1dLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50
aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRB
ZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIGRvbWFp
biwgV0tTdHJpbmdSZWYgbmFtZSwgV0tBcnJheVJlZiBtaW1lVHlwZXMsIFdLQXJyYXlSZWYgZXh0
ZW5zaW9ucyk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhclN1cHBvcnRlZFBsdWdpbnMo
V0tDb250ZXh0UmVmIGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBjZjI4MTFlOGIzYWNhYWIwZDA4MWUwODgy
Y2JmZDgzYzdkNWRkNWNlLi4wZjMyMTI4YTJmM2RhODU1NmY0NDRkNzQ5Y2I1MzkyNzg1MDgxNmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQpAQCAtNDI0LDYgKzQyNCwxMyBAQCAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdp
bnMKICAgICBfcHJvY2Vzc1Bvb2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogfQogCistICh2
b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzcworeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rpbmco
KTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzcwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29y
a1Byb2Nlc3MoKTsKQEAgLTQ0NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNz
SWRlbnRpZmllcgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllcigpOwogfQogCistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50
UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJv
Y2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggNGQzYTE5MTIwYWJkNDllZWUwNDkyNzk0YTc3ZjRh
ZmIwNmNkZTkwYy4uMGI5OTllODY0YTkxOWFjNThjOTAxOWM4NDYzZTYwN2M1ZjM3ZWNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmgKQEAgLTg0LDEyICs4NCwxNiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVz
dW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAq
KXBhdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBj
b250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFp
bGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAodm9pZClfdGVybWluYXRl
UGF5bWVudFByb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZv
aWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzVGVybWluYXRpb25EZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTog
VGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECist
IChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEx
LjMpKTsKIAogLy8gVGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA4N2IwYmJlYzgx
MzAzYTc1Yzg1ZTJhOGNiYzMwZTdhYzIyZDgzZGNlLi42ZDY2ZWMzMWFmZjZlZGMxYTQxZjY4NDgz
MjUyM2NkODdlNmJkMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgICAg
IFBsdWdpbjY0LAogI2VuZGlmCiAgICAgICAgIE5ldHdvcmssCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICAgICAgUGF5bWVudCwKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogICAgIH07CiAKICAgICBzdHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1h
Yy5tbQppbmRleCAzYjQ2MTYzNGU4NTE3MzlkNjk1ZDA1NTViZTU0ZDY5YjQ4NDYwNjQ4Li41NzJj
ZTQ5MGUwY2E1MTVkYTIwYTdmN2EyYzg4Nzk2OTEwNjNjNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW0KQEAgLTYyLDYgKzYyLDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25z
dCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvCiAgICAgY2FzZSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQbHVnaW42NDoKICAgICAgICAgcmV0dXJuICJj
b20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NCI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDoK
KyAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iYjlhZDE3YmFhYzY5ZWMxYWQ1NmQ5YjM1NjkyZTZiM2ViNzQzNjJjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQ
cm94eS5jcHAKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzUHJveHkuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBheW1l
bnRQcm9jZXNzQ2FsbGJhY2tJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQ7
CisKKyAgICByZXR1cm4gKytjYWxsYmFja0lEOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQ
YXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENo
aWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0
eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQoreworICAgIGNvbm5lY3QoKTsKK30KKworUGF5bWVudFBy
b2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQoreworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIHRlcm1pbmF0ZSgpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlv
bnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50Owor
ICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwg
dGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nl
c3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBp
ZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVuZGluZ0Nv
bm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9vbCBp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNl
Y3VyaXR5T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MsIHNl
Y3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBwcm90ZWN0ZWRQcm9jZXNzUG9v
bCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBUaGUgcGF5bWVudCBwcm9jZXNz
IG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkgcGVuZGluZyBzeW5jIHJl
cGxpZXMgd2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBs
aWVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlv
blJlcGxpZXMudGFrZUZpcnN0KCk7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgfQor
ICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMgcGF5bWVudCBwcm9j
ZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgorICAgIG1fcHJvY2Vzc1Bvb2wu
cGF5bWVudFByb2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rp
b25JZGVudGlmaWVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNo
ZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sK
KyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25u
ZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmll
cklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIEZJWE1FOiBEbyBi
ZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytpKQor
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAgIAorICAgIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ2
YzFiOTdhMDAwZmZkOTA3NTZkYjFjNzQ2NDU4NDBhNThmMjg0MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaApA
QCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVk
ZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFzcyBXZWJQ
cm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBXZWJzaXRl
RGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBDaGlsZFBy
b2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7CisgICAgCisgICAg
dm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJik7CisKKyAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQorICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9j
ZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIHByb2Nlc3NX
aWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKTsKKworICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIGRpZENy
ZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYp
OworCisgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKKyAgICB2b2lkIGRpZEZpbmlzaExh
dW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92
ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1Bvb2wmIG1fcHJvY2Vzc1Bvb2w7CisKKyAgICB1bnNp
Z25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7CisgICAgRGVxdWU8TWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVw
bHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMzEwY2ZjZDUxNjJlYzQ3Y2VhMjkzMWQ2ODQ3OWI5
MGExMDU0NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXlt
ZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVy
IHsKKyAgICBEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNw
cAppbmRleCBmYTQ1NzYyZWNlYmEwMTNhNmFjYTRmOTY0ZGE4NTY2Mzk3NDFkNTc1Li5iZWM3OWI1
NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2OTliNTUzZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtNDYsNCArNDYsMTEgQEAgdm9pZCBXZWJD
b250ZXh0Q2xpZW50OjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9j
ZXNzUG9vbCkKICAgICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nl
c3NQb29sKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit2b2lkIFdlYkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jh
c2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQoreworICAgIAorfQorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCmluZGV4IDgwYzMxMTIyYzA3NzZkNGVl
OGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYuLjU5YjNhNDA3OTEwOGYyMzhmMWQ2ZjhhYmYxYWI5ZWRj
Yzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgK
QEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIFdlYkNvbnRleHRDbGllbnQgOiBwdWJsaWMgQVBJOjpD
bGllbnQ8V0tDb250ZXh0Q2xpZW50QmFzZT4gewogcHVibGljOgogICAgIHZvaWQgcGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZChXZWJQcm9jZXNzUG9vbCopOwogICAgIHZvaWQgbmV0
d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29s
Kik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dFN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0MDNkYjI5Zjk0MDA0MzhiYTMyYTYwYzc1ODI3NDkzNGZh
Ni4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVjMDY3ZDFmMGQ5ZDQ1OWExMjdlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCkBAIC0yOSw2ICsyOSwx
MCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHk7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKQEAgLTU0LDYgKzU4LDEyIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKE5ldHdvcmtQcm9jZXNzUHJveHkqKQogICAg
IHsKICAgICB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2aXJ0dWFs
IHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBheW1lbnRQcm9jZXNzUHJveHkqKQorICAgIHsKKyAgICB9
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlByb2Nlc3NQb29s
KiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1Bvb2w7IH0KICAgICB2b2lk
IGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1fcHJvY2Vzc1Bvb2wgPSBudWxscHRyOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYzgyYWZjZjM1YTIyNDlk
ZTAwMjA5ZDQ1Y2M0MGQ2ZjM5MjdmMGQzMy4uMjhiYTlhZDNkYWRkNzU3MzQyMzkwMzBjMWEzMDM2
YjI2YjEzZTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cApAQCAtNTQsNiArNTQsMTAgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NE
YXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2Fn
ZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlRleHRD
aGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJv
dmlkZXIuaCIKQEAgLTQ0Miw2ICs0NDYsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kTWVt
b3J5UHJlc3N1cmVFdmVudChib29sIGlzQ3JpdGljYWwpCiB7CiAgICAgc2VuZFRvQWxsUHJvY2Vz
c2VzKE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50
KGlzQ3JpdGljYWwpKTsKICAgICBzZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6Q2hp
bGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNz
YWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRp
Y2FsKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKICAgICBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCku
c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCk7CiAjZW5kaWYKQEAgLTYwNyw2ICs2
MTQsMzYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3gKICAgICBtX25ldHdvcmtQcm9jZXNzLT5n
ZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5
KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9v
bDo6ZW5zdXJlUGF5bWVudFByb2Nlc3MoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykK
KyAgICAgICAgbV9wYXltZW50UHJvY2VzcyA9IHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVudFByb2Nl
c3NQcm94eT4oKnRoaXMpOworfQorICAgIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBQQUw6
OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAg
IGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgbV9wYXltZW50UHJvY2Vzcy0+Z2V0UGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOworfQor
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nl
c3NQcm94eSogcGF5bWVudFByb2Nlc3NQcm94eSkKK3sKKyAgICBBU1NFUlQobV9wYXltZW50UHJv
Y2Vzcyk7CisgICAgQVNTRVJUKHBheW1lbnRQcm9jZXNzUHJveHkgPT0gbV9wYXltZW50UHJvY2Vz
cy5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZh
bHVlcygpKQorICAgICAgICBzdXBwbGVtZW50LT5wcm9jZXNzRGlkQ2xvc2UocGF5bWVudFByb2Nl
c3NQcm94eSk7CisKKyAgICBtX2NsaWVudC5wYXltZW50UHJvY2Vzc0RpZENyYXNoKHRoaXMpOwor
CisgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCisgICAgICAgIG1fYXV0b21hdGlvblNlc3Np
b24tPnRlcm1pbmF0ZSgpOworCisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgU2VjdXJpdHlP
cmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+
IHNlc3Npb25JRCkKIHsKQEAgLTY4Myw2ICs3MjAsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpz
ZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0
ZQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFkZFdl
YnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uUGFyYW1ldGVycygpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbmV0d29ya1Byb2Nl
c3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBzZW5kVG9QYXltZW50
UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkpKTsKICAgICB9CiB9CkBAIC0xMzMyLDYgKzEzNzIsMTUgQEAgVmVjdG9yPFN0cmluZz4g
V2ViUHJvY2Vzc1Bvb2w6OmFjdGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3Rpbmco
UHJvY2Vzc0kKICAgICB9CiAgICAgcmV0dXJuIHsgfTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorUHJvY2Vzc0lEIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50aWZp
ZXIoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICByZXR1cm4gbV9wYXltZW50UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpz
ZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChib29sIGFsd2F5c1VzZUNvbXBsZXhUZXh0
KQogewpAQCAtMTYwMyw2ICsxNjUyLDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyQ2Fj
aGVkQ3JlZGVudGlhbHMoKQogICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQogICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJDYWNoZWRD
cmVkZW50aWFscygpLCAwKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
dm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCkK
K3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cGF5bWVudFByb2Nlc3MtPnRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKyAgICBtX3BheW1lbnRQcm9j
ZXNzID0gbnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA1NTNkYWM1ZTQxZjg2ZTBjN2M2
YmU3YWYxNzllNDdiMWMwZTdlNzZkLi4zMjJjMDk2ZDc1ZTgyNDk4NWQ3MWEwZWQzOTExNmIxNjVm
NGM1YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQw
LDYgKzQwLDkgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NSZXF1ZXN0Lmgi
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1By
b3h5LmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJWaXNp
dGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgiCkBAIC0xNzMsNiArMTc2LDEyIEBAIHB1Ymxp
YzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiB2b2lkIHNlbmRTeW5jVG9O
ZXR3b3JraW5nUHJvY2VzcyhUJiYgbWVzc2FnZSwgVSYmIHJlcGx5KTsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB2b2lkIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vz
c2FyeShUJiYgbWVzc2FnZSk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIC8v
IFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdlYlByb2Nlc3Mgb3IgUGF5bWVudFByb2Nlc3MgYXMgYXBw
cm9wb3JpYXRlIGZvciBjdXJyZW50IHByb2Nlc3MgbW9kZWwuCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2FnZSk7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNl
c3NhcnkoVCYmIG1lc3NhZ2UpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5Kik7CiAK
ICAgICAvLyBEaXNjb25uZWN0IHRoZSBwcm9jZXNzIGZyb20gdGhlIGNvbnRleHQuCkBAIC0yMTcs
NiArMjI2LDkgQEAgcHVibGljOgogICAgIFByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIoKTsKICAgICBWZWN0b3I8U3RyaW5nPiBhY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NG
b3JUZXN0aW5nKFByb2Nlc3NJRCk7CiAgICAgYm9vbCBuZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVt
ZW50Rm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIFByb2Nlc3NJRCBwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgV2ViUGFnZUdyb3VwJiBkZWZhdWx0UGFnZUdy
b3VwKCkgeyByZXR1cm4gbV9kZWZhdWx0UGFnZUdyb3VwLmdldCgpOyB9CiAKQEAgLTI3Niw2ICsy
ODgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldl
YlNvY2tldChib29sKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygpOworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2Vz
c0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIHZv
aWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VX
b3JrZXJQcm9jZXNzZXMoKTsKICAgICB2b2lkIGRpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rl
cm1pbmF0aW9uRGVsYXkoKTsKQEAgLTM0Miw2ICszNTcsMTIgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVw
bHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZW5zdXJlUGF5
bWVudFByb2Nlc3MoKTsKKyAgICBQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2Vzcygp
IHsgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MuZ2V0KCk7IH0KKyAgICB2b2lkIGdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBQQUw6OlNlc3Npb25JRCBpbml0aWFs
U2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzQ3Jhc2hl
ZChQYXltZW50UHJvY2Vzc1Byb3h5Kik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJD
b250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklE
Pik7CiAgICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eUZyb21QYWdlSUQodWludDY0X3QgcGFnZUlEKSBjb25zdDsKQEAgLTY0MSw2ICs2NjIsOSBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlv
biB7IHRydWUgfTsKICAgICBib29sIG1fZGlkTmV0d29ya1Byb2Nlc3NDcmFzaCB7IGZhbHNlIH07
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nl
c3M7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGF5
bWVudFByb2Nlc3NQcm94eT4gbV9wYXltZW50UHJvY2VzczsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERpY3Rpb25hcnlD
YWxsYmFjaz4+IG1fZGljdGlvbmFyeUNhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+PiBtX3N0YXRpc3RpY3NSZXF1ZXN0czsKQEAgLTc0Miw2
ICs3NjYsMjIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NS
ZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQogICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKIH0KIAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6
c2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpCit7CisgICAgaWYgKG1fcGF5bWVudFBy
b2Nlc3MgJiYgbV9wYXltZW50UHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgbV9w
YXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFBy
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKQoreworICAgIGVuc3VyZVBh
eW1lbnRQcm9jZXNzKCk7CisgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8
VD4obWVzc2FnZSksIDApOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9BbGxQcm9j
ZXNzZXMoY29uc3QgVCYgbWVzc2FnZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDFjMDVmMzQ5ZTY2NjY1Njc4ZjgzZDIxMjc4NGJmOGZmYTZl
ODhhOTkuLjFhYTkwYWNiYzQyOGFlYzhmNDc0NDUwNGNmNGQxZjQzOWU5MDNjMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjIzLDYgKzYyMywx
MiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldAogewogICAgIG1fcHJvY2Vzc1Bvb2wtPmdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgV1RGTW92ZShyZXBseSkpOwogfQorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCit7CisgICAgbV9wcm9jZXNzUG9vbC0+Z2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKCp0aGlzLCBpbml0aWFsU2Vzc2lvbklELCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogI2lmICFQTEFURk9STShDT0NPQSkKIGJv
b2wgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDdiZWI5NTE2NjU1NzI2
NTQxOWQzZGE5MzIzZTQ4OWE5OTRkMGNlMzkuLjA4MWYxYTRlMzcwYTUzMTVhYmQzNWI2Y2YzZjZl
NWY3NGExYTE5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CkBAIC0yODUsNiArMjg1LDkgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZvaWQgZ2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Np
b25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogICAgIGJvb2wgcGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25z
dDsKICAgICBib29sIHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDZhOThmNGU5NjA0N2RhYmYxNjRhNzYxMGE4N2YyYTlmNjg2MGI0OGEuLjhmNWUx
ZDY2NjBiMTUwZDc1NzMwYTYzZTFmMDkzZDQzZjZhMzZkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3
LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBH
ZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+
IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJv
bm91c0luaXRpYWxpemF0aW9uKSBEZWxheWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5
ZWQKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIEdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKSAtPiAoSVBDOjpBdHRhY2ht
ZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vz
c1N1c3BlbnNpb24oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGI5MGMxNDI0MTc2YzY1MTVlN2Vl
NGE1NjIyYjhlYzZlYmUyNmMzODEuLmNkNWZjYzMwOGZhNjYyNmFjYmJiY2VkYjU5YzE0N2JlYWQz
ZWI0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0zNCw2ICszNCwxMCBAQAogI2luY2x1ZGUgIk1v
Y2tBdXRoZW50aWNhdG9yTWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgpAQCAt
MTM1LDYgKzEzOSw5IEBAIFdlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCkKICAg
ICAgICAgQVNTRVJUKG5vbkRlZmF1bHREYXRhU3RvcmVzKCkuZ2V0KG1fc2Vzc2lvbklEKSA9PSB0
aGlzKTsKICAgICAgICAgbm9uRGVmYXVsdERhdGFTdG9yZXMoKS5yZW1vdmUobV9zZXNzaW9uSUQp
OwogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFBy
b2Nlc3NQb29scygpKSB7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgICAg
IHByb2Nlc3NQb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nl
c3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKICAgICAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nl
c3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQogICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNz
LT5yZW1vdmVTZXNzaW9uKG1fc2Vzc2lvbklEKTsKICAgICAgICAgfQpAQCAtMTYyNiw2ICsxNjMz
LDE5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
SW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBXZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJl
c29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBt
X3Nlc3Npb25JRDsKKworICAgIHJldHVybiBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRh
U3RvcmU6OnBlbmRpbmdDb29raWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9y
KG1fcGVuZGluZ0Nvb2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDg1MmI2YmI1ZDM2ZmJiNmU5NTk5
MmU4ODI0NjhiMjZiZGQ5MDcxNTkuLjM5MTg2MTQ4OWMwM2I3ZTBjYjg1NjdmYjVlZTNlZTJhZDE3
ZmJlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTY2LDYgKzY2LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwog
ZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CiAKQEAgLTE3MSw2ICsxNzQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fz
c29jaWF0ZWRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAgV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGF5bWVudFByb2Nl
c3NQYXJhbWV0ZXJzKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAg
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAgICAgdm9p
ZCBhZGRQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmU0MGRiZDc4MTQ2
NDZlNzU4MTY4NDg2ZjU5ZjNlNGU1NjdhMWNkMS4uNjA3ZWRkMzAyODgzOGQ2YWUzYjVhN2IyMTJm
MGRkZTJlM2QwODdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC04NDgsNiArODQ4LDcgQEAKIAkJMzdGOTBERTMxMzc2NTYwRTAwNTFD
RjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29v
a2llQWNjZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBX
S0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBX
S0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcg
LyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tO
U1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CisJCTM5MTM2MDI1MjE5M0MxNDMw
MDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEg
LyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5
NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwogCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRTE1
ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2Vi
Q29sb3JDaG9vc2VyLmggKi87IH07CkBAIC05MDYsNiArOTA3LDEwIEBACiAJCTUxMEY1OTExMURE
RTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTc5MURERDc4NTQwMDMyQ0FEMyAv
KiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4
dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEu
aCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwQUUwQjEz
M0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QTkxRjI5NTk3NzAw
M0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CisJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5
QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTIxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk1MTFG
N0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQwMUVCMUJD
RUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwogCQk1MTFG
OEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5MDBBOTVG
NDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CiAJCTUxMUY4QTgxMTM4QjQ4NUQwMEE5
NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNo
aW1MaWJyYXJ5Lm1tICovOyB9OwpAQCAtOTU3LDYgKzk2Miw3IEBACiAJCTUxN0NGMEUzMTYzQTQ4
NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTEx
NjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3
Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBF
MjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAq
LzsgfTsKKwkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJE
MTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi87IH07CiAJCTUxODcx
QjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8q
IFdlYkNvbnRleHRNZW51LmggKi87IH07CiAJCTUxOEFDQUVBMTJBRUU2QkIwMEIwNEI4MyAvKiBX
S1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3Bh
Y2VUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUxOEFDRjExMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNGMTAxMkIwMTVG
ODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk4NCw2ICs5OTAsOCBAQAogCQk1MUREOUYyODE2
MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8q
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAv
KiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUxRTM1
MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJ
REJVdGlsaXRpZXMuaCAqLzsgfTsKKwkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1l
bnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi87IH07
CisJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwICovOyB9OwogCQk1MUU2QzE2NDFGMjkzNUREMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi87IH07CiAJCTUxRUZDMUNGMTUyNEU2MjUw
MEM5QTkzOCAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8q
IFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJl
c291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRl
ck1lc3NhZ2VzLmggKi87IH07CkBAIC0xNTY5LDYgKzE1NzcsNyBAQAogCQlEM0I5NDg0NzExRkY0
QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmggKi87IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
Qjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJ
RTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4
IC8qIEVkaXRpbmdSYW5nZS5oICovOyB9OworCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyog
UGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1Mu
bW0gKi87IH07CiAJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJv
Y2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9
OwogCQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llcy5oICovOyB9OwogCQlFMTUxM0M2NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNz
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
NTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oICovOyB9OwpAQCAt
Mjk4MCw2ICsyOTg5LDExIEBACiAJCTNGNDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzOTEzNjAyNDIxOTNDMTQzMDA1
NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzOTEzNjAyQjIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyQzIx
OTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5NDJEMjE5
QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xv
ckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29s
b3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5
M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zMTAyLDYgKzMxMTYsNyBAQAogCQk0RjYwMTQzMDE1NUM1QTMyMDAx
RkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gt
by5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1
QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEgLyogQ29va2llU3RvcmFnZVV0aWxzQ0YubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29raWVTdG9yYWdlVXRpbHNDRi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzExQzczRDIyQjAwNzk5M0NC
IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcyMUM3M0QzN0IwMDc5OTNDQiAvKiBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNw
cDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
QEAgLTMxMjUsMTEgKzMxNDAsMTUgQEAKIAkJNTExMEFFMEExMzNDMTZDQjAwNzI3MTdBIC8qIFdL
SWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdL
SWNvbkRhdGFiYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEFFMEIx
MzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTE4RTlBMjFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE0MUYyOTU5NjMw
MDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNTFG
Mjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE2MUYyOTU5NjMw
MDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3Jh
Z2VQcm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nl
c3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEx
OEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDNGMUVCMUJDRUUw
MEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNlY0l0ZW1TaGltTGlicmFyeS5oOyBw
YXRoID0gLi4vLi4vV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTQ3LDYgKzMxNjYsNyBAQAogCQk1MTI5MzVENjEyODhE
MTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEUxMkE4ODM4ODAwNjI5NTMwIC8qIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhGMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyRjU4OTAxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzIxNyw2ICszMjM3LDggQEAKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vz
c1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBTaGltLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlEMDBGNzYy
MzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMzYsNiAr
MzI1OCw3IEBACiAJCTUxQTU1NjAwMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRl
bVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVJ
dGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0UxRDFDNENC
OTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJJREJSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUE1ODc3RjFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQlJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnhjY29uZmlnOyBwYXRoID0gUGF5bWVudFNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxQTcyOERDMUIxQkFEMkQwMDEwMkVFRSAvKiBXS0J1bmRsZU5h
dmlnYXRpb25BY3Rpb25Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MUE3RjJGNDEyNUJGOEQ0MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTMyOTUsNiArMzMxOCwxMSBAQAogCQk1MUREOUYyNzE2MzY3REEyMDAx
NTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJNTFFMzUxQzgxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJVdGlsaXRpZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQlV0aWxpdGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzk5MDUxRDZGNTRDNTAwOUM4
ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUU2QzE1RjFGMjkzNTUxMDBGRDM0MzcgLyogUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBwYXRoID0gaW9z
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ0NDksNiArNDQ3Nyw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVk
aXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0lPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYw
IC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNG
NTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3Jr
Q2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29y
a0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjIxLDYg
KzQ2NTAsNyBAQAogCQkJCTFBMUQyMTE2MTkxRDk5NUMwMDAxNjE5RiAvKiBwb3N0cHJvY2Vzcy1m
cmFtZXdvcmstaGVhZGVycy5zaCAqLywKIAkJCQlCQzJFNkU3NDExNDE5NkYwMDBBNjNCMUUgLyog
UGxhdGZvcm0gKi8sCiAJCQkJMUFBRERGNEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNoYXJlZCAqLywK
KwkJCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8sCiAJCQkJ
QkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLywKIAkJCQlCQzAzMkQ1QzEw
RjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2MTM4RTAxMDBE
MDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCkBAIC00ODI2LDYgKzQ4NTYsNyBAQAogCQkJCTQx
RDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAvKiBOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0bGVtZW50
cyAqLywKIAkJCQk1QzdBQ0ZEMTIxOEREOEJEMDA0Q0JCNTkgLyogTmV0d29yay1PU1guZW50aXRs
ZW1lbnRzICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3JrU2Vydmlj
ZS54Y2NvbmZpZyAqLywKKwkJCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNl
cnZpY2UueGNjb25maWcgKi8sCiAJCQkJQTFFREQyREIxODg0Qjk2NDAwQkJGRTk4IC8qIFBsdWdp
blByb2Nlc3NTaGltLnhjY29uZmlnICovLAogCQkJCUJDODI4M0YyMTZCNEZDNTMwMEEyNzhGRSAv
KiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnICovLAogCQkJCUJDODI4M0Y0MTZCNEZDNTMwMEEy
NzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnICovLApAQCAtNDk4Myw2ICs1MDE0LDcg
QEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0MDBERDdDNjggLyogR2FtZXBhZCAqLywKIAkJCQkyREE5
NDQ5NjE4ODRFNERBMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJDMTExQjVBMTEyRjYyODIwMDMz
N0JBQiAvKiBtYWMgKi8sCisJCQkJMzkxMzYwMkEyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnQg
Ki8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAwODUyNDE4IC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQy
RTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUJGNDM3
ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0ZURhdGEgKi8sCkBAIC02MjYzLDYgKzYyOTUsMjQg
QEAKIAkJCXBhdGggPSBSZXNvdXJjZXMvbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJMzkxMzYwMkEyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnQgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5MTM2MDJCMjE5NTE0QkQwMDU2
NDkyQSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCisJCQkJMzkx
MzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OworCQkzOTJFOTQyQTIxOUEyRTg1MDA1MEY5ODIgLyogUGF5bWVudHMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5MkU5NDJEMjE5QTM5
OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJ
MzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmggKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9ICI8dW5r
bm93bj4iOworCQl9OwogCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY1ODIsNiArNjYzMiwx
NiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJ
CTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8q
IFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovLAorCQkJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYw
QiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8sCisJCQkJNTEyQTk3NjYxODBFMDVEMjAwMzlB
MTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0
aCA9IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTE4RThF
RjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY2MzgsNiArNjY5OCwyMCBAQAogCQkJcGF0aCA9
IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBBMTgwQ0M0
MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLywK
KwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAor
CQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAorCQkJ
CTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAq
LywKKwkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJC
NyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQlwYXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03MDYxLDYgKzcxMzUsNyBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FDOUUzMDA1
RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAorCQkJCTM5MTM2MDI0
MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovLAogCQkJ
CUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2Ig
Ki8sCiAJCQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2Vi
Q29udGVudC5zYiAqLywKIAkJCSk7CkBAIC03MTA5LDYgKzcxODQsNyBAQAogCQkJCTRBNDEwRjQx
MTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJCQk1MTA1QjBEMjE2MkY3QTVF
MDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyog
Tm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCisJCQkJMzkyRTk0MkEyMTlBMkU4NTAwNTBGOTgyIC8q
IFBheW1lbnRzICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICov
LAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYw
OEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywKQEAgLTcyNzEsNiArNzM0Nyw3
IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1hYyAqLywKIAkJCQk1MTBDQzdF
NzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkzMUEyRUM0MDE0ODk5NzM3MDA4
MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKKwkJCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIg
LyogUGF5bWVudHMgKi8sCiAJCQkJMUFFRkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMg
Ki8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0MjAwMDZFM0ZFIC8qIFJlbW90ZUxheWVyVHJlZSAqLywK
IAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04Mzcw
LDYgKzg0NDcsMTAgQEAKIAkJCQk1QzBCMTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1Nv
Y2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8q
IE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJE
ODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5o
ICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJ
CUNEQTI5QTI0MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJh
Y2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CkBAIC04Njg5LDYgKzg3NzAsMTQgQEAKIAkJCW5hbWUgPSBQREY7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQlFMUZFRjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QzE5MEY3
OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8sCisJCQkpOworCQkJcGF0aCA9
IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUU0ODlEMjgyMUEwQTJC
RTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC05MTU5LDYgKzkyNDgsOSBAQAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0Ix
NSAvKiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2
MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
NTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1l
bnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUFCMUYyOTU5NzcwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0TWVudS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEQzE4RkIwMjE4OTEyNjQwMDI1QTg4RCAvKiBQZW5jaWxLaXRTUEku
aCBpbiBIZWFkZXJzICovLApAQCAtMTAxNTIsNiArMTAyNDQsNyBAQAogCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFD
NDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAq
LywKKwkJCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXlt
ZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8q
IGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRERDM3OTIw
QkY0M0Y1MDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9u
X21vZGVsIGluIFJlc291cmNlcyAqLywKQEAgLTEwNzYxLDYgKzEwODU0LDExIEBACiAJCQkJMkQ5
MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZh
cmlhbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JF
OSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4
OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1
MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFF
MzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
QTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4
QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZDBhN2I1NjkyYjExOWZjNjdmNDI3ZGQ0NzllZTE4
ZDM4MTYzYzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5
bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisKKworI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikK
KyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rp
b24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9w
ZW4oKTsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9
CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
JiByZXBseUVuY29kZXIpCit7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9p
ZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
OworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb25DbG9zZWQodGhpcyk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTQxNzdmOGYyZWM3YzU1Mzg3N2QxZmI5MDQyNmQxMjNjMTZhNjIwZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJN
ZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgorI2luY2x1ZGUg
PHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOwor
ICAgIAorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVj
dGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVy
cmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4
IDJiZmFlZTQ3NmUxZjRiY2NjZGIyNjYwZmU1ZDhlNjZiZDY3NGEzZDcuLjVkZmM1NTUwMGM1Njkz
ODE0NWNiNjNiZjc2ZDVkOGI3NjkzOTBhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05MCw2ICs5
MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JikgZmluYWw7CiAKICAg
ICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
RGF0YSYpOworICAgIHZvaWQgc2NoZWR1bGVQYXltZW50Sm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJKb2JEYXRhJik7CiAKICAgICB2b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggNzBjZThlYTRlZWU4MDk2ZTA0YjNlZTY3ZDFmNGNmMjEyNzM1MGRh
Yy4uOTUxZWZlYmM4NmM4ZGU5Y2VmZDk1ZmYwY2M0ZWNjZGQ4NzEyYWY0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiArNDMsOSBAQAogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFj
a2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAi
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRl
ci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVR5cGUuaCIKQEAgLTEyMTcsNiArMTIyMywzMSBAQCBXZWJMb2FkZXJTdHJhdGVneSYgV2Vi
UHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAgIHJldHVybiBtX3dlYkxvYWRlclN0
cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3M6
OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
biA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24g
PSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vz
czo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5p
dGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmll
cjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihpbml0
aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIpLCAwKSkgewor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rp
b246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgICAg
IENSQVNIKCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9IFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklkZW50aWZpZXIp
OworCisgICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3M6
OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCAxODdlYTQwZGU3ZTFkNDk0YTkyN2E0Mjk3NjcwOGZjNTQ0
ZWFmMDZmLi4zMWM2OWE1MDdhMGY2OTZjYjYzMjQyODc4NDBkYTk3NGY0Y2JmMDRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4LDYgKzk4LDkgQEAgY2xhc3MgV2Vi
TG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7
CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YTsKQEAgLTE3
NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2ViUlRDTmV0d29yayYgbGliV2ViUlRD
TmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIGVuc3VyZVdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lkIHNldENhY2hlTW9k
ZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNz
aW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDMyLDYgKzQ0MCwxMCBAQCBwcml2YXRlOgogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk+IG1fYXV0b21hdGlv
blNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUmVmUHRy
PFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1
M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjg4LDYgKzI4OCw3IEBAIEVOQUJMRV9OQVZJ
R0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05F
OwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExB
VEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElG
SUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4g
PSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhjNTM1YzdmZjYzMDdj
OTU1ZmE5NzcxMjEzMDQ4OGU0YWE4OGNlOTYuLjU1ZjY3N2MwMjRlN2E4ZWM2ODJjYTI4MGFiYmE2
MWRiNDUyNjA2MWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVl
QGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUg
ZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE4LTExLTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFNQSSB0byBz
aG93IGEgc2FmZSBicm93c2luZyB3YXJuaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4Njcy
ODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0
N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsy
ODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9O
QVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9U
SUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21h
Y29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0g
OwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVO
QUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JN
X05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEw
MmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFi
NDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiAr
MTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExh
dW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUgc2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28g
dGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQu
CiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVkUHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBf
c2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJv
Y2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6
ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBh
dXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpA
QCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9j
ZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQ
RUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRp
Zmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1
Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJj
M2Q2M2E5ZWE4N2MyNmVjYTBkMWJmZDY2Nzc2NTczMDkxNi4uZTY0MDNlOWUwZmY2ZWFiZGE5ZWNl
MGYyOWNmZmE2NWU1NTVjZGM4NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTEwNDYsNiAr
MTA0Niw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJQcm9jZXNzQ3JlYXRp
b24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5bWVudCBwcm9jZXNzIGlzIG5vdCBsYXVuY2hlZC4K
KyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29s
Ll9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9h
ZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJv
Y2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9j
ZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWQpOwogCkBAIC0xMTMwLDYg
KzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHBheW1lbnQgcHJvY2VzcyBjcmVh
dGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vz
c1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7CisKICAgICAvLyBMZXQncyB1c2UgdGhl
IHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBoYXMgc2VydmljZSB3b3JrZXIgYW5kIGxvYWQgYSBw
YWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtjb25m
aWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApp
bmRleCA4ZGI1NjkwYjM5NDMxMDk0YjUzNThkMGQyYWZiODc2OTlkMjA2ZGEwLi5kNjJjNjBmNzhj
YzUzMGEzNWFjNzNhZThhNDg0ZDU2MDhiMTE3ZDdmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKQEAgLTMzMyw2ICszMzMsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAKICAgICB2b2lk
IHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZENhbmNlbENsaWVudFJlZGlyZWN0OwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAppbmRleCA1ZGE1NDZhZWQ1ZTdmN2UzNTk1ODNkZDg5YTgyMmI0MGU1Y2NjZjc0Li5jOWQw
NmU5NWNjYjc5NGY2YjlkYzY0YmYzYTlmMjczYjgxNTcxNTdhIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyNTUs
NiArMTI1NSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdl
dCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVQ
YXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VO
YW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9y
VGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3Nh
Z2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwogc3RhdGljIHVuc2lnbmVkIG5l
eHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1bnNpZ25lZCBjYWxsYmFja0lE
ID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGU4YmE5N2Y3MTY4NGRmY2EwNzc1
NzNjY2FiYzEzY2U2NDM0MDJmYjEuLjdlNjUyYzUzZWU1YWQ0NmNmZTY1YWZlNzA5M2U4YTFiOWE2
NTg5NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCkBAIC00NDYsNiArNDQ2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclBy
b2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICB2b2lk
IHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVlUmVmKTsKICAgICB2b2lkIGNhbGxE
aWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkNGU4MThlZjIxNWIzYzY2MzU5Zjg4NDY1
MjcxZjBjZTA4MjNjZWUxLi44YmRiZDRjNzVkODExOTI3NjQ0NTgyMDMzY2M2MzZiYTMyMGQ0OGM5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTA3NCw2
ICsxMDc0LDE1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc05h
bWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJv
Y2Vzc05hbWUoKQoreworI2lmIFBMQVRGT1JNKEZBTUlMWV9JT1MpCisgICAgcmV0dXJuICJjb20u
YXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbHNlCisgICAgcmV0dXJuICJQYXltZW50IHByb2Nl
c3Mgbm90IGF2YWlsYWJsZSBvbiBhbnl0aGluZyBidXQgaU9TIjsKKyNlbmRpZgorfQorCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykK
IHsKICAgICBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRl
c3RpbmcocGxhdGZvcm1Db250ZXh0KCksIGFsbG93cyk7CkBAIC0xNTA4LDYgKzE1MTcsMTEgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYg
Y29udGV4dCwgY29uc3Qgdm9pZCAqY2wKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgp
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29u
dGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19j
YXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5wYXlt
ZW50UHJvY2Vzc0RpZENyYXNoKCk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2Vp
dmVLZXlEb3duTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0RpY3Rpb25hcnlSZWYgbWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCBib29sIHN5bmNocm9ub3VzKQogewogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJLZXkiKSk7CkBAIC0xODQxLDYgKzE4NTUsMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0
d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiAgICAgZXhpdCgxKTsKIH0KIAordm9pZCBUZXN0Q29udHJv
bGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpCit7CisgICAgcGlkX3QgcGlkID0gV0tDb250
ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKG1fY29udGV4dC5nZXQoKSk7CisgICAgZnBy
aW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgcGF5bWVudFByb2Nlc3NO
YW1lKCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOworICAgIGV4aXQoMSk7Cit9CisKIC8vIFdL
UGFnZU5hdmlnYXRpb25DbGllbnQKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkQ29tbWl0TmF2
aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlw
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTI2NDAsNiArMjY2MSwxMSBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tD
b250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOwog
fQogCit2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7Cisg
ICAgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOwor
fQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1X
aWxsUnVuVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNjI1YTViNTQ2NTkyMmM3YmFmZDk0YjdhY2M4MTI3NjU3
YjhiYzkxZi4uN2YwZjc1YjRkYmFmNWQ5MWNmNDUwNjc5MTU2NTQzNWZjMzVmODQxYSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTgxLDYgKzE4MSw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogd2ViUHJvY2Vzc05hbWUoKTsKICAgICBzdGF0
aWMgY29uc3QgY2hhciogbmV0d29ya1Byb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGRhdGFiYXNlUHJvY2Vzc05hbWUoKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogcGF5bWVu
dFByb2Nlc3NOYW1lKCk7CiAKICAgICBXb3JrUXVldWVNYW5hZ2VyJiB3b3JrUXVldWVNYW5hZ2Vy
KCkgeyByZXR1cm4gbV93b3JrUXVldWVNYW5hZ2VyOyB9CiAKQEAgLTI1Miw2ICsyNTMsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVu
dFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7CiAK
QEAgLTM1Nyw2ICszNTksOCBAQCBwcml2YXRlOgogICAgIC8vIFdLQ29udGV4dENsaWVudAogICAg
IHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2
b2lkKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CisgICAgc3RhdGljIHZv
aWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKKyAg
ICB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKIAogICAgIC8vIFdLUGFnZU5hdmlnYXRp
b25DbGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiwg
V0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYjhmY2Q1N2I4NzU5YWFk
ZjNjZDczZDk5NjFmNTA3YmI4ZWU0NGI4Yi4uMGM0ZjZhOWNlYzM3YjM3MDU4MzMxNGZmYzgwOTJl
ZTg0MDVhMTNmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
QEAgLTE0NTMsNiArMTQ1MywxMiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0
aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpIHsKKyAgICAgICAg
QVNTRVJUKCFtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIikpIHsKICAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9k
eSk7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354966</attachid>
            <date>2018-11-15 12:05:58 -0800</date>
            <delta_ts>2018-11-15 13:51:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181115120555.patch</filename>
            <type>text/plain</type>
            <size>138522</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmI2ODgzZjcxNmM0ZGZhOTU3OThkYzBlYjNiZmZmYjYxNjAyNjE2Li4yNGRlZDM4OTdjMDA3MjFk
NmQ3OWQ5MWI4Y2NkMzEwNGE3ZDhmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhc3MgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9kaXNjb25uZWN0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjM2FhYzBhZTZkZTBkOGVmY2MyMjhkNmJiZTVlM2YyZTk0
ZTU2ODI5Li42NmJmYTMzM2VhYmNiZDI2ODUwNTg4NmY3Mzk2MDQwZGM3N2RjMTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0xNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIENvZGUgcXVhbGl0eSBjb25jZXJucyBy
YWlzZWQgZm9yIDE5MTI5MTogW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYTc5NGYyMTIxMzU2Y2E0MDdhODYzZGExZWI5YTJkZDhlOWM4M2RlYi4uZjMwMzI4MDYyMWY1
MmZiMDFkMmVlNjlmNGNlNTNjOTViZDg4OWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZTVmMmNmMmZkYmM5YTg2Y2Q2MDZm
Mjg4ODNiYTljZGUxM2QzMi4uOGU1NTAwMGM0MzIwMzQ0OWMxNDE0OWMzNGRhNWJmYWQxNGIwYTM2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzog
QWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1l
bnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQ
VUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BV
TW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJl
VG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0Fs
bExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1v
cnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlh
RGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEg
cmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNDU2Nzg4M2M4ODMyYTU3MzI2ZGNmNzYwNDM4MDFhMmY5ZWRjYjc0ZS4uMjM0
MTk0ZjYzMmNmOTNmNjRiZmJhNjA4Y2M5NTAyMTYxOWE2ZTZlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBj
b25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2
NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4
MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4
OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEw
MjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1Yzhj
ODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4ZjFmNjc2
NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMiID0gIiVA
IFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50IiA9ICIl
QCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFh
ZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEzODg2YjVkNDhiNjZkMzFm
MDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3MiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJVF9ESVJ9
L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAgICIke1dF
QktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Qcm9jZXNz
IgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2FtZXBhZCIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCkBAIC00
NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
CiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgorICAgIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyMSw2ICsyMjks
MTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQogCitzZXQo
UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisKIHNldChQbHVnaW5Qcm9j
ZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2JiYjAxMmEzOWU2NWRhOGJh
OGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRjZmRiMjA2YTRkNjNjZjNl
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNj
b25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJFRElDVElPTltzZGs9bWFj
b3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVMgPSAkKFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BSRURJQ1RJT04pKTsKIFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9QUkVESUNUSU9OOwogCitX
S19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJW
SUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9TRVJWSUNFX05BTUUpKTsK
IFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19TVE9SQUdFX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8gPSBj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQzMjEzMzZkZDA3MGU5Yjc4YjU5ZjgwZGUyYzE1MWFlZWFkNzMwNjEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
CkBAIC0wLDAgKzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBt
ZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8v
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BBWU1FTlRfRU5USVRMRU1F
TlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVE
X1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzOwor
CitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0gJChXS19QQVlNRU5UX0VO
VElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JFU1RSSUNURURfRU5USVRMRU1FTlRTKSk7
CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJQlJBUllfVkFMSURBVElPTl9DT0RFX1NJ
R05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdLX1BBWU1FTlRfU0VSVklDRV9QUk9EVUNU
X05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsKK0lO
Rk9QTElTVF9GSUxFID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2N2Q0OGM2
NGQ3MjliY2ZlZTgwZjVhYzQwZjRlN2MzZWJjNzczMjQuLmQzMTc1YWQ4YjBiMzJjN2Y1NjY2YTZi
M2JkMjdlM2Q5MjY1MjJiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMwLDYg
KzMwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMg
XAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCIFwKICAgICAkKFdlYktp
dDIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIgXAorICAgICQoV2ViS2l0MikvUGF5bWVu
dFByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAgJChXZWJLaXQy
KS9QbHVnaW5Qcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCkBA
IC03Myw2ICs3NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdv
cmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwK
ICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9QYXltZW50cyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lucyBc
CiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIFwKICAgICAkKFdlYktp
dDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTEyMSw2ICsxMjMsMTAgQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAgICAgTmV0d29ya1NvY2tldFN0cmVhbSBcCiAgICAgUGxheWJhY2tTZXNzaW9u
TWFuYWdlciBcCiAgICAgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IFwKKyAgICBOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlciBcCisgICAgUGF5bWVudFByb2Nlc3MgXAorICAgIFBheW1l
bnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAg
ICBQbHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFiZWFlYzExY2NlMmFlMjlhMDY0MmMyNDE1
NmJjNmYyMDNmNTFjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0
b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2Vz
czsKKyAgICByZXR1cm4gcHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9j
ZXNzKCkKK3sKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2VzcygpCit7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUo
KQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q2hpbGRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41Y2FiNTRkYmNjMGNiMWFmYzBiYmFjODhkMWNkYTg1NWYwZmVjMzUzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5o
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjsKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKwor
Y2xhc3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVk
PFBheW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFByb2Nlc3MmIHNp
bmdsZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUg
PSBQcm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2VzcygpOworCisgICAg
dm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNzKCk7CisKKyAgICAv
LyBDaGlsZFByb2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBN
ZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmKTsKKyAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
IVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkwZjhl
MWEzOGUxMjEyOGE0ODJmZmI3NTdmMWE5OGVmODZlMDQzMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgeworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2YWIyNDJhODFjNjY5
M2RmNzc5YjQyNGE1NWZhZjI4MjE0OTEwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
MCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNz
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7
Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8gRklYTUU6Cisg
ICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpCisgICAg
Ly8gdG8gZm9yY2Ugc3luY2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hy
b25vdXMgbWVzc2FnZXMgaW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUg
V2ViUHJvY2VzcyB3b3VsZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3
YWl0aW5nIGZvciBhIHN5bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1l
bnQgcHJvY2Vzcywgd2hpY2ggd291bGQgYmUgdW5zYWZlLiBJbnZlc3RpZ2F0ZSBpZiB3ZSBuZWVk
IHRvIGNhbGwgdGhpcy4KKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246On5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7
CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkuZGlkUmVj
ZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVj
dGlvbik7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFS
QU0obWVzc2FnZVJlY2VpdmVyTmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2VOYW1lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5U
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNTczZjgwMzY3
YmFmYjk5YzQyOTA1NGEwYTY5NDljODYxYTg5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3Nh
Z2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVz
c2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgflBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKworICAg
IC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAg
ICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJu
IDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzA0YzBkYmMyNDc1NDIxN2M3ZDlhM2MwNGI4NDBlM2QyMjNkYmMyNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2Vz
IC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVu
dFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2ZhM2FhMWQyMmE4MzVjMWVkOWU2NThiYTIzMzgw
YTkxZWI4MjdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQ
TEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVBTF9E
QVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQ
cm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywg
U2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7Cisj
aWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBvdmVy
cmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUg
SUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xh
c3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRl
cnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJl
c291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7CisgICAg
Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1l
dGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2
NzJjNjg2YjE2NjdhZDk3ZjVkZmQ3NWE0YjNhN2JkYzA2MDdiMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDMyIEBACis7IENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Cis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFs
LXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEp
CisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2Vydmlj
ZS1uYW1lLXByZWZpeCAiIikpCisKKyhkZW55IGxzb3BlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQ
cm9jZXNzLmgKaW5kZXggYTcyYmM5MjlkYmQ3Yzc0YzIyNjY5YjgyMzE3YTYxZmZhYmRmMzc2OS4u
NWQwY2M2ZTJmNTRkMzY4MzJkZDI1Zjg3YzA4Mjc3MDkzYmRjM2E1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAgICAgICBXZWJD
b250ZW50LAogICAgICAgICBOZXR3b3JrLAogICAgICAgICBQbHVnaW4KKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICAgICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MDgzMzEyY2Y4OGY3ZGY5NjQ5YjJkMzYyYmQ3NDYxMTEwMGY4MzAw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQor
eworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOwor
fQorCitib29sIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYTA5YWI3ZWZkN2YyMDk0ZmU2ZDY3ZWY0NWI5ZjM4
NDY3MzdhZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVu
Y29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
KCk7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKTsKKworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDJjZTcxNmU0Yzcy
ZTU4MmFiZTMwZjQ4NzlkMmM2ZWI5ZTQ5OWE5N2IuLjYyYjU0NzRlZmFhNzI0ZWFiNTI4YjRmNjcw
MTc5MWYwY2U5YWFkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aC5oCkBAIC0zMiw1ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGV4
ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdp
blByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQYXltZW50
UHJvY2VzcygpOworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCA4NzY2ZGZkMzAyMDk2MzFkMzk4YTUzOTgzOGNlYTlmYzA0YTg3N2ZhLi5lYWEy
YzNlNjc1M2UzYjk4YTg0YmZjNTNlYmIwODM4NTFhZGM2OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTc5
LDYgKzc5LDkgQEAgTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXku
Y3BwCiAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcAogCitQ
YXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiAvLyBUT0RPOiBXZSBzaG91bGQgdW5pZnkgdGhl
c2UgZmlsZXMgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogUGxhdGZvcm0v
TG9nZ2luZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9Nb2R1bGUuY3BwIEBuby11bmlmeQpAQCAt
MjA3LDYgKzIxMCw4IEBAIFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5j
cHAKIAogU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCiAKK1NoYXJlZC9QYXltZW50L1Bh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorCiAvLyBUT0RPOiBUaGVzZSBmaWxl
cyBzaG91bGQgYmUgdW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQu
CiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcCBAbm8tdW5pZnkKIFNoYXJlZC9Q
bHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcCBAbm8tdW5pZnkKQEAgLTM4MCw2ICsz
ODUsOCBAQCBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCiBVSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCiBVSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKIAorVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5m
b1N0b3JlLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBA
IC00ODAsNiArNDg3LDggQEAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
Y3BwCiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCiAKK1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCisKIC8vIFRPRE86IFRoZXNlIGZpbGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2Ug
R1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3ZlZC4KIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBlY2M4MmQxYThjZTQ2
NzVhYzFhNGY2ZWQ3MDRiNmIyNDI4ZDk3NTI4Li5kYmMyYTg1YTcxNTlhY2EwZGIwZGQ2MzA4MTU2
Y2QxZmQ4N2I4ZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xODMsNiArMTgzLDggQEAg
U2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuY3BwCiBTaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1
bHREYXRhLm1tCiBTaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCiAKK1BheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQorCiBTaGFyZWQvUGx1Z2lucy9tYWMvUGx1
Z2luU2FuZGJveFByb2ZpbGUubW0KIAogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTW9kdWxlTWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcAppbmRleCAwNDAxZTcyYjRjNmY1ZTRlNTlkZDhjYWI0MGI2NjQzNWQ0ZjU4ZmI5
Li43YmYzZjVhMTJjOTdlY2E3OWRiNzQwZTY5YzQ1ZGZjOWVhNGFiYjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSwxMSArNjIxLDI3IEBA
IHZvaWQgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVm
IGNvbnRleHQpCiAgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc2VzKCk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tD
b250ZXh0UmVmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0
b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRH
ZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAg
ICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7
CiB9CiAKK1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsK
KyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K30KKwogdm9pZCBXS0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLU3RyaW5nUmVmIGRvbWFpblJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJh
eVJlZiBtaW1lVHlwZXNSZWYsIFdLQXJyYXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCA0NmQzN2UxZThhMTU4OTU4MGEzNTUzOGVlNWY2
ZjliYzJkODBlMjJjLi4xZjFlODczOWQzMmVkNzZkNTE3MTFjNmJkN2JlYTA2OTQxM2Y5NDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5o
CkBAIC05Miw2ICs5Miw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3Jr
UHJvY2VzcyhXS0NvbnRleHRSZWYsIGJvb2wpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKy8vIE5P
VEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxF
RAorV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250
ZXh0UmVmKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJU
ZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CkBAIC0xMTIsNiArMTE0LDcgQEAgV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1VSTFJlZiBzZXJ2ZXJVUkwpOwogCiBXS19FWFBPUlQgV0tQcm9jZXNzSUQg
V0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0
KTsKK1dLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50
aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRB
ZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIGRvbWFp
biwgV0tTdHJpbmdSZWYgbmFtZSwgV0tBcnJheVJlZiBtaW1lVHlwZXMsIFdLQXJyYXlSZWYgZXh0
ZW5zaW9ucyk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhclN1cHBvcnRlZFBsdWdpbnMo
V0tDb250ZXh0UmVmIGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBjZjI4MTFlOGIzYWNhYWIwZDA4MWUwODgy
Y2JmZDgzYzdkNWRkNWNlLi4wZjMyMTI4YTJmM2RhODU1NmY0NDRkNzQ5Y2I1MzkyNzg1MDgxNmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQpAQCAtNDI0LDYgKzQyNCwxMyBAQCAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdp
bnMKICAgICBfcHJvY2Vzc1Bvb2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogfQogCistICh2
b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzcworeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rpbmco
KTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzcwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29y
a1Byb2Nlc3MoKTsKQEAgLTQ0NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNz
SWRlbnRpZmllcgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllcigpOwogfQogCistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50
UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJv
Y2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggNGQzYTE5MTIwYWJkNDllZWUwNDkyNzk0YTc3ZjRh
ZmIwNmNkZTkwYy4uMGI5OTllODY0YTkxOWFjNThjOTAxOWM4NDYzZTYwN2M1ZjM3ZWNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmgKQEAgLTg0LDEyICs4NCwxNiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVz
dW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAq
KXBhdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBj
b250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFp
bGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAodm9pZClfdGVybWluYXRl
UGF5bWVudFByb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZv
aWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzVGVybWluYXRpb25EZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTog
VGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECist
IChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEx
LjMpKTsKIAogLy8gVGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA4N2IwYmJlYzgx
MzAzYTc1Yzg1ZTJhOGNiYzMwZTdhYzIyZDgzZGNlLi42ZDY2ZWMzMWFmZjZlZGMxYTQxZjY4NDgz
MjUyM2NkODdlNmJkMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgICAg
IFBsdWdpbjY0LAogI2VuZGlmCiAgICAgICAgIE5ldHdvcmssCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICAgICAgUGF5bWVudCwKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogICAgIH07CiAKICAgICBzdHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1h
Yy5tbQppbmRleCAzYjQ2MTYzNGU4NTE3MzlkNjk1ZDA1NTViZTU0ZDY5YjQ4NDYwNjQ4Li41NzJj
ZTQ5MGUwY2E1MTVkYTIwYTdmN2EyYzg4Nzk2OTEwNjNjNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW0KQEAgLTYyLDYgKzYyLDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25z
dCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvCiAgICAgY2FzZSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQbHVnaW42NDoKICAgICAgICAgcmV0dXJuICJj
b20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NCI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDoK
KyAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iYjlhZDE3YmFhYzY5ZWMxYWQ1NmQ5YjM1NjkyZTZiM2ViNzQzNjJjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQ
cm94eS5jcHAKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzUHJveHkuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBheW1l
bnRQcm9jZXNzQ2FsbGJhY2tJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQ7
CisKKyAgICByZXR1cm4gKytjYWxsYmFja0lEOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQ
YXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENo
aWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0
eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQoreworICAgIGNvbm5lY3QoKTsKK30KKworUGF5bWVudFBy
b2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQoreworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIHRlcm1pbmF0ZSgpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlv
bnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50Owor
ICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwg
dGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nl
c3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBp
ZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVuZGluZ0Nv
bm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9vbCBp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNl
Y3VyaXR5T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MsIHNl
Y3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBwcm90ZWN0ZWRQcm9jZXNzUG9v
bCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBUaGUgcGF5bWVudCBwcm9jZXNz
IG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkgcGVuZGluZyBzeW5jIHJl
cGxpZXMgd2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBs
aWVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlv
blJlcGxpZXMudGFrZUZpcnN0KCk7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgfQor
ICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMgcGF5bWVudCBwcm9j
ZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgorICAgIG1fcHJvY2Vzc1Bvb2wu
cGF5bWVudFByb2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rp
b25JZGVudGlmaWVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNo
ZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sK
KyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25u
ZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmll
cklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIEZJWE1FOiBEbyBi
ZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytpKQor
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAgIAorICAgIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ2
YzFiOTdhMDAwZmZkOTA3NTZkYjFjNzQ2NDU4NDBhNThmMjg0MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaApA
QCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVk
ZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFzcyBXZWJQ
cm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBXZWJzaXRl
RGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBDaGlsZFBy
b2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7CisgICAgCisgICAg
dm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJik7CisKKyAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQorICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9j
ZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIHByb2Nlc3NX
aWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKTsKKworICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIGRpZENy
ZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYp
OworCisgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKKyAgICB2b2lkIGRpZEZpbmlzaExh
dW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92
ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1Bvb2wmIG1fcHJvY2Vzc1Bvb2w7CisKKyAgICB1bnNp
Z25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7CisgICAgRGVxdWU8TWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVw
bHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMzEwY2ZjZDUxNjJlYzQ3Y2VhMjkzMWQ2ODQ3OWI5
MGExMDU0NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXlt
ZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVy
IHsKKyAgICBEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvSGlkU2VydmljZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvSGlkU2VydmljZS5oCmluZGV4IGJjMzYzMjMxYjU0MWYxNmYy
YjlhYWM1OGI0MzRlNTEwZGY2Yjc0MTguLjdkMmQzNWYyNDdkZWQwMmUwNmY0ZDZiMTVkM2E5ZDc1
NDFlZDJhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL0hpZFNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9IaWRTZXJ2aWNlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmgiCiAjaW5jbHVkZSA8SU9L
aXQvaGlkL0lPSElETWFuYWdlci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNs
dWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBmYTQ1NzYyZWNlYmEwMTNh
NmFjYTRmOTY0ZGE4NTY2Mzk3NDFkNTc1Li5iZWM3OWI1NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2
OTliNTUzZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmNwcApAQCAtNDYsNCArNDYsMTEgQEAgdm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICBtX2NsaWVudC5u
ZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYkNv
bnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nl
c3NQb29sKQoreworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dENsaWVudC5oCmluZGV4IDgwYzMxMTIyYzA3NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYu
LjU5YjNhNDA3OTEwOGYyMzhmMWQ2ZjhhYmYxYWI5ZWRjYzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNz
IFdlYkNvbnRleHRDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFz
ZT4gewogcHVibGljOgogICAgIHZvaWQgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdl
ZChXZWJQcm9jZXNzUG9vbCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQ
cm9jZXNzUG9vbCopOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXlt
ZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKik7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICAKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0
MDNkYjI5Zjk0MDA0MzhiYTMyYTYwYzc1ODI3NDkzNGZhNi4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVj
MDY3ZDFmMGQ5ZDQ1OWExMjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dFN1cHBsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b250ZXh0U3VwcGxlbWVudC5oCkBAIC0yOSw2ICsyOSwxMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7
CiAKQEAgLTU0LDYgKzU4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Rp
ZENsb3NlKE5ldHdvcmtQcm9jZXNzUHJveHkqKQogICAgIHsKICAgICB9CisgICAgCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBh
eW1lbnRQcm9jZXNzUHJveHkqKQorICAgIHsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogICAgIFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvY2Vzc1Bvb2w7IH0KICAgICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1f
cHJvY2Vzc1Bvb2wgPSBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggYzgyYWZjZjM1YTIyNDlkZTAwMjA5ZDQ1Y2M0MGQ2ZjM5MjdmMGQz
My4uMjhiYTlhZDNkYWRkNzU3MzQyMzkwMzBjMWEzMDM2YjI2YjEzZTJiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTQsNiArNTQsMTAgQEAKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlH
YW1lcGFkLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKQEAgLTQ0Miw2ICs0NDYs
OSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlz
Q3JpdGljYWwpCiB7CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpDaGlsZFByb2Nl
c3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKICAgICBzZW5k
VG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVt
b3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRS
ZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBQ
bHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuc2VuZE1lbW9yeVByZXNzdXJlRXZlbnQo
aXNDcml0aWNhbCk7CiAjZW5kaWYKQEAgLTYwNyw2ICs2MTQsMzYgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJv
Y2Vzc1Byb3gKICAgICBtX25ldHdvcmtQcm9jZXNzLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3Mo
KQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgbV9wYXltZW50UHJvY2Vz
cyA9IHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVudFByb2Nlc3NQcm94eT4oKnRoaXMpOworfQorICAg
IAordm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7
CisgICAgbV9wYXltZW50UHJvY2Vzcy0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlBy
b2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpw
YXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3NQ
cm94eSkKK3sKKyAgICBBU1NFUlQobV9wYXltZW50UHJvY2Vzcyk7CisgICAgQVNTRVJUKHBheW1l
bnRQcm9jZXNzUHJveHkgPT0gbV9wYXltZW50UHJvY2Vzcy5nZXQoKSk7CisKKyAgICBmb3IgKGF1
dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQorICAgICAgICBzdXBwbGVt
ZW50LT5wcm9jZXNzRGlkQ2xvc2UocGF5bWVudFByb2Nlc3NQcm94eSk7CisKKyAgICBtX2NsaWVu
dC5wYXltZW50UHJvY2Vzc0RpZENyYXNoKHRoaXMpOworCisgICAgaWYgKG1fYXV0b21hdGlvblNl
c3Npb24pCisgICAgICAgIG1fYXV0b21hdGlvblNlc3Npb24tPnRlcm1pbmF0ZSgpOworCisgICAg
bV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmln
aW4sIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRCkKIHsKQEAgLTY4Myw2
ICs3MjAsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZQogICAgICAgICBzZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2FjeVByaXZhdGVTZXNzaW9uUGFyYW1ldGVycygpKSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgICAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC0x
MzMyLDYgKzEzNzIsMTUgQEAgVmVjdG9yPFN0cmluZz4gV2ViUHJvY2Vzc1Bvb2w6OmFjdGl2ZVBh
Z2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3RpbmcoUHJvY2Vzc0kKICAgICB9CiAgICAgcmV0
dXJuIHsgfTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUHJvY2Vzc0lEIFdlYlBy
b2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIGlmICghbV9wYXlt
ZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9wYXltZW50UHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbHdheXNVc2VzQ29tcGxleFRleHRD
b2RlUGF0aChib29sIGFsd2F5c1VzZUNvbXBsZXhUZXh0KQogewpAQCAtMTYwMyw2ICsxNjUyLDE3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKQogICAgIGlm
IChtX25ldHdvcmtQcm9jZXNzKQogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJDYWNoZWRDcmVkZW50aWFscygpLCAwKTsKIH0KKyAg
ICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVy
bWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFBy
b2Nlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGF5bWVudFByb2Nlc3MtPnRlcm1pbmF0
ZUZvclRlc3RpbmcoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAppbmRleCA1NTNkYWM1ZTQxZjg2ZTBjN2M2YmU3YWYxNzllNDdiMWMwZTdlNzZkLi4z
MjJjMDk2ZDc1ZTgyNDk4NWQ3MWEwZWQzOTExNmIxNjVmNGM1YzZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQwLDYgKzQwLDkgQEAKICNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5o
IgogI2luY2x1ZGUgIlN0YXRpc3RpY3NSZXF1ZXN0LmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVk
ZSAiV2ViQ29udGV4dENsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xp
ZW50LmgiCkBAIC0xNzMsNiArMTc2LDEyIEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVPiB2b2lkIHNlbmRTeW5jVG9OZXR3b3JraW5nUHJvY2VzcyhUJiYgbWVz
c2FnZSwgVSYmIHJlcGx5KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CiAKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIC8vIFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdl
YlByb2Nlc3Mgb3IgUGF5bWVudFByb2Nlc3MgYXMgYXBwcm9wb3JpYXRlIGZvciBjdXJyZW50IHBy
b2Nlc3MgbW9kZWwuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50
UHJvY2VzcyhUJiYgbWVzc2FnZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5k
VG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lkIHByb2Nlc3NEaWRGaW5p
c2hMYXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5Kik7CiAKICAgICAvLyBEaXNjb25uZWN0IHRoZSBw
cm9jZXNzIGZyb20gdGhlIGNvbnRleHQuCkBAIC0yMTcsNiArMjI2LDkgQEAgcHVibGljOgogICAg
IFByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKICAgICBWZWN0b3I8U3RyaW5n
PiBhY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJRCk7CiAg
ICAgYm9vbCBuZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZyhjb25zdCBTdHJp
bmcmKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFByb2Nlc3NJRCBwYXltZW50
UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
CiAgICAgV2ViUGFnZUdyb3VwJiBkZWZhdWx0UGFnZUdyb3VwKCkgeyByZXR1cm4gbV9kZWZhdWx0
UGFnZUdyb3VwLmdldCgpOyB9CiAKQEAgLTI3Niw2ICsyODgsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sKTsKIAogICAgIHZv
aWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKICAgICB2
b2lkIGRpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsKQEAgLTM0
Miw2ICszNTcsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBQYXlt
ZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2VzcygpIHsgcmV0dXJuIG1fcGF5bWVudFByb2Nl
c3MuZ2V0KCk7IH0KKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmLCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5Kik7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPik7CiAgICAgU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQodWludDY0X3Qg
cGFnZUlEKSBjb25zdDsKQEAgLTY0MSw2ICs2NjIsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9j
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbiB7IHRydWUgfTsKICAgICBib29sIG1f
ZGlkTmV0d29ya1Byb2Nlc3NDcmFzaCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudFByb2Nlc3NQcm94eT4gbV9wYXlt
ZW50UHJvY2VzczsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4+IG1fZGljdGlvbmFyeUNh
bGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+
PiBtX3N0YXRpc3RpY3NSZXF1ZXN0czsKQEAgLTc0Miw2ICs3NjYsMjIgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQm
JiBtZXNzYWdlKQogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1l
c3NhZ2UpLCAwKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MoVCYm
IG1lc3NhZ2UpCit7CisgICAgaWYgKG1fcGF5bWVudFByb2Nlc3MgJiYgbV9wYXltZW50UHJvY2Vz
cy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6
OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KFQmJiBtZXNzYWdlKQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgbV9w
YXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9BbGxQcm9jZXNzZXMoY29uc3QgVCYgbWVzc2FnZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDFj
MDVmMzQ5ZTY2NjY1Njc4ZjgzZDIxMjc4NGJmOGZmYTZlODhhOTkuLjFhYTkwYWNiYzQyOGFlYzhm
NDc0NDUwNGNmNGQxZjQzOWU5MDNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtNjIzLDYgKzYyMywxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldAogewogICAgIG1fcHJvY2Vzc1Bvb2wtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigq
dGhpcywgV1RGTW92ZShyZXBseSkpOwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vz
c2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9w
cm9jZXNzUG9vbC0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBpbml0aWFsU2Vz
c2lvbklELCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKIAogI2lmICFQTEFURk9STShDT0NPQSkKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCmluZGV4IDdiZWI5NTE2NjU1NzI2NTQxOWQzZGE5MzIzZTQ4OWE5OTRkMGNl
MzkuLjA4MWYxYTRlMzcwYTUzMTVhYmQzNWI2Y2YzZjZlNWY3NGExYTE5NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yODUsNiArMjg1LDkgQEAgcHJp
dmF0ZToKICNlbmRpZgogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseSYmKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIGJv
b2wgcGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZEFsbG93
Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDZhOThmNGU5NjA0N2Rh
YmYxNjRhNzYxMGE4N2YyYTlmNjg2MGI0OGEuLjhmNWUxZDY2NjBiMTUwZDc1NzMwYTYzZTFmMDkz
ZDQzZjZhMzZkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJv
Y2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVj
dGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBEZWxh
eWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIEdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBp
bml0aWFsU2Vzc2lvbklEKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERl
bGF5ZWQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIFByb2Nlc3NSZWFk
eVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCmluZGV4IGI5MGMxNDI0MTc2YzY1MTVlN2VlNGE1NjIyYjhlYzZlYmUyNmMzODEuLmNk
NWZjYzMwOGZhNjYyNmFjYmJiY2VkYjU5YzE0N2JlYWQzZWI0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC0zNCw2ICszNCwxMCBAQAogI2luY2x1ZGUgIk1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5o
IgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdl
TWFuYWdlci5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJX
ZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgpAQCAtMTM1LDYgKzEzOSw5IEBAIFdlYnNpdGVE
YXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCkKICAgICAgICAgQVNTRVJUKG5vbkRlZmF1bHRE
YXRhU3RvcmVzKCkuZ2V0KG1fc2Vzc2lvbklEKSA9PSB0aGlzKTsKICAgICAgICAgbm9uRGVmYXVs
dERhdGFTdG9yZXMoKS5yZW1vdmUobV9zZXNzaW9uSUQpOwogICAgICAgICBmb3IgKGF1dG8mIHBy
b2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7CisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9QYXlt
ZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vz
c2lvbklEKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgICAg
IGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vzcygp
KQogICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5yZW1vdmVTZXNzaW9uKG1fc2Vzc2lv
bklEKTsKICAgICAgICAgfQpAQCAtMTYyNiw2ICsxNjMzLDE5IEBAIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlv
bkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXlt
ZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNz
YXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJz
OworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKKworICAgIHJldHVy
biBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBlbmRpbmdDb29raWVzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCmluZGV4IDg1MmI2YmI1ZDM2ZmJiNmU5NTk5MmU4ODI0NjhiMjZiZGQ5MDcxNTkuLjM5
MTg2MTQ4OWMwM2I3ZTBjYjg1NjdmYjVlZTNlZTJhZDE3ZmJlOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAg
LTY2LDYgKzY2LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogZW51
bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5
cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBzdHJ1Y3QgV2Vic2l0ZURh
dGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKQEAgLTE3MSw2
ICsxNzQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fzc29jaWF0ZWRQcm9jZXNzUG9vbChXZWJQ
cm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFy
YW1ldGVycygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgcGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCk7CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAgICAgdm9pZCBhZGRQZW5kaW5nQ29va2llKGNvbnN0
IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYmU0MGRiZDc4MTQ2NDZlNzU4MTY4NDg2ZjU5ZjNlNGU1Njdh
MWNkMS4uNjA3ZWRkMzAyODgzOGQ2YWUzYjVhN2IyMTJmMGRkZTJlM2QwODdlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDgsNiAr
ODQ4LDcgQEAKIAkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2
Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07
CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmggKi87IH07CisJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXlt
ZW50cy5zYiAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjQxOEVGQjE4ODdC
RDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4
RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29s
b3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CkBA
IC05MDYsNiArOTA3LDEwIEBACiAJCTUxMEY1OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5r
SWNvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQzBDOTc5MURERDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBG
QkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAw
QUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzND
MTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29u
RGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKKwkJNTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87
IH07CisJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyog
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwogCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyog
U2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5
LmggKi87IH07CiAJCTUxMUY4QTgxMTM4QjQ4NUQwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJh
cnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFG
OEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovOyB9OwpAQCAt
OTU3LDYgKzk2Miw3IEBACiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUz
MTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8q
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTE3REQ1QkYxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5LmggKi87IH07CiAJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBX
ZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi87IH07
CiAJCTUxOEFDQUVBMTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0FFOTEy
QUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxOEFDRjExMTJCMDE1RjgwMEIw
NEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE4QUNGMTAxMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlh
bFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTk4NCw2ICs5OTAsOCBAQAogCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5
IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJ
REJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLzsgfTsKKwkJ
NTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZBMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi87IH07CisJCTUxRTM1MjAwMTgwRjVEMEYwMEU1
M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MUU2QzE2NDFG
MjkzNUREMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUU2QzE2
MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlLmggKi87IH07CiAJCTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdp
bmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1
NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CkBAIC0x
NTY5LDYgKzE1NzcsNyBAQAogCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5
NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ5
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4
IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovOyB9
OworCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3
OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi87IH07CiAJCUUxMUQzNUFFMTZC
NjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5
IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQlFMTRBOTU0QTE2RTAxNkE0MDA2
OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4
MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovOyB9OwogCQlFMTUxM0M2
NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAv
KiBDaGlsZFByb2Nlc3NQcm94eS5oICovOyB9OwpAQCAtMjk4MCw2ICsyOTg5LDExIEBACiAJCTNG
NDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4
RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQkzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktp
dC5QYXltZW50cy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyQjIxOTUxNEJE
MDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzky
RTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNG
ODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9y
Q2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29z
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBG
RjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTAyLDYg
KzMxMTYsNyBAQAogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25z
ZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNl
TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4
REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4
ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEw
MzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEg
LyogQ29va2llU3RvcmFnZVV0aWxzQ0YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDb29raWVTdG9yYWdlVXRpbHNDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEwNTIzNzExQzczRDIyQjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUy
MzcyMUM3M0QzN0IwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxMjUsMTEgKzMxNDAsMTUgQEAK
IAkJNTExMEFFMEExMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNv
bkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFi
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEyMUYyOTU5NjMwMDNF
RjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3Rv
cmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5
RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMThFOUE0MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFn
ZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
dG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5
RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxMThFOUE1MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMUY3RDNGMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGOEE3NzEzOEI0NjA5
MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFNlY0l0ZW1TaGltTGlicmFyeS5oOyBwYXRoID0gLi4vLi4vV2ViUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MTQ3LDYgKzMxNjYsNyBAQAogCQk1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4
dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRN
ZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEyODhEOTc4
MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMjEy
ODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYxODBF
MDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyRjU4OEUxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1
ODhGMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OTAxMkE4ODM4ODAwNjI5
NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzIxNyw2ICszMjM3LDggQEAKIAkJNTE3
Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBD
Mjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYWNoZVN0b3JhZ2VFbmdpbmVD
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUw
RSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTdERDVCQzE4MERB
N0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9j
ZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nl
c3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTgzQjM5MzEzNzlGODVD
MDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBTaGltLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1OTEy
N0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMzYsNiArMzI1OCw3IEBACiAJCTUxQTU1NjAwMTI4
QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0UxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3Vs
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJREJSZXN1bHQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3RjFEMUM0Q0I5MDA0QkE5
QUYgLyogV2ViSURCUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YklEQlJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE2MEIyOTE4MEND
RDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUGF5
bWVudFNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTcy
OERDMUIxQkFEMkQwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlv
blByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjIxMjVCRjgy
MDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGNDEyNUJGOEQ0
MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyOTUsNiAr
MzMxOCwxMSBAQAogCQk1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTFFMzUxQzgxODBGMkNDQzAw
RTUzQkU5IC8qIElEQlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJREJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElEQlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGRTE4MEY1
RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFFMzk5MDUxRDZGNTRDNTAwOUM4ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVy
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVSUdhbWVw
YWRQcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE1
RjFGMjkzNTUxMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bl
cnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBwYXRoID0gaW9zL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQ
ZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFF
NkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50
U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0NDksNiArNDQ3Nyw3
IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFF
RTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZG
QjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3
MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBO
ZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjIxLDYgKzQ2NTAsNyBAQAogCQkJCTFBMUQyMTE2
MTkxRDk5NUMwMDAxNjE5RiAvKiBwb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaCAqLywK
IAkJCQlCQzJFNkU3NDExNDE5NkYwMDBBNjNCMUUgLyogUGxhdGZvcm0gKi8sCiAJCQkJMUFBRERG
NEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNoYXJlZCAqLywKKwkJCQk1MUY3REMwQTE4MENDNDExMDAy
MTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8sCiAJCQkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVB
IC8qIFVJUHJvY2VzcyAqLywKIAkJCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJv
Y2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2MTM4RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3Mg
Ki8sCkBAIC00ODI2LDYgKzQ4NTYsNyBAQAogCQkJCTQxRDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAv
KiBOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyAqLywKIAkJCQk1QzdBQ0ZEMTIxOERE
OEJEMDA0Q0JCNTkgLyogTmV0d29yay1PU1guZW50aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FC
MTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQk1MUE2
MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8sCiAJCQkJ
QTFFREQyREIxODg0Qjk2NDAwQkJGRTk4IC8qIFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnICov
LAogCQkJCUJDODI4M0YyMTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29u
ZmlnICovLAogCQkJCUJDODI4M0Y0MTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0
LnhjY29uZmlnICovLApAQCAtNDk4Myw2ICs1MDE0LDcgQEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0
MDBERDdDNjggLyogR2FtZXBhZCAqLywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIgLyog
aW9zICovLAogCQkJCUJDMTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJMzkx
MzYwMkEyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnQgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENE
NDAwODUyNDE4IC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8q
IFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUJGNDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vi
c2l0ZURhdGEgKi8sCkBAIC02MjYzLDYgKzYyOTUsMjQgQEAKIAkJCXBhdGggPSBSZXNvdXJjZXMv
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMzkxMzYwMkEyMTk1MTRC
RDAwNTY0OTJBIC8qIFBheW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTM5MTM2MDJCMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCisJCQkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8q
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IFBheW1lbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkzOTJFOTQyQTIx
OUEyRTg1MDA1MEY5ODIgLyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgy
IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9ICI8dW5rbm93bj4iOworCQl9OwogCQk0MTMwNzU5
NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTY1ODIsNiArNjYzMiwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYw
QiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJNTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3Bw
ICovLAorCQkJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
LmggKi8sCisJCQkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRzOworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTE4RThFRjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1
dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTY2MzgsNiArNjY5OCwyMCBAQAogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJv
Y2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFG
RUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLywKKwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBF
NTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAorCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAorCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JF
OSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJCQk1MUUzNTFGRDE4MEY1RDBC
MDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTUx
RTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
ICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudFByb2Nl
c3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MzlCRDVCMjFEQURCMEJB
MDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC03MDYxLDYgKzcxMzUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktp
dC5OZXR3b3JraW5nLnNiICovLAorCQkJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20u
YXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovLAogCQkJCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0My
NSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJQTc4Q0NERDkxOTNBQzlF
MzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLywKIAkJCSk7CkBA
IC03MTA5LDYgKzcxODQsNyBAQAogCQkJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRp
YVN0cmVhbSAqLywKIAkJCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywK
IAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8s
CisJCQkJMzkyRTk0MkEyMTlBMkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICovLAogCQkJCTFBNkZC
N0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkw
MDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBV
c2VyQ29udGVudCAqLywKQEAgLTcyNzEsNiArNzM0Nyw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3
NTAwQzY1MEM1IC8qIG1hYyAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0
d29yayAqLywKIAkJCQkzMUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAq
LywKKwkJCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUFF
RkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0
MjAwMDZFM0ZFIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBC
NjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04MzcwLDYgKzg0NDcsMTAgQEAKIAkJCQk1QzBC
MTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8s
CiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyog
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
NTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywK
KwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUND
RiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlD
REEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04Njg5LDYgKzg3NzAsMTQgQEAK
IAkJCW5hbWUgPSBQREY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZF
RjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MTU5LDYgKzkyNDgs
OSBAQAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTgg
LyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZG
NCAvKiBQREZDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZE
NzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4RkIw
MjE4OTEyNjQwMDI1QTg4RCAvKiBQZW5jaWxLaXRTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtMTAx
NTIsNiArMTAyNDQsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZp
bGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0
Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKKwkJCQkzOTEzNjAyNTIxOTNDMTQz
MDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
IGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRERDM3OTIwQkY0M0Y1MDA2OTU5RkIgLyogY29tLmNp
c2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5QzEx
RTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAqLywK
QEAgLTEwNzYxLDYgKzEwODU0LDExIEBACiAJCQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8q
IE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNG
OUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
QTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE2ZDBhN2I1NjkyYjExOWZjNjdmNDI3ZGQ0NzllZTE4ZDM4MTYzYzAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmgiCisKKworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUv
U1dDb250ZXh0TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIs
ICp0aGlzKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1
dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7Cit9CisK
K3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQxNzdmOGYyZWM3YzU1Mzg3
N2QxZmI5MDQyNmQxMjNjMTZhNjIwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgor
ICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9TV1NlcnZlci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25J
RDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgfQorICAgIH5X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIAorICAgIElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBv
dmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlv
biogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rp
b24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDJiZmFlZTQ3NmUxZjRiY2NjZGIyNjYw
ZmU1ZDhlNjZiZDY3NGEzZDcuLjVkZmM1NTUwMGM1NjkzODE0NWNiNjNiZjc2ZDVkOGI3NjkzOTBh
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5JikgZmluYWw7CiAKICAgICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpv
Yihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworICAgIHZvaWQgc2NoZWR1
bGVQYXltZW50Sm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKICAg
ICB2b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRh
c2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKaW5kZXggYjk3
Yjc3ZmJhNWQ5M2YwYmQwOWM3NzJiMzJhYWFhMTQ2MzAzM2Q0Zi4uMzQ4Yjk1YjIyNWVlODM1YjU0
ZThlNThkNTMxN2E2MjJkNzNiYmI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250
cm9sbGVyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmgiCiAKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JbnNwZWN0b3JUYXJnZXQuaD4KICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IDcwY2U4ZWE0ZWVlODA5NmUwNGIzZWU2N2QxZjRjZjIxMjczNTBk
YWMuLjk1MWVmZWJjODZjOGRlOWNlZmQ5NWZmMGNjNGVjY2RkODcxMmFmNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDYgKzQzLDkgQEAKICNpbmNsdWRl
ICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJh
Y2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUg
IldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlci5oIgpAQCAtNjksNiArNzIsOSBAQAogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW0uaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgog
I2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2Vic2l0
ZURhdGFUeXBlLmgiCkBAIC0xMjE3LDYgKzEyMjMsMzEgQEAgV2ViTG9hZGVyU3RyYXRlZ3kmIFdl
YlByb2Nlc3M6OndlYkxvYWRlclN0cmF0ZWd5KCkKIHsKICAgICByZXR1cm4gbV93ZWJMb2FkZXJT
dHJhdGVneTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNz
Ojp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbik7CisgICAgQVNTRVJUKG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24gPT0gY29ubmVjdGlvbik7CisKKyAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
ID0gbnVsbHB0cjsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nl
c3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGlu
aXRpYWxTZXNzaW9uSUQpCit7CisgICAgaWYgKCFtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKSB7CisgICAgICAgIElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZp
ZXI7CisKKyAgICAgICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oaW5p
dGlhbFNlc3Npb25JRCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpIHsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGlmICghSVBDOjpDb25uZWN0
aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgICAg
ICBDUkFTSCgpOworCisgICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKKworICAgIH0KKyAgICByZXR1cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247
Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNz
OjpzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMTg3ZWE0MGRlN2UxZDQ5NGE5MjdhNDI5NzY3MDhmYzU0
NGVhZjA2Zi4uMzFjNjlhNTA3YTBmNjk2Y2I2MzI0Mjg3ODQwZGE5NzRmNGNiZjA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05OCw2ICs5OCw5IEBAIGNsYXNzIFdl
YkxvYWRlclN0cmF0ZWd5OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5
OwogY2xhc3MgV2ViUHJvY2Vzc1N1cHBsZW1lbnQ7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlBhZ2VHcm91cERhdGE7CkBAIC0x
NzUsNiArMTc4LDExIEBAIHB1YmxpYzoKIAogICAgIExpYldlYlJUQ05ldHdvcmsmIGxpYldlYlJU
Q05ldHdvcmsoKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB3ZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbiopOworICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKTsK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBzZXRDYWNoZU1v
ZGVsKHVpbnQzMl90KTsKIAogICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQzMiw2ICs0NDAsMTAgQEAgcHJpdmF0ZToKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1dG9tYXRp
b25TZXNzaW9uUHJveHk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFJlZlB0
cjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlcj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYx
NTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9O
RTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BM
QVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJ
RklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lO
ID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4YzUzNWM3ZmY2MzA3
Yzk1NWZhOTc3MTIxMzA0ODhlNGFhODhjZTk2Li41NWY2NzdjMDI0ZTdhOGVjNjgyY2EyODBhYmJh
NjFkYjQ1MjYwNjFiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJl
IGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hy
b25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOC0xMS0xNCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBTUEkgdG8g
c2hvdyBhIHNhZmUgYnJvd3Npbmcgd2FybmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3
MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4Yzgy
NDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXggM2YxYTYyODg2ODIx
MDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4uYzM0NmFiZmQ2MjBmOTM1NTVmZDgwMDVjOGEx
YjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpAQCAtMTQ0LDYg
KzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RM
YXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlZCBwcm9jZXNzIHBvb2wgZXhpc3RzIHNv
IHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2UncmUgYWJvdXQgdG8gZG8gd29yayB3aXRoIGl0
LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFByb2Nlc3NQb29sID0gW1dLUHJvY2Vzc1Bvb2wg
X3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFBy
b2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNp
emVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogCiAgICAg
YXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsK
QEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENoaWxkUHJv
Y2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGFyZ2V0VVJMLnBhdGhdKTsKIAorICAgIEVY
UEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3Bs
dWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IDYxZGRi
YzNkNjNhOWVhODdjMjZlY2EwZDFiZmQ2Njc3NjU3MzA5MTYuLmU2NDAzZTllMGZmNmVhYmRhOWVj
ZTBmMjljZmZhNjVlNTU1Y2RjODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0xMDQ2LDYg
KzEwNDYsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTZXJ2aWNlV29ya2VyUHJvY2Vzc0NyZWF0
aW9uKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCisgICAgLy8gTWFrZSBzdXJlIHBheW1lbnQgcHJvY2VzcyBpcyBub3QgbGF1bmNoZWQu
CisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9v
bC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGxv
YWRpbmcgdGhlIHNpbXBsZSBwYWdlIGRpZCBub3Qgc3RhcnQgdGhlIHNlcnZpY2Ugd29ya2VyIHBy
b2Nlc3MuCiAgICAgRVhQRUNUX0VRKDF1LCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJv
Y2Vzc1Bvb2wuX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkKTsKIApAQCAtMTEzMCw2
ICsxMTMzLDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAorICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyBwYXltZW50IHByb2Nlc3MgY3Jl
YXRlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nl
c3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTGV0J3MgdXNlIHRo
ZSB3ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNlcnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEg
cGFnZS4KICAgICBuZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
aW5kZXggOGRiNTY5MGIzOTQzMTA5NGI1MzU4ZDBkMmFmYjg3Njk5ZDIwNmRhMC4uZDYyYzYwZjc4
Y2M1MzBhMzVhYzczYWU4YTQ4NGQ1NjA4YjExN2Q3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCkBAIC0zMzMsNiArMzMzLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAgdm9p
ZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdv
cmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdDsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKaW5kZXggNWRhNTQ2YWVkNWU3ZjdlMzU5NTgzZGQ4OWE4MjJiNDBlNWNjY2Y3NC4uYzlk
MDZlOTVjY2I3OTRmNmI5ZGM2NGJmM2E5ZjI3M2I4MTU3MTU3YSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjU1
LDYgKzEyNTUsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2VzcygpCiAgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3Rpbmco
SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRl
UGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVybWluYXRlUGF5
bWVudFByb2Nlc3MiKSk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZv
clRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNz
YWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBu
ZXh0VUlTY3JpcHRDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMgdW5zaWduZWQgY2FsbGJhY2tJ
RCA9IEZpcnN0VUlTY3JpcHRDYWxsYmFja0lEOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBlOGJhOTdmNzE2ODRkZmNhMDc3
NTczY2NhYmMxM2NlNjQzNDAyZmIxLi43ZTY1MmM1M2VlNWFkNDZjZmU2NWFmZTcwOTNlOGExYjlh
NjU4OTY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaApAQCAtNDQ2LDYgKzQ0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVy
bWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9p
ZCByZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBjYWxs
RGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDRlODE4ZWYyMTViM2M2NjM1OWY4ODQ2
NTI3MWYwY2UwODIzY2VlMS4uOGJkYmQ0Yzc1ZDgxMTkyNzY0NDU4MjAzM2NjNjM2YmEzMjBkNDhj
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwNzQs
NiArMTA3NCwxNSBAQCBjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NO
YW1lKCkKICNlbmRpZgogfQogCitjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFBy
b2Nlc3NOYW1lKCkKK3sKKyNpZiBQTEFURk9STShGQU1JTFlfSU9TKQorICAgIHJldHVybiAiY29t
LmFwcGxlLldlYktpdC5QYXltZW50cyI7CisjZWxzZQorICAgIHJldHVybiAiUGF5bWVudCBwcm9j
ZXNzIG5vdCBhdmFpbGFibGUgb24gYW55dGhpbmcgYnV0IGlPUyI7CisjZW5kaWYKK30KKwogdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBhbGxvd3Mp
CiB7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRU
ZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3MpOwpAQCAtMTUwOCw2ICsxNTE3LDExIEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVm
IGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPm5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2go
KTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaChXS0Nv
bnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNf
Y2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+cGF5
bWVudFByb2Nlc3NEaWRDcmFzaCgpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNl
aXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91cykKIHsKICAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiS2V5IikpOwpAQCAtMTg0MSw2ICsxODU1LDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5l
dHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQoMSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKQoreworICAgIHBpZF90IHBpZCA9IFdLQ29u
dGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOworICAgIGZw
cmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClcbiIsIHBheW1lbnRQcm9jZXNz
TmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsKKyAgICBleGl0KDEpOworfQorCiAvLyBX
S1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdE5h
dmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5
cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0yNjQwLDYgKzI2NjEsMTEgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKQogICAgIFdL
Q29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsK
IH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQorewor
ICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsK
K30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
V2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDYyNWE1YjU0NjU5MjJjN2JhZmQ5NGI3YWNjODEyNzY1
N2I4YmM5MWYuLjdmMGY3NWI0ZGJhZjVkOTFjZjQ1MDY3OTE1NjU0MzVmYzM1Zjg0MWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE4MSw2ICsxODEsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHdlYlByb2Nlc3NOYW1lKCk7CiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIG5ldHdvcmtQcm9jZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBkYXRhYmFzZVByb2Nlc3NOYW1lKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHBheW1l
bnRQcm9jZXNzTmFtZSgpOwogCiAgICAgV29ya1F1ZXVlTWFuYWdlciYgd29ya1F1ZXVlTWFuYWdl
cigpIHsgcmV0dXJuIG1fd29ya1F1ZXVlTWFuYWdlcjsgfQogCkBAIC0yNTIsNiArMjUzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQg
dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygpOwog
CkBAIC0zNTcsNiArMzU5LDggQEAgcHJpdmF0ZToKICAgICAvLyBXS0NvbnRleHRDbGllbnQKICAg
ICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29uc3Qg
dm9pZCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOworICAgIHN0YXRpYyB2
b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7Cisg
ICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKCk7CiAKICAgICAvLyBXS1BhZ2VOYXZpZ2F0
aW9uQ2xpZW50CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYs
IFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGI4ZmNkNTdiODc1OWFh
ZGYzY2Q3M2Q5OTYxZjUwN2JiOGVlNDRiOGIuLjBjNGY2YTljZWMzN2IzNzA1ODMzMTRmZmM4MDky
ZWU4NDA1YTEzZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CkBAIC0xNDUzLDYgKzE0NTMsMTIgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKSB7CisgICAgICAg
IEFTU0VSVCghbWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkudGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKSB7CiAgICAgICAgIEFTU0VSVCghbWVzc2FnZUJv
ZHkpOwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWluYXRlTmV0d29y
a1Byb2Nlc3MoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354983</attachid>
            <date>2018-11-15 13:51:26 -0800</date>
            <delta_ts>2018-11-16 16:24:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181115135123.patch</filename>
            <type>text/plain</type>
            <size>139333</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmI2ODgzZjcxNmM0ZGZhOTU3OThkYzBlYjNiZmZmYjYxNjAyNjE2Li4yNGRlZDM4OTdjMDA3MjFk
NmQ3OWQ5MWI4Y2NkMzEwNGE3ZDhmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhc3MgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9kaXNjb25uZWN0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjM2FhYzBhZTZkZTBkOGVmY2MyMjhkNmJiZTVlM2YyZTk0
ZTU2ODI5Li42NmJmYTMzM2VhYmNiZDI2ODUwNTg4NmY3Mzk2MDQwZGM3N2RjMTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0xNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIENvZGUgcXVhbGl0eSBjb25jZXJucyBy
YWlzZWQgZm9yIDE5MTI5MTogW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYTc5NGYyMTIxMzU2Y2E0MDdhODYzZGExZWI5YTJkZDhlOWM4M2RlYi4uZjMwMzI4MDYyMWY1
MmZiMDFkMmVlNjlmNGNlNTNjOTViZDg4OWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZTVmMmNmMmZkYmM5YTg2Y2Q2MDZm
Mjg4ODNiYTljZGUxM2QzMi4uOGU1NTAwMGM0MzIwMzQ0OWMxNDE0OWMzNGRhNWJmYWQxNGIwYTM2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzog
QWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1l
bnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQ
VUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BV
TW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJl
VG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0Fs
bExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1v
cnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlh
RGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEg
cmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNDU2Nzg4M2M4ODMyYTU3MzI2ZGNmNzYwNDM4MDFhMmY5ZWRjYjc0ZS4uMjM0
MTk0ZjYzMmNmOTNmNjRiZmJhNjA4Y2M5NTAyMTYxOWE2ZTZlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBj
b25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2
NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4
MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4
OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEw
MjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1Yzhj
ODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4ZjFmNjc2
NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMiID0gIiVA
IFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50IiA9ICIl
QCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFh
ZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEzODg2YjVkNDhiNjZkMzFm
MDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3MiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJVF9ESVJ9
L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAgICIke1dF
QktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Qcm9jZXNz
IgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2FtZXBhZCIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCkBAIC00
NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
CiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgorICAgIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyMSw2ICsyMjks
MTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQogCitzZXQo
UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisKIHNldChQbHVnaW5Qcm9j
ZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2JiYjAxMmEzOWU2NWRhOGJh
OGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRjZmRiMjA2YTRkNjNjZjNl
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNj
b25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJFRElDVElPTltzZGs9bWFj
b3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVMgPSAkKFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BSRURJQ1RJT04pKTsKIFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9QUkVESUNUSU9OOwogCitX
S19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJW
SUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9TRVJWSUNFX05BTUUpKTsK
IFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19TVE9SQUdFX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8gPSBj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQzMjEzMzZkZDA3MGU5Yjc4YjU5ZjgwZGUyYzE1MWFlZWFkNzMwNjEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
CkBAIC0wLDAgKzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBt
ZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8v
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BBWU1FTlRfRU5USVRMRU1F
TlRTX1JFU1RSSUNURURfTk8gPSA7CitXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVE
X1lFUyA9IENvbmZpZ3VyYXRpb25zL1BheW1lbnQtT1NYLXNhbmRib3guZW50aXRsZW1lbnRzOwor
CitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0gJChXS19QQVlNRU5UX0VO
VElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JFU1RSSUNURURfRU5USVRMRU1FTlRTKSk7
CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJQlJBUllfVkFMSURBVElPTl9DT0RFX1NJ
R05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdLX1BBWU1FTlRfU0VSVklDRV9QUk9EVUNU
X05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsKK0lO
Rk9QTElTVF9GSUxFID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2N2Q0OGM2
NGQ3MjliY2ZlZTgwZjVhYzQwZjRlN2MzZWJjNzczMjQuLmQzMTc1YWQ4YjBiMzJjN2Y1NjY2YTZi
M2JkMjdlM2Q5MjY1MjJiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMwLDYg
KzMwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMg
XAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCIFwKICAgICAkKFdlYktp
dDIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIgXAorICAgICQoV2ViS2l0MikvUGF5bWVu
dFByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAgJChXZWJLaXQy
KS9QbHVnaW5Qcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCkBA
IC03Myw2ICs3NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdv
cmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwK
ICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9QYXltZW50cyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lucyBc
CiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIFwKICAgICAkKFdlYktp
dDIpL1VJUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTEyMSw2ICsxMjMsMTAgQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAgICAgTmV0d29ya1NvY2tldFN0cmVhbSBcCiAgICAgUGxheWJhY2tTZXNzaW9u
TWFuYWdlciBcCiAgICAgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IFwKKyAgICBOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlciBcCisgICAgUGF5bWVudFByb2Nlc3MgXAorICAgIFBheW1l
bnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAg
ICBQbHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFiZWFlYzExY2NlMmFlMjlhMDY0MmMyNDE1
NmJjNmYyMDNmNTFjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUGF5bWVudFByb2Nlc3MmIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0
b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz4gcHJvY2Vz
czsKKyAgICByZXR1cm4gcHJvY2VzczsKK30KKworUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9j
ZXNzKCkKK3sKK30KKworUGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2VzcygpCit7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KGNvbm5lY3Rpb24pOworfQorCitib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUo
KQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q2hpbGRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41Y2FiNTRkYmNjMGNiMWFmYzBiYmFjODhkMWNkYTg1NWYwZmVjMzUzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5o
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjsKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKwor
Y2xhc3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVk
PFBheW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFByb2Nlc3MmIHNp
bmdsZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUg
PSBQcm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2VzcygpOworCisgICAg
dm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNzKCk7CisKKyAgICAv
LyBDaGlsZFByb2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBN
ZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmKTsKKyAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
IVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkwZjhl
MWEzOGUxMjEyOGE0ODJmZmI3NTdmMWE5OGVmODZlMDQzMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgeworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2YWIyNDJhODFjNjY5
M2RmNzc5YjQyNGE1NWZhZjI4MjE0OTEwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
MCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNz
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7
Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8gRklYTUU6Cisg
ICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpCisgICAg
Ly8gdG8gZm9yY2Ugc3luY2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hy
b25vdXMgbWVzc2FnZXMgaW4gdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gT3RoZXJ3aXNlLCB0aGUg
V2ViUHJvY2VzcyB3b3VsZCBwcm9jZXNzIGluY29taW5nIHN5bmNocm9ub3VzIElQQyB3aGlsZSB3
YWl0aW5nIGZvciBhIHN5bmNocm9ub3VzIElQQworICAgIC8vIHJlcGx5IGZyb20gdGhlIHBheW1l
bnQgcHJvY2Vzcywgd2hpY2ggd291bGQgYmUgdW5zYWZlLiBJbnZlc3RpZ2F0ZSBpZiB3ZSBuZWVk
IHRvIGNhbGwgdGhpcy4KKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246On5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7
CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkuZGlkUmVj
ZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVj
dGlvbik7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFS
QU0obWVzc2FnZVJlY2VpdmVyTmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2VOYW1lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5U
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNTczZjgwMzY3
YmFmYjk5YzQyOTA1NGEwYTY5NDljODYxYTg5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3Nh
Z2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVz
c2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgflBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKworICAg
IC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAg
ICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJu
IDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzA0YzBkYmMyNDc1NDIxN2M3ZDlhM2MwNGI4NDBlM2QyMjNkYmMyNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2Vz
IC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVu
dFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2ZhM2FhMWQyMmE4MzVjMWVkOWU2NThiYTIzMzgw
YTkxZWI4MjdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQ
TEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVBTF9E
QVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQ
cm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywg
U2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7Cisj
aWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBvdmVy
cmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUg
SUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xh
c3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRl
cnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJl
c291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7CisgICAg
Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1l
dGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2
NzJjNjg2YjE2NjdhZDk3ZjVkZmQ3NWE0YjNhN2JkYzA2MDdiMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDMyIEBACis7IENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Cis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFs
LXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEp
CisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2Vydmlj
ZS1uYW1lLXByZWZpeCAiIikpCisKKyhkZW55IGxzb3BlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQ
cm9jZXNzLmgKaW5kZXggYTcyYmM5MjlkYmQ3Yzc0YzIyNjY5YjgyMzE3YTYxZmZhYmRmMzc2OS4u
NWQwY2M2ZTJmNTRkMzY4MzJkZDI1Zjg3YzA4Mjc3MDkzYmRjM2E1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAgICAgICBXZWJD
b250ZW50LAogICAgICAgICBOZXR3b3JrLAogICAgICAgICBQbHVnaW4KKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICAgICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MDgzMzEyY2Y4OGY3ZGY5NjQ5YjJkMzYyYmQ3NDYxMTEwMGY4MzAw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQor
eworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOwor
fQorCitib29sIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYTA5YWI3ZWZkN2YyMDk0ZmU2ZDY3ZWY0NWI5ZjM4
NDY3MzdhZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVu
Y29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
KCk7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKTsKKworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDJjZTcxNmU0Yzcy
ZTU4MmFiZTMwZjQ4NzlkMmM2ZWI5ZTQ5OWE5N2IuLjYyYjU0NzRlZmFhNzI0ZWFiNTI4YjRmNjcw
MTc5MWYwY2U5YWFkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aC5oCkBAIC0zMiw1ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGV4
ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdp
blByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQYXltZW50
UHJvY2VzcygpOworI2VuZGlmIC8vICFFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCA4NzY2ZGZkMzAyMDk2MzFkMzk4YTUzOTgzOGNlYTlmYzA0YTg3N2ZhLi5lYWEy
YzNlNjc1M2UzYjk4YTg0YmZjNTNlYmIwODM4NTFhZGM2OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTc5
LDYgKzc5LDkgQEAgTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXku
Y3BwCiAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcAogCitQ
YXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiAvLyBUT0RPOiBXZSBzaG91bGQgdW5pZnkgdGhl
c2UgZmlsZXMgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogUGxhdGZvcm0v
TG9nZ2luZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9Nb2R1bGUuY3BwIEBuby11bmlmeQpAQCAt
MjA3LDYgKzIxMCw4IEBAIFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5j
cHAKIAogU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCiAKK1NoYXJlZC9QYXltZW50L1Bh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorCiAvLyBUT0RPOiBUaGVzZSBmaWxl
cyBzaG91bGQgYmUgdW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQu
CiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcCBAbm8tdW5pZnkKIFNoYXJlZC9Q
bHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcCBAbm8tdW5pZnkKQEAgLTM4MCw2ICsz
ODUsOCBAQCBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCiBVSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCiBVSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKIAorVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5m
b1N0b3JlLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBA
IC00ODAsNiArNDg3LDggQEAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
Y3BwCiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCiAKK1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCisKIC8vIFRPRE86IFRoZXNlIGZpbGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2Ug
R1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3ZlZC4KIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBlY2M4MmQxYThjZTQ2
NzVhYzFhNGY2ZWQ3MDRiNmIyNDI4ZDk3NTI4Li5kYmMyYTg1YTcxNTlhY2EwZGIwZGQ2MzA4MTU2
Y2QxZmQ4N2I4ZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xODMsNiArMTgzLDggQEAg
U2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuY3BwCiBTaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1
bHREYXRhLm1tCiBTaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCiAKK1BheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQorCiBTaGFyZWQvUGx1Z2lucy9tYWMvUGx1
Z2luU2FuZGJveFByb2ZpbGUubW0KIAogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTW9kdWxlTWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcAppbmRleCAwNDAxZTcyYjRjNmY1ZTRlNTlkZDhjYWI0MGI2NjQzNWQ0ZjU4ZmI5
Li43YmYzZjVhMTJjOTdlY2E3OWRiNzQwZTY5YzQ1ZGZjOWVhNGFiYjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYyMSwxMSArNjIxLDI3IEBA
IHZvaWQgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVm
IGNvbnRleHQpCiAgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc2VzKCk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tD
b250ZXh0UmVmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0
b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRH
ZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAg
ICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7
CiB9CiAKK1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsK
KyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K30KKwogdm9pZCBXS0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLU3RyaW5nUmVmIGRvbWFpblJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJh
eVJlZiBtaW1lVHlwZXNSZWYsIFdLQXJyYXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCA0NmQzN2UxZThhMTU4OTU4MGEzNTUzOGVlNWY2
ZjliYzJkODBlMjJjLi4xZjFlODczOWQzMmVkNzZkNTE3MTFjNmJkN2JlYTA2OTQxM2Y5NDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5o
CkBAIC05Miw2ICs5Miw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3Jr
UHJvY2VzcyhXS0NvbnRleHRSZWYsIGJvb2wpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKy8vIE5P
VEU6IFRoaXMgaXMgb25seSBhdmFpbGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxF
RAorV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250
ZXh0UmVmKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJU
ZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CkBAIC0xMTIsNiArMTE0LDcgQEAgV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1VSTFJlZiBzZXJ2ZXJVUkwpOwogCiBXS19FWFBPUlQgV0tQcm9jZXNzSUQg
V0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0
KTsKK1dLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50
aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRB
ZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIGRvbWFp
biwgV0tTdHJpbmdSZWYgbmFtZSwgV0tBcnJheVJlZiBtaW1lVHlwZXMsIFdLQXJyYXlSZWYgZXh0
ZW5zaW9ucyk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhclN1cHBvcnRlZFBsdWdpbnMo
V0tDb250ZXh0UmVmIGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBjZjI4MTFlOGIzYWNhYWIwZDA4MWUwODgy
Y2JmZDgzYzdkNWRkNWNlLi4wZjMyMTI4YTJmM2RhODU1NmY0NDRkNzQ5Y2I1MzkyNzg1MDgxNmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQpAQCAtNDI0LDYgKzQyNCwxMyBAQCAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdp
bnMKICAgICBfcHJvY2Vzc1Bvb2wtPmNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogfQogCistICh2
b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzcworeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rpbmco
KTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV90ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzcwogewogICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRlTmV0d29y
a1Byb2Nlc3MoKTsKQEAgLTQ0NCw2ICs0NTEsMTUgQEAgLSAocGlkX3QpX25ldHdvcmtQcm9jZXNz
SWRlbnRpZmllcgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllcigpOwogfQogCistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyCit7CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wYXltZW50
UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIChwaWRfdCkwOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJv
Y2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggNGQzYTE5MTIwYWJkNDllZWUwNDkyNzk0YTc3ZjRh
ZmIwNmNkZTkwYy4uMGI5OTllODY0YTkxOWFjNThjOTAxOWM4NDYzZTYwN2M1ZjM3ZWNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmgKQEAgLTg0LDEyICs4NCwxNiBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVz
dW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAq
KXBhdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBj
b250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KKy8vIE5PVEU6IFRoaXMgaXMgb25seSBhdmFp
bGFibGUgd2hlbiBQQVlNRU5UX1BST0NFU1MgaXMgRU5BQkxFRAorLSAodm9pZClfdGVybWluYXRl
UGF5bWVudFByb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKIC0gKHZv
aWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzVGVybWluYXRpb25EZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLy8gTk9URTog
VGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECist
IChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEx
LjMpKTsKIAogLy8gVGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCA4N2IwYmJlYzgx
MzAzYTc1Yzg1ZTJhOGNiYzMwZTdhYzIyZDgzZGNlLi42ZDY2ZWMzMWFmZjZlZGMxYTQxZjY4NDgz
MjUyM2NkODdlNmJkMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAgICAgICAg
IFBsdWdpbjY0LAogI2VuZGlmCiAgICAgICAgIE5ldHdvcmssCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICAgICAgUGF5bWVudCwKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogICAgIH07CiAKICAgICBzdHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1h
Yy5tbQppbmRleCAzYjQ2MTYzNGU4NTE3MzlkNjk1ZDA1NTViZTU0ZDY5YjQ4NDYwNjQ4Li41NzJj
ZTQ5MGUwY2E1MTVkYTIwYTdmN2EyYzg4Nzk2OTEwNjNjNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW0KQEAgLTYyLDYgKzYyLDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25z
dCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvCiAgICAgY2FzZSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQbHVnaW42NDoKICAgICAgICAgcmV0dXJuICJj
b20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NCI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDoK
KyAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iYjlhZDE3YmFhYzY5ZWMxYWQ1NmQ5YjM1NjkyZTZiM2ViNzQzNjJjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQ
cm94eS5jcHAKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzUHJveHkuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBheW1l
bnRQcm9jZXNzQ2FsbGJhY2tJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQ7
CisKKyAgICByZXR1cm4gKytjYWxsYmFja0lEOworfQorCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQ
YXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENo
aWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0
eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQoreworICAgIGNvbm5lY3QoKTsKK30KKworUGF5bWVudFBy
b2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQoreworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIHRlcm1pbmF0ZSgpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlv
bnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50Owor
ICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwg
dGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nl
c3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBp
ZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVuZGluZ0Nv
bm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9vbCBp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNl
Y3VyaXR5T3JpZ2luOworCisgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MsIHNl
Y3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisgICAgYXV0byBwcm90ZWN0ZWRQcm9jZXNzUG9v
bCA9IG1ha2VSZWYobV9wcm9jZXNzUG9vbCk7CisKKyAgICAvLyBUaGUgcGF5bWVudCBwcm9jZXNz
IG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkgcGVuZGluZyBzeW5jIHJl
cGxpZXMgd2UgbWlnaHQgaGF2ZS4KKyAgICB3aGlsZSAoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBs
aWVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlv
blJlcGxpZXMudGFrZUZpcnN0KCk7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgfQor
ICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMgcGF5bWVudCBwcm9j
ZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgorICAgIG1fcHJvY2Vzc1Bvb2wu
cGF5bWVudFByb2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rp
b25JZGVudGlmaWVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNo
ZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sK
KyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25u
ZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmll
cklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIEZJWE1FOiBEbyBi
ZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytpKQor
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAgIAorICAgIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ2
YzFiOTdhMDAwZmZkOTA3NTZkYjFjNzQ2NDU4NDBhNThmMjg0MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaApA
QCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVk
ZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFzcyBXZWJQ
cm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBXZWJzaXRl
RGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBDaGlsZFBy
b2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7CisgICAgCisgICAg
dm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJik7CisKKyAgICB2b2lkIHRlcm1pbmF0ZUZvclRlc3RpbmcoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQorICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9j
ZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIHByb2Nlc3NX
aWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKTsKKworICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIGRpZENy
ZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYp
OworCisgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKKyAgICB2b2lkIGRpZEZpbmlzaExh
dW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92
ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1Bvb2wmIG1fcHJvY2Vzc1Bvb2w7CisKKyAgICB1bnNp
Z25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7CisgICAgRGVxdWU8TWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVw
bHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMzEwY2ZjZDUxNjJlYzQ3Y2VhMjkzMWQ2ODQ3OWI5
MGExMDU0NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXlt
ZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVy
IHsKKyAgICBEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvSGlkU2VydmljZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvSGlkU2VydmljZS5oCmluZGV4IGJjMzYzMjMxYjU0MWYxNmYy
YjlhYWM1OGI0MzRlNTEwZGY2Yjc0MTguLjdkMmQzNWYyNDdkZWQwMmUwNmY0ZDZiMTVkM2E5ZDc1
NDFlZDJhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL0hpZFNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9IaWRTZXJ2aWNlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmgiCiAjaW5jbHVkZSA8SU9L
aXQvaGlkL0lPSElETWFuYWdlci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNs
dWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBmYTQ1NzYyZWNlYmEwMTNh
NmFjYTRmOTY0ZGE4NTY2Mzk3NDFkNTc1Li5iZWM3OWI1NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2
OTliNTUzZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmNwcApAQCAtNDYsNCArNDYsMTEgQEAgdm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICBtX2NsaWVudC5u
ZXR3b3JrUHJvY2Vzc0RpZENyYXNoKHRvQVBJKHByb2Nlc3NQb29sKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYkNv
bnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nl
c3NQb29sKQoreworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dENsaWVudC5oCmluZGV4IDgwYzMxMTIyYzA3NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYu
LjU5YjNhNDA3OTEwOGYyMzhmMWQ2ZjhhYmYxYWI5ZWRjYzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNz
IFdlYkNvbnRleHRDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFz
ZT4gewogcHVibGljOgogICAgIHZvaWQgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdl
ZChXZWJQcm9jZXNzUG9vbCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQ
cm9jZXNzUG9vbCopOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXlt
ZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKik7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICAKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0
MDNkYjI5Zjk0MDA0MzhiYTMyYTYwYzc1ODI3NDkzNGZhNi4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVj
MDY3ZDFmMGQ5ZDQ1OWExMjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dFN1cHBsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b250ZXh0U3VwcGxlbWVudC5oCkBAIC0yOSw2ICsyOSwxMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7
CiAKQEAgLTU0LDYgKzU4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Rp
ZENsb3NlKE5ldHdvcmtQcm9jZXNzUHJveHkqKQogICAgIHsKICAgICB9CisgICAgCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBh
eW1lbnRQcm9jZXNzUHJveHkqKQorICAgIHsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogICAgIFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvY2Vzc1Bvb2w7IH0KICAgICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1f
cHJvY2Vzc1Bvb2wgPSBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggYzgyYWZjZjM1YTIyNDlkZTAwMjA5ZDQ1Y2M0MGQ2ZjM5MjdmMGQz
My4uMjhiYTlhZDNkYWRkNzU3MzQyMzkwMzBjMWEzMDM2YjI2YjEzZTJiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTQsNiArNTQsMTAgQEAKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlH
YW1lcGFkLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKQEAgLTQ0Miw2ICs0NDYs
OSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlz
Q3JpdGljYWwpCiB7CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpDaGlsZFByb2Nl
c3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsKICAgICBzZW5k
VG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVt
b3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRS
ZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBQ
bHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuc2VuZE1lbW9yeVByZXNzdXJlRXZlbnQo
aXNDcml0aWNhbCk7CiAjZW5kaWYKQEAgLTYwNyw2ICs2MTQsMzYgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJv
Y2Vzc1Byb3gKICAgICBtX25ldHdvcmtQcm9jZXNzLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVudFByb2Nlc3Mo
KQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgbV9wYXltZW50UHJvY2Vz
cyA9IHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVudFByb2Nlc3NQcm94eT4oKnRoaXMpOworfQorICAg
IAordm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7
CisgICAgbV9wYXltZW50UHJvY2Vzcy0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlBy
b2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpw
YXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3NQ
cm94eSkKK3sKKyAgICBBU1NFUlQobV9wYXltZW50UHJvY2Vzcyk7CisgICAgQVNTRVJUKHBheW1l
bnRQcm9jZXNzUHJveHkgPT0gbV9wYXltZW50UHJvY2Vzcy5nZXQoKSk7CisKKyAgICBmb3IgKGF1
dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQorICAgICAgICBzdXBwbGVt
ZW50LT5wcm9jZXNzRGlkQ2xvc2UocGF5bWVudFByb2Nlc3NQcm94eSk7CisKKyAgICBtX2NsaWVu
dC5wYXltZW50UHJvY2Vzc0RpZENyYXNoKHRoaXMpOworCisgICAgaWYgKG1fYXV0b21hdGlvblNl
c3Npb24pCisgICAgICAgIG1fYXV0b21hdGlvblNlc3Npb24tPnRlcm1pbmF0ZSgpOworCisgICAg
bV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmln
aW4sIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRCkKIHsKQEAgLTY4Myw2
ICs3MjAsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZQogICAgICAgICBzZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2FjeVByaXZhdGVTZXNzaW9uUGFyYW1ldGVycygpKSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+cmVtb3ZlU2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgICAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC0x
MzMyLDYgKzEzNzIsMTUgQEAgVmVjdG9yPFN0cmluZz4gV2ViUHJvY2Vzc1Bvb2w6OmFjdGl2ZVBh
Z2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3RpbmcoUHJvY2Vzc0kKICAgICB9CiAgICAgcmV0
dXJuIHsgfTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUHJvY2Vzc0lEIFdlYlBy
b2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIGlmICghbV9wYXlt
ZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9wYXltZW50UHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbHdheXNVc2VzQ29tcGxleFRleHRD
b2RlUGF0aChib29sIGFsd2F5c1VzZUNvbXBsZXhUZXh0KQogewpAQCAtMTYwMyw2ICsxNjUyLDE3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKQogICAgIGlm
IChtX25ldHdvcmtQcm9jZXNzKQogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJDYWNoZWRDcmVkZW50aWFscygpLCAwKTsKIH0KKyAg
ICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVy
bWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFBy
b2Nlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGF5bWVudFByb2Nlc3MtPnRlcm1pbmF0
ZUZvclRlc3RpbmcoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzID0gbnVsbHB0cjsKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAppbmRleCA1NTNkYWM1ZTQxZjg2ZTBjN2M2YmU3YWYxNzllNDdiMWMwZTdlNzZkLi4z
MjJjMDk2ZDc1ZTgyNDk4NWQ3MWEwZWQzOTExNmIxNjVmNGM1YzZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQwLDYgKzQwLDkgQEAKICNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5o
IgogI2luY2x1ZGUgIlN0YXRpc3RpY3NSZXF1ZXN0LmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVk
ZSAiV2ViQ29udGV4dENsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xp
ZW50LmgiCkBAIC0xNzMsNiArMTc2LDEyIEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVPiB2b2lkIHNlbmRTeW5jVG9OZXR3b3JraW5nUHJvY2VzcyhUJiYgbWVz
c2FnZSwgVSYmIHJlcGx5KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CiAKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIC8vIFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdl
YlByb2Nlc3Mgb3IgUGF5bWVudFByb2Nlc3MgYXMgYXBwcm9wb3JpYXRlIGZvciBjdXJyZW50IHBy
b2Nlc3MgbW9kZWwuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50
UHJvY2VzcyhUJiYgbWVzc2FnZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5k
VG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lkIHByb2Nlc3NEaWRGaW5p
c2hMYXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5Kik7CiAKICAgICAvLyBEaXNjb25uZWN0IHRoZSBw
cm9jZXNzIGZyb20gdGhlIGNvbnRleHQuCkBAIC0yMTcsNiArMjI2LDkgQEAgcHVibGljOgogICAg
IFByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKICAgICBWZWN0b3I8U3RyaW5n
PiBhY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJRCk7CiAg
ICAgYm9vbCBuZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZyhjb25zdCBTdHJp
bmcmKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFByb2Nlc3NJRCBwYXltZW50
UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
CiAgICAgV2ViUGFnZUdyb3VwJiBkZWZhdWx0UGFnZUdyb3VwKCkgeyByZXR1cm4gbV9kZWZhdWx0
UGFnZUdyb3VwLmdldCgpOyB9CiAKQEAgLTI3Niw2ICsyODgsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sKTsKIAogICAgIHZv
aWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKICAgICB2
b2lkIGRpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsKQEAgLTM0
Miw2ICszNTcsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBQYXlt
ZW50UHJvY2Vzc1Byb3h5KiBwYXltZW50UHJvY2VzcygpIHsgcmV0dXJuIG1fcGF5bWVudFByb2Nl
c3MuZ2V0KCk7IH0KKyAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmLCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5Kik7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPik7CiAgICAgU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQodWludDY0X3Qg
cGFnZUlEKSBjb25zdDsKQEAgLTY0MSw2ICs2NjIsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9j
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbiB7IHRydWUgfTsKICAgICBib29sIG1f
ZGlkTmV0d29ya1Byb2Nlc3NDcmFzaCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudFByb2Nlc3NQcm94eT4gbV9wYXlt
ZW50UHJvY2VzczsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4+IG1fZGljdGlvbmFyeUNh
bGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+
PiBtX3N0YXRpc3RpY3NSZXF1ZXN0czsKQEAgLTc0Miw2ICs3NjYsMjIgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQm
JiBtZXNzYWdlKQogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1l
c3NhZ2UpLCAwKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MoVCYm
IG1lc3NhZ2UpCit7CisgICAgaWYgKG1fcGF5bWVudFByb2Nlc3MgJiYgbV9wYXltZW50UHJvY2Vz
cy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgbV9wYXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6
OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KFQmJiBtZXNzYWdlKQoreworICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgbV9w
YXltZW50UHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworfQorI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9BbGxQcm9jZXNzZXMoY29uc3QgVCYgbWVzc2FnZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDFj
MDVmMzQ5ZTY2NjY1Njc4ZjgzZDIxMjc4NGJmOGZmYTZlODhhOTkuLjFhYTkwYWNiYzQyOGFlYzhm
NDc0NDUwNGNmNGQxZjQzOWU5MDNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtNjIzLDYgKzYyMywxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldAogewogICAgIG1fcHJvY2Vzc1Bvb2wtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigq
dGhpcywgV1RGTW92ZShyZXBseSkpOwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vz
c2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9w
cm9jZXNzUG9vbC0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBpbml0aWFsU2Vz
c2lvbklELCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKIAogI2lmICFQTEFURk9STShDT0NPQSkKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCmluZGV4IDdiZWI5NTE2NjU1NzI2NTQxOWQzZGE5MzIzZTQ4OWE5OTRkMGNl
MzkuLjA4MWYxYTRlMzcwYTUzMTVhYmQzNWI2Y2YzZjZlNWY3NGExYTE5NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yODUsNiArMjg1LDkgQEAgcHJp
dmF0ZToKICNlbmRpZgogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseSYmKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIGJv
b2wgcGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZEFsbG93
Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDZhOThmNGU5NjA0N2Rh
YmYxNjRhNzYxMGE4N2YyYTlmNjg2MGI0OGEuLjhmNWUxZDY2NjBiMTUwZDc1NzMwYTYzZTFmMDkz
ZDQzZjZhMzZkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJv
Y2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVj
dGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBEZWxh
eWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIEdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBp
bml0aWFsU2Vzc2lvbklEKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERl
bGF5ZWQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIFByb2Nlc3NSZWFk
eVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCmluZGV4IGI5MGMxNDI0MTc2YzY1MTVlN2VlNGE1NjIyYjhlYzZlYmUyNmMzODEuLmNk
NWZjYzMwOGZhNjYyNmFjYmJiY2VkYjU5YzE0N2JlYWQzZWI0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC0zNCw2ICszNCwxMCBAQAogI2luY2x1ZGUgIk1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5o
IgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdl
TWFuYWdlci5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJX
ZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgpAQCAtMTM1LDYgKzEzOSw5IEBAIFdlYnNpdGVE
YXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCkKICAgICAgICAgQVNTRVJUKG5vbkRlZmF1bHRE
YXRhU3RvcmVzKCkuZ2V0KG1fc2Vzc2lvbklEKSA9PSB0aGlzKTsKICAgICAgICAgbm9uRGVmYXVs
dERhdGFTdG9yZXMoKS5yZW1vdmUobV9zZXNzaW9uSUQpOwogICAgICAgICBmb3IgKGF1dG8mIHBy
b2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7CisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9QYXlt
ZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vz
c2lvbklEKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgICAg
IGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vzcygp
KQogICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5yZW1vdmVTZXNzaW9uKG1fc2Vzc2lv
bklEKTsKICAgICAgICAgfQpAQCAtMTYyNiw2ICsxNjMzLDE5IEBAIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlv
bkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXlt
ZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNz
YXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJz
OworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKKworICAgIHJldHVy
biBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBlbmRpbmdDb29raWVzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCmluZGV4IDg1MmI2YmI1ZDM2ZmJiNmU5NTk5MmU4ODI0NjhiMjZiZGQ5MDcxNTkuLjM5
MTg2MTQ4OWMwM2I3ZTBjYjg1NjdmYjVlZTNlZTJhZDE3ZmJlOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAg
LTY2LDYgKzY2LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogZW51
bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5
cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBzdHJ1Y3QgV2Vic2l0ZURh
dGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKQEAgLTE3MSw2
ICsxNzQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fzc29jaWF0ZWRQcm9jZXNzUG9vbChXZWJQ
cm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFy
YW1ldGVycygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgcGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCk7CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAgICAgdm9pZCBhZGRQZW5kaW5nQ29va2llKGNvbnN0
IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYmU0MGRiZDc4MTQ2NDZlNzU4MTY4NDg2ZjU5ZjNlNGU1Njdh
MWNkMS4uNjA3ZWRkMzAyODgzOGQ2YWUzYjVhN2IyMTJmMGRkZTJlM2QwODdlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDgsNiAr
ODQ4LDcgQEAKIAkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2
Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07
CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmggKi87IH07CisJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXlt
ZW50cy5zYiAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjQxOEVGQjE4ODdC
RDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4
RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29s
b3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CkBA
IC05MDYsNiArOTA3LDEwIEBACiAJCTUxMEY1OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5r
SWNvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQzBDOTc5MURERDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBG
QkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAw
QUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzND
MTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29u
RGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKKwkJNTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87
IH07CisJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyog
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwogCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyog
U2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5
LmggKi87IH07CiAJCTUxMUY4QTgxMTM4QjQ4NUQwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJh
cnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFG
OEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovOyB9OwpAQCAt
OTU3LDYgKzk2Miw3IEBACiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUz
MTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8q
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTE3REQ1QkYxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5LmggKi87IH07CiAJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBX
ZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi87IH07
CiAJCTUxOEFDQUVBMTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0FFOTEy
QUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxOEFDRjExMTJCMDE1RjgwMEIw
NEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE4QUNGMTAxMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlh
bFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTk4NCw2ICs5OTAsOCBAQAogCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5
IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJ
REJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLzsgfTsKKwkJ
NTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZBMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi87IH07CisJCTUxRTM1MjAwMTgwRjVEMEYwMEU1
M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MUU2QzE2NDFG
MjkzNUREMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUU2QzE2
MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlLmggKi87IH07CiAJCTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdp
bmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1
NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CkBAIC0x
NTY5LDYgKzE1NzcsNyBAQAogCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5
NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ5
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4
IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovOyB9
OworCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3
OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi87IH07CiAJCUUxMUQzNUFFMTZC
NjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5
IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQlFMTRBOTU0QTE2RTAxNkE0MDA2
OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4
MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovOyB9OwogCQlFMTUxM0M2
NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAv
KiBDaGlsZFByb2Nlc3NQcm94eS5oICovOyB9OwpAQCAtMjk4MCw2ICsyOTg5LDExIEBACiAJCTNG
NDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4
RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQkzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktp
dC5QYXltZW50cy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyQjIxOTUxNEJE
MDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOTEzNjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzky
RTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNG
ODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9y
Q2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29z
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBG
RjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTAyLDYg
KzMxMTYsNyBAQAogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25z
ZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNl
TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4
REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4
ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEw
MzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEg
LyogQ29va2llU3RvcmFnZVV0aWxzQ0YubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDb29raWVTdG9yYWdlVXRpbHNDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEwNTIzNzExQzczRDIyQjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUy
MzcyMUM3M0QzN0IwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxMjUsMTEgKzMxNDAsMTUgQEAK
IAkJNTExMEFFMEExMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNv
bkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFi
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEyMUYyOTU5NjMwMDNF
RjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3Rv
cmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5
RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMThFOUE0MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFn
ZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
dG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5
RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxMThFOUE1MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMUY3RDNGMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGOEE3NzEzOEI0NjA5
MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFNlY0l0ZW1TaGltTGlicmFyeS5oOyBwYXRoID0gLi4vLi4vV2ViUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MTQ3LDYgKzMxNjYsNyBAQAogCQk1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4
dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRN
ZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEyODhEOTc4
MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMjEy
ODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYxODBF
MDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyRjU4OEUxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1
ODhGMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OTAxMkE4ODM4ODAwNjI5
NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzIxNyw2ICszMjM3LDggQEAKIAkJNTE3
Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBD
Mjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYWNoZVN0b3JhZ2VFbmdpbmVD
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUw
RSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTdERDVCQzE4MERB
N0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9j
ZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nl
c3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTgzQjM5MzEzNzlGODVD
MDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBTaGltLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1OTEy
N0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMzYsNiArMzI1OCw3IEBACiAJCTUxQTU1NjAwMTI4
QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0UxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3Vs
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJREJSZXN1bHQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3RjFEMUM0Q0I5MDA0QkE5
QUYgLyogV2ViSURCUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YklEQlJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE2MEIyOTE4MEND
RDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUGF5
bWVudFNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTcy
OERDMUIxQkFEMkQwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlv
blByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjIxMjVCRjgy
MDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGNDEyNUJGOEQ0
MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBMb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyOTUsNiAr
MzMxOCwxMSBAQAogCQk1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTFFMzUxQzgxODBGMkNDQzAw
RTUzQkU5IC8qIElEQlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJREJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElEQlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGRTE4MEY1
RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFFMzk5MDUxRDZGNTRDNTAwOUM4ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVy
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVSUdhbWVw
YWRQcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE1
RjFGMjkzNTUxMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bl
cnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBwYXRoID0gaW9zL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQ
ZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFF
NkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50
U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0NDksNiArNDQ3Nyw3
IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFF
RTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZG
QjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3
MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBO
ZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjIxLDYgKzQ2NTAsNyBAQAogCQkJCTFBMUQyMTE2
MTkxRDk5NUMwMDAxNjE5RiAvKiBwb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaCAqLywK
IAkJCQlCQzJFNkU3NDExNDE5NkYwMDBBNjNCMUUgLyogUGxhdGZvcm0gKi8sCiAJCQkJMUFBRERG
NEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNoYXJlZCAqLywKKwkJCQk1MUY3REMwQTE4MENDNDExMDAy
MTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8sCiAJCQkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVB
IC8qIFVJUHJvY2VzcyAqLywKIAkJCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJv
Y2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2MTM4RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3Mg
Ki8sCkBAIC00ODI2LDYgKzQ4NTYsNyBAQAogCQkJCTQxRDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAv
KiBOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0bGVtZW50cyAqLywKIAkJCQk1QzdBQ0ZEMTIxOERE
OEJEMDA0Q0JCNTkgLyogTmV0d29yay1PU1guZW50aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FC
MTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQk1MUE2
MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcgKi8sCiAJCQkJ
QTFFREQyREIxODg0Qjk2NDAwQkJGRTk4IC8qIFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnICov
LAogCQkJCUJDODI4M0YyMTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29u
ZmlnICovLAogCQkJCUJDODI4M0Y0MTZCNEZDNTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0
LnhjY29uZmlnICovLApAQCAtNDk4Myw2ICs1MDE0LDcgQEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0
MDBERDdDNjggLyogR2FtZXBhZCAqLywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIgLyog
aW9zICovLAogCQkJCUJDMTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJMzkx
MzYwMkEyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnQgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENE
NDAwODUyNDE4IC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8q
IFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUJGNDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vi
c2l0ZURhdGEgKi8sCkBAIC02MjYzLDYgKzYyOTUsMjQgQEAKIAkJCXBhdGggPSBSZXNvdXJjZXMv
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMzkxMzYwMkEyMTk1MTRC
RDAwNTY0OTJBIC8qIFBheW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTM5MTM2MDJCMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCisJCQkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8q
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IFBheW1lbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkzOTJFOTQyQTIx
OUEyRTg1MDA1MEY5ODIgLyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgy
IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9ICI8dW5rbm93bj4iOworCQl9OwogCQk0MTMwNzU5
NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTY1ODIsNiArNjYzMiwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYw
QiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJNTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3Bw
ICovLAorCQkJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
LmggKi8sCisJCQkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRzOworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTE4RThFRjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1
dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTY2MzgsNiArNjY5OCwyMCBAQAogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJv
Y2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFG
RUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLywKKwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBF
NTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAorCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAorCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JF
OSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJCQk1MUUzNTFGRDE4MEY1RDBC
MDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTUx
RTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
ICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudFByb2Nl
c3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MzlCRDVCMjFEQURCMEJB
MDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC03MDYxLDYgKzcxMzUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktp
dC5OZXR3b3JraW5nLnNiICovLAorCQkJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20u
YXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovLAogCQkJCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0My
NSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJQTc4Q0NERDkxOTNBQzlF
MzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLywKIAkJCSk7CkBA
IC03MTA5LDYgKzcxODQsNyBAQAogCQkJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRp
YVN0cmVhbSAqLywKIAkJCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywK
IAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8s
CisJCQkJMzkyRTk0MkEyMTlBMkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICovLAogCQkJCTFBNkZC
N0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkw
MDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBV
c2VyQ29udGVudCAqLywKQEAgLTcyNzEsNiArNzM0Nyw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3
NTAwQzY1MEM1IC8qIG1hYyAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0
d29yayAqLywKIAkJCQkzMUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAq
LywKKwkJCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUFF
RkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0
MjAwMDZFM0ZFIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBC
NjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04MzcwLDYgKzg0NDcsMTAgQEAKIAkJCQk1QzBC
MTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8s
CiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyog
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
NTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywK
KwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUND
RiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlD
REEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04Njg5LDYgKzg3NzAsMTQgQEAK
IAkJCW5hbWUgPSBQREY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZF
RjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MTU5LDYgKzkyNDgs
OSBAQAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTgg
LyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZG
NCAvKiBQREZDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZE
NzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4RkIw
MjE4OTEyNjQwMDI1QTg4RCAvKiBQZW5jaWxLaXRTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtMTAx
NTIsNiArMTAyNDQsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZp
bGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0
Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKKwkJCQkzOTEzNjAyNTIxOTNDMTQz
MDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
IGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRERDM3OTIwQkY0M0Y1MDA2OTU5RkIgLyogY29tLmNp
c2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5QzEx
RTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAqLywK
QEAgLTEwNzYxLDYgKzEwODU0LDExIEBACiAJCQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8q
IE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNG
OUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5bWVudFBy
b2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
QTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE2ZDBhN2I1NjkyYjExOWZjNjdmNDI3ZGQ0NzllZTE4ZDM4MTYzYzAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmgiCisKKworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUv
U1dDb250ZXh0TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIs
ICp0aGlzKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1
dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7Cit9CisK
K3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQxNzdmOGYyZWM3YzU1Mzg3
N2QxZmI5MDQyNmQxMjNjMTZhNjIwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgor
ICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9TV1NlcnZlci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25J
RDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgfQorICAgIH5X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIAorICAgIElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBv
dmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlv
biogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rp
b24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDJiZmFlZTQ3NmUxZjRiY2NjZGIyNjYw
ZmU1ZDhlNjZiZDY3NGEzZDcuLjVkZmM1NTUwMGM1NjkzODE0NWNiNjNiZjc2ZDVkOGI3NjkzOTBh
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5JikgZmluYWw7CiAKICAgICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpv
Yihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworICAgIHZvaWQgc2NoZWR1
bGVQYXltZW50Sm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKICAg
ICB2b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRh
c2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKaW5kZXggYjk3
Yjc3ZmJhNWQ5M2YwYmQwOWM3NzJiMzJhYWFhMTQ2MzAzM2Q0Zi4uNzJkNDk0MTliZjk0YTUyODMx
ODM2NGU1YjE5MDQ4N2I5ZjE2ODdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250
cm9sbGVyLmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRD
b250cm9sbGVyOjpyZW1vdmVUYXJnZXQoSW5zcGVjdG9yOjpJbnNwZWN0b3JUYXJnZXQmCiAKIHZv
aWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmNvbm5lY3RJbnNwZWN0b3IoY29u
c3QgU3RyaW5nJiB0YXJnZXRJZCkKIHsKLSAgICBJbnNwZWN0b3JUYXJnZXQqIHRhcmdldCA9IG1f
dGFyZ2V0cy5nZXQodGFyZ2V0SWQpOworICAgIGF1dG8qIHRhcmdldCA9IG1fdGFyZ2V0cy5nZXQo
dGFyZ2V0SWQpOwogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAKQEAgLTc4LDcg
Kzc4LDcgQEAgdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVjdElu
c3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdldElkKQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JU
YXJnZXRDb250cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0
SWQpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdl
dElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKICAgICBp
ZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgV2Vi
UGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmRpc2Nvbm5lY3RJbnNwZWN0b3IoY29uc3Qg
U3RyaW5nJiB0YXJnZXRJCiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6
OnNlbmRNZXNzYWdlVG9UYXJnZXRCYWNrZW5kKGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBJbnNwZWN0b3JUYXJnZXQqIHRhcmdldCA9IG1fdGFy
Z2V0cy5nZXQodGFyZ2V0SWQpOworICAgIGF1dG8qIHRhcmdldCA9IG1fdGFyZ2V0cy5nZXQodGFy
Z2V0SWQpOwogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3MGNlOGVhNGVlZTgwOTZlMDRiM2VlNjdk
MWY0Y2YyMTI3MzUwZGFjLi45NTFlZmViYzg2YzhkZTljZWZkOTVmZjBjYzRlY2NkZDg3MTJhZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2ICs0Myw5
IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5o
IgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVXNlckRhdGEu
aCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
Q2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKQEAgLTY5LDYgKzcyLDkgQEAKICNpbmNsdWRlICJXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0U3RyZWFtLmgiCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgpAQCAtMTIxNyw2ICsxMjIzLDMxIEBAIFdlYkxvYWRl
clN0cmF0ZWd5JiBXZWJQcm9jZXNzOjp3ZWJMb2FkZXJTdHJhdGVneSgpCiB7CiAgICAgcmV0dXJu
IG1fd2ViTG9hZGVyU3RyYXRlZ3k7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3Zv
aWQgV2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKG1fd2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOworCisgICAgbV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7Cit9CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6
OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKQoreworICAgIGlmICghbV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbikgeworICAgICAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGlmaWVyOworCisgICAgICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKGluaXRpYWxTZXNzaW9uSUQpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRlbnRp
ZmllciksIDApKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBpZiAo
IUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIp
KQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0
aW9uSWRlbnRpZmllcik7CisKKyAgICB9CisgICAgcmV0dXJuICptX3dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZv
aWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDE4N2VhNDBkZTdlMWQ0OTRhOTI3
YTQyOTc2NzA4ZmM1NDRlYWYwNmYuLjMxYzY5YTUwN2EwZjY5NmNiNjMyNDI4Nzg0MGRhOTc0ZjRj
YmYwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtOTgsNiArOTgs
OSBAQCBjbGFzcyBXZWJMb2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBXZWJQ
YWdlR3JvdXBQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NTdXBwbGVtZW50OworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5
cGU7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQYWdlR3Jv
dXBEYXRhOwpAQCAtMTc1LDYgKzE3OCwxMSBAQCBwdWJsaWM6CiAKICAgICBMaWJXZWJSVENOZXR3
b3JrJiBsaWJXZWJSVENOZXR3b3JrKCk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHZvaWQgd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24qKTsKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYg
ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlh
bFNlc3Npb25JRCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZv
aWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKICAgICB2b2lkIGVuc3VyZUxlZ2FjeVByaXZh
dGVCcm93c2luZ1Nlc3Npb25Jbk5ldHdvcmtQcm9jZXNzKCk7CkBAIC00MzIsNiArNDQwLDEwIEBA
IHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eT4gbV9hdXRvbWF0aW9uU2Vzc2lvblByb3h5OwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICBSZWZQdHI8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+IG1fd2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFJlZlB0cjxQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYz
N2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3
MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiArMjg4LDcg
QEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdB
VE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNB
VElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3gg
PSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVO
QUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVf
UERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1F
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
OGM1MzVjN2ZmNjMwN2M5NTVmYTk3NzEyMTMwNDg4ZTRhYTg4Y2U5Ni4uNTVmNjc3YzAyNGU3YThl
YzY4MmNhMjgwYWJiYTYxZGI0NTI2MDYxYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTExLTE0ICBaYW1pdWwg
SGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHVi
IHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc05hbWUpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTgtMTEt
MTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBBZGQgU1BJIHRvIHNob3cgYSBzYWZlIGJyb3dzaW5nIHdhcm5pbmcKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCmluZGV4IDg2NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1
MDgwYjAxYTVjOGM4MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtMjg4LDYgKzI4OCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRv
dWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMg
PSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05P
VElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlN
RU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
XyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4
IDNmMWE2Mjg4NjgyMTAyYTU4OTJhMGVlZjMyYTk0NDJhMGNhZjUwODQuLmMzNDZhYmZkNjIwZjkz
NTU1ZmQ4MDA1YzhhMWI0MGQ4YTljMDQ3YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
bW0KQEAgLTE0NCw2ICsxNDQsNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENoaWxk
UHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAgICAgLy8gRW5zdXJlIHRoZSBzaGFyZWQgcHJvY2VzcyBw
b29sIGV4aXN0cyBzbyB0aGUgZGF0YSBzdG9yZSBvcGVyYXRpb25zIHdlJ3JlIGFib3V0IHRvIGRv
IHdvcmsgd2l0aCBpdC4KICAgICBXS1Byb2Nlc3NQb29sICpzaGFyZWRQcm9jZXNzUG9vbCA9IFtX
S1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNzUG9vbF07CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90
KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAg
RVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291
bnRdKTsKIAogICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVs
dERhdGFTdG9yZV07CkBAIC0xNjgsNiArMTY5LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogCiAgICAgRVhQRUNUX1RSVUUoW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOnRhcmdldFVSTC5wYXRo
XSk7CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFBy
b2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQppbmRleCA2MWRkYmMzZDYzYTllYTg3YzI2ZWNhMGQxYmZkNjY3NzY1NzMwOTE2Li5lNjQwM2U5
ZTBmZjZlYWJkYTllY2UwZjI5Y2ZmYTY1ZTU1NWNkYzg3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQpAQCAtMTA0Niw2ICsxMDQ2LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtl
clByb2Nlc3NDcmVhdGlvbikKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8vIE1ha2Ugc3VyZSBwYXltZW50IHByb2Nlc3MgaXMg
bm90IGxhdW5jaGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRp
b24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7CisKICAgICAvLyBNYWtl
IHN1cmUgdGhhdCBsb2FkaW5nIHRoZSBzaW1wbGUgcGFnZSBkaWQgbm90IHN0YXJ0IHRoZSBzZXJ2
aWNlIHdvcmtlciBwcm9jZXNzLgogICAgIEVYUEVDVF9FUSgxdSwgd2ViVmlldy5nZXQoKS5jb25m
aWd1cmF0aW9uLnByb2Nlc3NQb29sLl93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZCk7
CiAKQEAgLTExMzAsNiArMTEzMyw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEhhc1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25CaXQpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gcGF5bWVu
dCBwcm9jZXNzIGNyZWF0ZWQuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZpZXcuZ2V0KCkuY29uZmln
dXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKTsKKwogICAgIC8v
IExldCdzIHVzZSB0aGUgd2ViIHNpdGUgZGF0YSBzdG9yZSB0aGF0IGhhcyBzZXJ2aWNlIHdvcmtl
ciBhbmQgbG9hZCBhIHBhZ2UuCiAgICAgbmV3Q29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0
YVN0b3JlID0gW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV07CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCmluZGV4IDhkYjU2OTBiMzk0MzEwOTRiNTM1OGQwZDJhZmI4NzY5OWQyMDZk
YTAuLmQ2MmM2MGY3OGNjNTMwYTM1YWM3M2FlOGE0ODRkNTYwOGIxMTdkN2YgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbApAQCAtMzMzLDYgKzMzMyw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVy
IHsKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1p
bmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJv
Y2VzcygpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDVkYTU0NmFlZDVlN2Y3ZTM1OTU4M2RkODlhODIyYjQw
ZTVjY2NmNzQuLmM5ZDA2ZTk1Y2NiNzk0ZjZiOWRjNjRiZjNhOWYyNzNiODE1NzE1N2EgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcApAQCAtMTI1NSw2ICsxMjU1LDEyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3Nh
Z2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwg
bWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOwogfQogCit2b2lkIFRlc3RSdW5u
ZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJv
bm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCkt
PnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBzdGF0
aWMgdW5zaWduZWQgbmV4dFVJU2NyaXB0Q2FsbGJhY2tJRCgpCiB7CiAgICAgc3RhdGljIHVuc2ln
bmVkIGNhbGxiYWNrSUQgPSBGaXJzdFVJU2NyaXB0Q2FsbGJhY2tJRDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZThiYTk3
ZjcxNjg0ZGZjYTA3NzU3M2NjYWJjMTNjZTY0MzQwMmZiMS4uN2U2NTJjNTNlZTVhZDQ2Y2ZlNjVh
ZmU3MDkzZThhMWI5YTY1ODk2NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQ0Niw2ICs0NDYsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVT
ZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3Mo
KTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKEpTVmFsdWVSZWYpOwog
ICAgIHZvaWQgY2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrKCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQ0ZTgxOGVmMjE1
YjNjNjYzNTlmODg0NjUyNzFmMGNlMDgyM2NlZTEuLjhiZGJkNGM3NWQ4MTE5Mjc2NDQ1ODIwMzNj
YzYzNmJhMzIwZDQ4YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC0xMDc0LDYgKzEwNzQsMTUgQEAgY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5l
dHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYKIH0KIAorY29uc3QgY2hhciogVGVzdENvbnRyb2xs
ZXI6OnBheW1lbnRQcm9jZXNzTmFtZSgpCit7CisjaWYgUExBVEZPUk0oRkFNSUxZX0lPUykKKyAg
ICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOworI2Vsc2UKKyAgICByZXR1cm4g
IlBheW1lbnQgcHJvY2VzcyBub3QgYXZhaWxhYmxlIG9uIGFueXRoaW5nIGJ1dCBpT1MiOworI2Vu
ZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRl
KGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRl
Rm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzKTsKQEAgLTE1MDgs
NiArMTUxNywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNo
KFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAogICAgIHN0YXRpY19jYXN0PFRl
c3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5uZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNz
RGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7
CisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKK30KKwogdm9pZCBUZXN0Q29udHJv
bGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLRGljdGlv
bmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnksIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAgLTE4NDEsNiArMTg1NSwxMyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKICAgICBleGl0KDEpOwogfQogCit2
b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKCkKK3sKKyAgICBwaWRf
dCBwaWQgPSBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0Lmdl
dCgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBw
YXltZW50UHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7CisgICAgZXhpdCgx
KTsKK30KKwogLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2
aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMjY0MCw2ICsy
NjYxLDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKCkKICAgICBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhwbGF0Zm9y
bUNvbnRleHQoKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKCkKK3sKKyAgICBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhwbGF0Zm9y
bUNvbnRleHQoKSk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2MjVhNWI1NDY1OTIyYzdiYWZk
OTRiN2FjYzgxMjc2NTdiOGJjOTFmLi43ZjBmNzViNGRiYWY1ZDkxY2Y0NTA2NzkxNTY1NDM1ZmMz
NWY4NDFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xODEs
NiArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB3ZWJQcm9jZXNzTmFt
ZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuZXR3b3JrUHJvY2Vzc05hbWUoKTsKICAgICBz
dGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VQcm9jZXNzTmFtZSgpOworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBwYXltZW50UHJvY2Vzc05hbWUoKTsKIAogICAgIFdvcmtRdWV1ZU1hbmFnZXImIHdv
cmtRdWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1hbmFnZXI7IH0KIApAQCAtMjUy
LDYgKzI1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3Mo
KTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0
ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNzaW9uQ3Jl
ZGVudGlhbHMoKTsKIApAQCAtMzU3LDYgKzM1OSw4IEBAIHByaXZhdGU6CiAgICAgLy8gV0tDb250
ZXh0Q2xpZW50CiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRl
eHRSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKTsK
KyAgICBzdGF0aWMgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29u
c3Qgdm9pZCopOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOwogCiAgICAgLy8g
V0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdE5hdmlnYXRp
b24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBi
OGZjZDU3Yjg3NTlhYWRmM2NkNzNkOTk2MWY1MDdiYjhlZTQ0YjhiLi4wYzRmNmE5Y2VjMzdiMzcw
NTgzMzE0ZmZjODA5MmVlODQwNWExM2ZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcApAQCAtMTQ1Myw2ICsxNDUzLDEyIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJl
Zj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0
ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlUGF5bWVudFByb2Nlc3Mi
KSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSkgewogICAgICAgICBBU1NF
UlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355158</attachid>
            <date>2018-11-16 16:24:47 -0800</date>
            <delta_ts>2018-11-25 08:04:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181116162445.patch</filename>
            <type>text/plain</type>
            <size>138097</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmI2ODgzZjcxNmM0ZGZhOTU3OThkYzBlYjNiZmZmYjYxNjAyNjE2Li4yNGRlZDM4OTdjMDA3MjFk
NmQ3OWQ5MWI4Y2NkMzEwNGE3ZDhmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhc3MgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9kaXNjb25uZWN0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjM2FhYzBhZTZkZTBkOGVmY2MyMjhkNmJiZTVlM2YyZTk0
ZTU2ODI5Li42NmJmYTMzM2VhYmNiZDI2ODUwNTg4NmY3Mzk2MDQwZGM3N2RjMTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0xNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIENvZGUgcXVhbGl0eSBjb25jZXJucyBy
YWlzZWQgZm9yIDE5MTI5MTogW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYTc5NGYyMTIxMzU2Y2E0MDdhODYzZGExZWI5YTJkZDhlOWM4M2RlYi4uZjMwMzI4MDYyMWY1
MmZiMDFkMmVlNjlmNGNlNTNjOTViZDg4OWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZTVmMmNmMmZkYmM5YTg2Y2Q2MDZm
Mjg4ODNiYTljZGUxM2QzMi4uOGU1NTAwMGM0MzIwMzQ0OWMxNDE0OWMzNGRhNWJmYWQxNGIwYTM2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzog
QWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1l
bnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQ
VUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BV
TW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJl
VG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0Fs
bExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1v
cnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlh
RGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEg
cmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNDU2Nzg4M2M4ODMyYTU3MzI2ZGNmNzYwNDM4MDFhMmY5ZWRjYjc0ZS4uMjM0
MTk0ZjYzMmNmOTNmNjRiZmJhNjA4Y2M5NTAyMTYxOWE2ZTZlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBj
b25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2
NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4
MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4
OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEw
MjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1Yzhj
ODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4ZjFmNjc2
NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMiID0gIiVA
IFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50IiA9ICIl
QCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFh
ZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEzODg2YjVkNDhiNjZkMzFm
MDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3MiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJVF9ESVJ9
L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAgICIke1dF
QktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Qcm9jZXNz
IgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2FtZXBhZCIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCkBAIC00
NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
CiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgorICAgIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyMSw2ICsyMjks
MTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQogCitzZXQo
UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisKIHNldChQbHVnaW5Qcm9j
ZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2JiYjAxMmEzOWU2NWRhOGJh
OGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRjZmRiMjA2YTRkNjNjZjNl
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNj
b25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJFRElDVElPTltzZGs9bWFj
b3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVMgPSAkKFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BSRURJQ1RJT04pKTsKIFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9QUkVESUNUSU9OOwogCitX
S19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJW
SUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9TRVJWSUNFX05BTUUpKTsK
IFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19TVE9SQUdFX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8gPSBj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdmN2IxODliNDI2MjQ5NDAxMjU4OWJhMDE3MTg1YTkzODE0NmY0Y2IKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
CkBAIC0wLDAgKzEsMzMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBt
ZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8v
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BBWU1FTlRfRU5USVRMRU1F
TlRTX1JFU1RSSUNURURfTk8gPSA7CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFNfQ09DT0FfVE9V
Q0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfJChXS19VU0VfUkVT
VFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lHTl9GTEFHUyA9ICQoV0tfTElC
UkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BST0RVQ1RfTkFNRSA9ICQoV0tf
UEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVS
ID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY3ZDQ4YzY0ZDcyOWJjZmVlODBmNWFjNDBmNGU3YzNlYmM3NzMyNC4u
ZDMxNzVhZDhiMGIzMmM3ZjU2NjZhNmIzYmQyN2UzZDkyNjUyMmJkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtMzAsNiArMzAsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L05ldHdvcmtQcm9jZXNzL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlciBc
CisgICAgJChXZWJLaXQyKS9QYXltZW50UHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Q
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MvbWFjIFwKICAgICAkKFdlYktp
dDIpL1NoYXJlZC9QbHVnaW5zIFwKQEAgLTczLDYgKzc0LDcgQEAgVlBBVEggPSBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BheW1lbnRzIFwKICAgICAkKFdlYktp
dDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTIxLDYg
KzEyMywxMCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBOZXR3b3JrU29ja2V0U3RyZWFt
IFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyIFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHkgXAorICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIFwKKyAgICBQYXlt
ZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFByb2Nlc3NQcm94eSBcCisgICAgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRyb2xsZXJQcm94eSBcCiAgICAgUGx1
Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWZh
Y2Y0ZmJiMTQ3MmFjZmJlMGY0NjE3NTA4MGZlMjk2NzQwYTJjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKQEAgLTAsMCAr
MSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2VzcyYg
UGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzOworfQorCitQYXlt
ZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQoreworfQorCitQYXltZW50UHJvY2Vzczo6flBh
eW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIENoaWxkUHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisKK2Jvb2wgUGF5bWVudFBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJN
YXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBkaWRSZWNl
aXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3Ms
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
UEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZiM2ExNzM1ODM1NDQ0MjM0ZjU5Y2M2YTU0
NDk0ZTdmNzdhODMyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ2hp
bGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5o
PgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3QgUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGljIENoaWxk
UHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3MpOworICAg
IGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz47CitwdWJsaWM6CisgICAgc3Rh
dGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMgY29uc3RleHByIFBy
b2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisKKyAgICB+UGF5
bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBQYXlt
ZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdm9pZCBpbml0aWFsaXpl
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFRl
cm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAgIHZvaWQgY3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOThiOTE0ZmM0YThmNDQ3MThjZmExMjU3NmQzMzhkYWU1OTJhYTBlMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2Fn
ZXMgLT4gUGF5bWVudFByb2Nlc3MgeworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNDc0Yzli
Yzc5ZjRiZjM4NmI2YTI3OGEzODcwYWFjZjNjY2NhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlm
aWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2
ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8gRklY
TUU6CisgICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0
Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUp
CisgICAgLy8gdG8gcHJldmVudCBkZWFkbG9jayB3aGlsZSB1c2luZyBzeW5jaHJvbm91cyBtZXNz
YWdlcworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlUGF5bWVu
dFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKK30K
Kwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShtZXNzYWdl
UmVjZWl2ZXJOYW1lKTsKKyAgICBVTlVTRURfUEFSQU0obWVzc2FnZU5hbWUpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0OWE5ZWI0YTEzNzY0NDExNmNhY2Vk
MDM4MzA3YWIzNDA4MWNmZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
biA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiwgcHJp
dmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkg
eyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAg
IC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICAvLyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3Qg
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA0YzBkYmMyNDc1
NDIxN2M3ZDlhM2MwNGI4NDBlM2QyMjNkYmMyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30KKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYTVlMzcwZjU0ODU0MjczZDMzODRhZmRkYjU2ZTYxYzY4Mzk1NjYyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVu
dFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1Mp
CisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5E
Qk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFX01B
TlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBvdmVycmlkZSB0aGUgZGVm
YXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCisgICAgTlNC
dW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zy
b21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJp
ZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29t
LmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7CisgICAgQ2hpbGRQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1ldGVycyk7CisjZW5k
aWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5Q
YXltZW50cy5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDY3MmM2ODZiMTY2N2Fk
OTdmNWRmZDc1YTRiM2E3YmRjMDYwN2IzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRz
LnNiCkBAIC0wLDAgKzEsMzIgQEAKKzsgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0
OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworOyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKzsg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKzsgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorOyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlv
bikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRhZGF0YSkKKworKGltcG9ydCAi
Y29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1sb29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4
ICIiKSkKKworKGRlbnkgbHNvcGVuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAppbmRl
eCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdhNjFmZmFiZGYzNzY5Li41ZDBjYzZlMmY1NGQz
NjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nl
c3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkNvbnRlbnQsCiAgICAg
ICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAg
IH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcwODMzMTJjZjg4ZjdkZjk2NDliMmQzNjJiZDc0NjExMTAwZjgzMDAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCit7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7Cit9CisKK2Jvb2wgUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCit7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDBhMDlhYjdlZmQ3ZjIwOTRmZTZkNjdlZjQ1YjlmMzg0NjczN2FlMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKKworICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworCisgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRjNzJlNTgyYWJlMzBmNDg3
OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2NzAxNzkxZjBjZTlhYWRl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRo
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAg
LTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
ZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwog
U3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1lbnRQcm9jZXNzKCk7Cisj
ZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDg3
NjZkZmQzMDIwOTYzMWQzOThhNTM5ODM4Y2VhOWZjMDRhODc3ZmEuLmVhYTJjM2U2NzUzZTNiOThh
ODRiZmM1M2ViYjA4Mzg1MWFkYzY5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNzksNiArNzksOSBAQCBO
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAKIAogTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCiAKK1BheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLmNwcAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisKIC8vIFRPRE86IFdlIHNob3VsZCB1bmlmeSB0aGVzZSBmaWxlcyBvbmNl
IEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBA
bm8tdW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAgQG5vLXVuaWZ5CkBAIC0yMDcsNiArMjEwLDgg
QEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0LmNwcAogCiBTaGFyZWQv
R2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIC8vIFRPRE86IFRoZXNlIGZpbGVzIHNob3VsZCBiZSB1
bmlmaWVkIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3ZlZC4KIFNoYXJlZC9QbHVn
aW5zL05QSWRlbnRpZmllckRhdGEuY3BwIEBuby11bmlmeQogU2hhcmVkL1BsdWdpbnMvTlBPYmpl
Y3RNZXNzYWdlUmVjZWl2ZXIuY3BwIEBuby11bmlmeQpAQCAtMzgwLDYgKzM4NSw4IEBAIFVJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAogCitVSVByb2Nlc3MvUGF5bWVudHMv
UGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCiBV
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKQEAgLTQ4MCw2ICs0ODcs
OCBAQCBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAKIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAor
V2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKwog
Ly8gVE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Q
cm9jZXNzMiBpcyByZW1vdmVkLgogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAgQG5vLXVu
aWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIEBuby11
bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGVjYzgyZDFhOGNlNDY3NWFjMWE0ZjZlZDcw
NGI2YjI0MjhkOTc1MjguLmRiYzJhODVhNzE1OWFjYTBkYjBkZDYzMDgxNTZjZDFmZDg3YjhkNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4Myw2ICsxODMsOCBAQCBTaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdERhdGEubW0KIFNo
YXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KIAorUGF5bWVudFByb2Nlc3MvaW9zL1Bh
eW1lbnRQcm9jZXNzSU9TLm1tCisKIFNoYXJlZC9QbHVnaW5zL21hYy9QbHVnaW5TYW5kYm94UHJv
ZmlsZS5tbQogCiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5Nb2R1
bGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmlu
ZGV4IDA0MDFlNzJiNGM2ZjVlNGU1OWRkOGNhYjQwYjY2NDM1ZDRmNThmYjkuLjdiZjNmNWExMmM5
N2VjYTc5ZGI3NDBlNjljNDVkZmM5ZWE0YWJiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNjIxLDExICs2MjEsMjcgQEAgdm9pZCBXS0NvbnRl
eHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKICAg
ICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKIH0K
IAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYgY29u
dGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHRvSW1wbChjb250ZXh0
KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9j
ZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9J
bXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorUHJvY2Vz
c0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiB0b0lt
cGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICBy
ZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiB2b2lkIFdL
Q29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJp
bmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS0FycmF5UmVmIG1pbWVUeXBl
c1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
UHJpdmF0ZS5oCmluZGV4IDQ2ZDM3ZTFlOGExNTg5NTgwYTM1NTM4ZWU1ZjZmOWJjMmQ4MGUyMmMu
LjQwZGFjZWI1N2M5MWMyNjQzNTViYWJkNmFlMzVkMjhhNDI3ZTYyNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTkzLDYgKzkz
LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKFdLQ29u
dGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKwogV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0
aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29udGV4dFJlZiwg
Ym9vbCk7CiAKQEAgLTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRG
b250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVm
IHNlcnZlclVSTCk7CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3Jr
UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLUHJv
Y2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihX
S0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWluLCBXS1N0cmluZ1JlZiBuYW1l
LCBXS0FycmF5UmVmIG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRlbnNpb25zKTsKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhXS0NvbnRleHRSZWYgY29udGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tCmluZGV4IGNmMjgxMWU4YjNhY2FhYjBkMDgxZTA4ODJjYmZkODNjN2Q1ZGQ1Y2UuLjBm
MzIxMjhhMmYzZGE4NTU2ZjQ0NGQ3NDljYjUzOTI3ODUwODE2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MjQsNiAr
NDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwogICAgIF9wcm9jZXNzUG9v
bC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQpX3Rlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBfcHJvY2Vzc1Bv
b2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
CiB7CiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpAQCAtNDQ0
LDYgKzQ1MSwxNSBAQCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyCiAgICAgcmV0
dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKKy0gKHBp
ZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigp
OworI2Vsc2UKKyAgICByZXR1cm4gKHBpZF90KTA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK30KKwogLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcwogewogICAg
IF9wcm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aAppbmRleCA0ZDNhMTkxMjBhYmQ0OWVlZTA0OTI3OTRhNzdmNGFmYjA2Y2RlOTBjLi40Yjk2ODE5
Y2IzOWQ2MWVlYWI5NTljNTJhNjEwMzM1MDM2MmE1NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAt
ODQsMTIgKzg0LDE1IEBACiAtIChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRh
OihOU0RhdGEgKilyZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBvbmx5
LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFy
ZSBydW5uaW5nLgorLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRf
UFJPQ0VTUyBpcyBFTkFCTEVECistICh2b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVybWluYXRlU2VydmljZVdv
cmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7
CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLy8gVGVzdCBvbmx5
LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDg3YjBiYmVjODEzMDNh
NzVjODVlMmE4Y2JjMzBlN2FjMjJkODNkY2UuLjZkNjZlYzMxYWZmNmVkYzFhNDFmNjg0ODMyNTIz
Y2Q4N2U2YmQyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICAgICAgUGx1
Z2luNjQsCiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAgICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
CmluZGV4IDNiNDYxNjM0ZTg1MTczOWQ2OTVkMDU1NWJlNTRkNjliNDg0NjA2NDguLjU3MmNlNDkw
ZTBjYTUxNWRhMjBhN2Y3YTJjODg3OTY5MTA2M2M1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpA
QCAtNjIsNiArNjIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0IFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICAgICBjYXNlIFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAgICAgICByZXR1cm4gImNvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50OgorICAg
ICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVmNDY1MWRiYzRjOTEzOTRlY2Q3YTNkNWUyNDY1OWJiNjAzMDNjMDUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQ
cm94eS5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCisgICAgOiBDaGlsZFByb2Nlc3NQ
cm94eShwcm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAs
IG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9u
UmVxdWVzdHMoMCkKK3sKKyAgICBjb25uZWN0KCk7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6
On5QYXltZW50UHJvY2Vzc1Byb3h5KCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKK3sKKyAgICB0ZXJtaW5hdGUoKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1
bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NU
eXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDsKKyAgICBDaGlsZFBy
b2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25zKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5l
Y3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
KyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOworCisgICAgaWYgKHN0YXRlKCkg
PT0gU3RhdGU6OkxhdW5jaGluZykgeworICAgICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVx
dWVzdHMrKzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJvb2wgaXNTZXJ2aWNlV29y
a2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdp
bjsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBzZWN1cml0eU9yaWdp
biksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9y
U3luY1JlcGx5KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKQoreworICAgIGF1dG8gcHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVm
KG1fcHJvY2Vzc1Bvb2wpOworCisgICAgLy8gVGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUg
Y3Jhc2hlZCBvciBleGl0ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1p
Z2h0IGhhdmUuCisgICAgd2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5
KCkpIHsKKyAgICAgICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRh
a2VGaXJzdCgpOworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKyAgICAvLyBUZWxs
IFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBt
YXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9j
ZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmll
cikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50
aWZpZXIpOworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNv
bm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFu
dXAgaGVyZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRpbmdDb25uZWN0aW9u
UmVxdWVzdHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNmMxYjk3YTAwMGZm
ZDkwNzU2ZGIxYzc0NjQ1ODQwYTU4ZjI4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCArMSw4
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NM
YXVuY2hlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFBB
TCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNl
Y3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2Ns
YXNzIFBheW1lbnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkg
eworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bv
b2wmKTsKKyAgICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAorICAgIHZvaWQgZ2V0UGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwor
CisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisKK3ByaXZhdGU6CisgICAgLy8gQ2hp
bGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVy
OjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3du
KElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRSZWNlaXZl
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBkaWRDcmVhdGVQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIC8v
IFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJv
Y2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKKwor
ICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisgICAgdW5zaWduZWQgbV9udW1Q
ZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiBtX3BlbmRp
bmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZjMxMGNmY2Q1MTYyZWM0N2NlYTI5MzFkNjg0NzliOTBhMTA1NDc1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVu
dFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
bWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CisgICAgRGlk
Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0hpZFNlcnZpY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL0hpZFNlcnZpY2UuaAppbmRleCBiYzM2MzIzMWI1NDFmMTZmMmI5YWFjNThiNDM0
ZTUxMGRmNmI3NDE4Li43ZDJkMzVmMjQ3ZGVkMDJlMDZmNGQ2YjE1ZDNhOWQ3NTQxZWQyYWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9IaWRTZXJ2aWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQ29jb2EvSGlkU2VydmljZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJB
dXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oIgogI2luY2x1ZGUgPElPS2l0L2hpZC9JT0hJ
RE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRh
ODU2NjM5NzQxZDU3NS4uYmVjNzliNTRjYmY2YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2
LDQgKzQ2LDExIEBAIHZvaWQgV2ViQ29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFz
aChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nl
c3NEaWRDcmFzaCh0b0FQSShwcm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50
OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sK
KyAgICAKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaApp
bmRleCA4MGMzMTEyMmMwNzc2ZDRlZThkNzc4ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkx
MDhmMjM4ZjFkNmY4YWJmMWFiOWVkY2M4NDUzOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC00NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0
Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1Ymxp
YzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vz
c1Bvb2wqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wq
KTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NE
aWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAw
NDM4YmEzMmE2MGM3NTgyNzQ5MzRmYTYuLjJjNmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0
NTlhMTI3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaApAQCAtMjksNiArMjksMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQ
YXltZW50UHJvY2Vzc1Byb3h5OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
IGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2
ICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3
b3JrUHJvY2Vzc1Byb3h5KikKICAgICB7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vz
c1Byb3h5KikKKyAgICB7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKICAgICBXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3By
b2Nlc3NQb29sOyB9CiAgICAgdm9pZCBjbGVhclByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29s
ID0gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CmluZGV4IGM4MmFmY2YzNWEyMjQ5ZGUwMDIwOWQ0NWNjNDBkNmYzOTI3ZjBkMzMuLjg2YTZlYjhi
YWVlYmRlNGEzNmY4ZWI0ZTBiNzNmNWRlZDk1M2RjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRl
ICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgog
I2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC00NDIsNiArNDQ2LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQog
ewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNl
aXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2lu
Z1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJl
RXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2Vu
ZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9y
eVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vz
c01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwp
OwogI2VuZGlmCkBAIC02MDcsNiArNjE0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nl
c3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBp
ZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1h
a2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+KCp0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkm
IHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5
bWVudFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHks
IFdURk1vdmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nl
c3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkmIHBheW1lbnRQcm9jZXNzUHJveHkpCit7Cisg
ICAgQVNTRVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1By
b3h5ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVt
ZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vz
c0RpZENsb3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFBy
b2Nlc3NEaWRDcmFzaCh0aGlzKTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAg
ICAgICBtX2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFBy
b2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxp
c2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQ
cm94eSYgcHJveHksIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9w
dGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQpCiB7CkBAIC02ODMsNiArNzIwLDkgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZChib29sIHByaXZhdGUKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpE
ZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgfQogfQpAQCAtMTMzMiw2ICsxMzcyLDE1IEBA
IFZlY3RvcjxTdHJpbmc+IFdlYlByb2Nlc3NQb29sOjphY3RpdmVQYWdlc09yaWdpbnNJbldlYlBy
b2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJCiAgICAgfQogICAgIHJldHVybiB7IH07CiB9CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdh
eXNVc2VDb21wbGV4VGV4dCkKIHsKQEAgLTE2MDMsNiArMTY1MiwxNyBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKICAgICBpZiAobV9uZXR3b3JrUHJvY2Vz
cykKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKSwgMCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzRm9yVGVzdGluZygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BheW1lbnRQcm9jZXNzLT50ZXJtaW5hdGVGb3JUZXN0aW5nKCk7Cisg
ICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNTUz
ZGFjNWU0MWY4NmUwYzdjNmJlN2FmMTc5ZTQ3YjFjMGU3ZTc2ZC4uMzIyYzA5NmQ3NWU4MjQ5ODVk
NzFhMGVkMzkxMTZiMTY1ZjRjNWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0
aXN0aWNzUmVxdWVzdC5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NQcm94eS5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgpAQCAtMTczLDYg
KzE3NiwxMiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
dm9pZCBzZW5kU3luY1RvTmV0d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBseSk7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1Jl
bGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICAvLyBTZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9yIFBheW1l
bnRQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLgorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3Nh
Z2UpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3NS
ZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlBy
b2Nlc3NQcm94eSopOwogCiAgICAgLy8gRGlzY29ubmVjdCB0aGUgcHJvY2VzcyBmcm9tIHRoZSBj
b250ZXh0LgpAQCAtMjE3LDYgKzIyNiw5IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzSUQgbmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gYWN0aXZlUGFnZXNPcmln
aW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9jZXNzSUQpOwogICAgIGJvb2wgbmV0d29ya1By
b2Nlc3NIYXNFbnRpdGxlbWVudEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVy
KCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VHcm91
cCYgZGVmYXVsdFBhZ2VHcm91cCgpIHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQoKTsg
fQogCkBAIC0yNzYsNiArMjg4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3Jl
ZGVudGlhbHMoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVybWlu
YXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2Vydmlj
ZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCk7CkBAIC0zNDIsNiArMzU3LDEyIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQ
cm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICB2b2lkIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94eSog
cGF5bWVudFByb2Nlc3MoKSB7IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9CisgICAg
dm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFMOjpT
ZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwYXlt
ZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQg
ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQ
cm9jZXNzUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25h
bDxQQUw6OlNlc3Npb25JRD4pOwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBA
IC02NDEsNiArNjYyLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2
ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNz
Q3Jhc2ggeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5
PiBtX25ldHdvcmtQcm9jZXNzOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFBheW1lbnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVx
dWVzdHM7CkBAIC03NDIsNiArNzY2LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAgICBt
X25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQoreworICAg
IGlmIChtX3BheW1lbnRQcm9jZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNzYWdl
KCkpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3Nh
Z2UpLCAwKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkK
K3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNl
bmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxYzA1ZjM0OWU2NjY2NTY3OGY4
M2QyMTI3ODRiZjhmZmE2ZTg4YTk5Li4xYWE5MGFjYmM0MjhhZWM4ZjQ3NDQ1MDRjZjRkMWY0Mzll
OTAzYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTYyMyw2ICs2MjMsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3By
b2Nlc3NQb29sLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVw
bHkpKTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vz
c2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShy
ZXBseSkpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAhUExB
VEZPUk0oQ09DT0EpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVidWdn
ZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRl
eCA3YmViOTUxNjY1NTcyNjU0MTlkM2RhOTMyM2U0ODlhOTk0ZDBjZTM5Li4wODFmMWE0ZTM3MGE1
MzE1YWJkMzViNmNmM2Y2ZTVmNzRhMWExOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaApAQCAtMjg1LDYgKzI4NSw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWlu
Z0RlYnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRD
b2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2YTk4ZjRlOTYwNDdkYWJmMTY0YTc2MTBhODdmMmE5
ZjY4NjBiNDhhLi44ZjVlMWQ2NjYwYjE1MGQ3NTczMGE2M2UxZjA5M2Q0M2Y2YTM2ZDI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0zNyw2ICszNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wg
c3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAg
R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0
aW9uSGFuZGxlKSBEZWxheWVkCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkg
LT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAg
IERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBiOTBj
MTQyNDE3NmM2NTE1ZTdlZTRhNTYyMmI4ZWM2ZWJlMjZjMzgxLi45MjVhZGU0N2Y5YWQzNWEzMDY1
ODBiODU1MWJlODQwMGQwM2Y1NDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQsMTAg
QEAKICNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKQEAgLTEzNSw2ICsxMzksNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0
ZURhdGFTdG9yZSgpCiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldCht
X3Nlc3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCkucmVt
b3ZlKG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlBy
b2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgeworICAgICAgICAgICAgZGVzdHJveVBheW1l
bnRQcm9jZXNzU2Vzc2lvbihwcm9jZXNzUG9vbCk7CiAgICAgICAgICAgICBpZiAoYXV0byogbmV0
d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAg
ICAgICBuZXR3b3JrUHJvY2Vzcy0+cmVtb3ZlU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgICAg
IH0KQEAgLTEzMjIsNiArMTMyNywxMyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZUFs
bFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJgogICAgIH0K
IH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpkZXN0cm95UGF5bWVudFByb2Nlc3NTZXNzaW9u
KFdlYlByb2Nlc3NQb29sKiBwb29sKQoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgcG9vbC0+c2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpE
ZXN0cm95U2Vzc2lvbihtX3Nlc3Npb25JRCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCit9CisgICAgCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZVByZXZhbGVudERv
bWFpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpCiB7CiAgICAgZm9yIChhdXRvJiBw
cm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQpAQCAtMTYyNiw2ICsxNjM4LDE5IEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNz
ZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0
YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJlY3Rv
cmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsK
KworICAgIHJldHVybiBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBlbmRp
bmdDb29raWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nv
b2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDg1MmI2YmI1ZDM2ZmJiNmU5NTk5MmU4ODI0NjhiMjZi
ZGQ5MDcxNTkuLjVhNjM2Mzk0OWI2ZWYwNjNjOTAyNTRlNmFhOGQ5ZjRiNGM5OTg2ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKQEAgLTY2LDYgKzY2LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFzcyBX
ZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBzdHJ1
Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7
CiAKQEAgLTE3MSw2ICsxNzQsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNBc3NvY2lhdGVkUHJv
Y2Vzc1Bvb2woV2ViUHJvY2Vzc1Bvb2wmKSBjb25zdDsKIAogICAgIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBheW1lbnRQcm9jZXNzUGFyYW1ldGVy
cygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBkZXN0cm95
UGF5bWVudFByb2Nlc3NTZXNzaW9uKFdlYlByb2Nlc3NQb29sKik7CiAKICAgICBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiBwZW5kaW5nQ29va2llcygpIGNvbnN0OwogICAgIHZvaWQgYWRkUGVuZGlu
Z0Nvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlNDBkYmQ3ODE0NjQ2ZTc1ODE2ODQ4
NmY1OWYzZTRlNTY3YTFjZDEuLjYwN2VkZDMwMjg4MzhkNmFlM2I1YTdiMjEyZjBkZGUyZTNkMDg3
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtODQ4LDYgKzg0OCw3IEBACiAJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oICovOyB9OwogCQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OworCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyog
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBs
ZS5XZWJLaXQuUGF5bWVudHMuc2IgKi87IH07CiAJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAv
KiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY1MTg4N0JEOTcwMDI3OTVG
RCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJ
M0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nl
ci5oICovOyB9OwpAQCAtOTA2LDYgKzkwNywxMCBAQAogCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJG
RjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUMwQzk3OTFEREQ3ODU0MDAzMkNBRDMgLyogX1dLTGlua0lj
b25QYXJhbWV0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZC
Qjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJ
CTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEFFMEIxMzNDMTZDQjAwNzI3
MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oICovOyB9OworCQk1MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUFCMUYyOTU5Nzcw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTExRjdENDExRUIxQkNG
NTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMg
LyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTExRjhBN0IxMzhCNDYw
OTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0
ZW1TaGltTGlicmFyeS5oICovOyB9OwogCQk1MTFGOEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogU2Vj
SXRlbVNoaW1MaWJyYXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5t
bSAqLzsgfTsKQEAgLTk1Nyw2ICs5NjIsNyBAQAogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUg
LyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMy
OTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4
NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAw
QzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTUx
N0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVCRDE4MERBN0QzMDA4
MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlE
MDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0
TWVudS5oICovOyB9OwogCQk1MThBQ0FFQTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9u
U3BhY2VUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MThBQ0Yx
MTEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDRjEwMTJCMDE1RjgwMEIwNEI4MyAv
KiBXS0NyZWRlbnRpYWxUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC05ODQsNiArOTkwLDggQEAKIAkJNTFERDlGMjgxNjM2N0RBMjAwMTU3
OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI2MTYz
NjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCTUxREQ5RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovOyB9OwogCQk1MUUzNTFDQjE4MEYyQ0ND
MDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVz
LmggKi87IH07CisJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFG
QTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovOyB9OworCQk1MUUzNTIw
MDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkQxODBG
NUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsK
IAkJNTFFNkMxNjQxRjI5MzVERDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJz
aXN0ZW50U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFFNkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
ZXJzaXN0ZW50U3RvcmFnZS5oICovOyB9OwogCQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyog
V0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURP
TVdpbmRvd0V4dGVuc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxRjA2MEUwMTY1NDMxN0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5o
ICovOyB9OwpAQCAtMTU2OSw2ICsxNTc3LDcgQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5
IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9
OwogCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0
QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxMDVGRTU0MThE
N0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5n
UmFuZ2UuaCAqLzsgfTsKKwkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9j
ZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovOyB9Owog
CQlFMTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3RTM3MTUw
QUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJRTE0QTk1
NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2
RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsg
fTsKIAkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NTE2NkVB
QkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCAqLzsgfTsKQEAgLTI5ODAsNiArMjk4
OSwxMSBAQAogCQkzRjQxOEVGNjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFu
YWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkzRjQxOEVGODE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFw
cGxlLldlYktpdC5QYXltZW50cy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkx
MzYwMkIyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0
OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTM5MkU5NDJCMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5
ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzRjg3QjlCQTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2
MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29sb3JDaG9vc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJG
MTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzEwMiw2ICszMTE2LDcgQEAKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJs
b2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxv
Y2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFG
NjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdl
YkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNEY1QTExRjE5
RDdDRjAwNENGODIxIC8qIENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVV0aWxzQ0YubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcxMUM3M0QyMkIwMDc5OTNDQiAvKiBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTA1MjM3MjFDNzNEMzdCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zMTI1LDEx
ICszMTQwLDE1IEBACiAJCTUxMTBBRTBBMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ljb25EYXRhYmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBBRTBCMTMzQzE2Q0IwMDcy
NzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0ljb25EYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlB
MjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExOEU5QTMx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNDFGMjk1OTYzMDAzRUY5RjUgLyog
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTUxRjI5NTk2MzAwM0VG
OUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyog
U3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01l
c3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTcx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1
MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vz
c01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE3MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGN0QzRjFFQjFCQ0VFMDBFNDdCODMgLyog
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEx
RjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBTZWNJdGVtU2hpbUxpYnJhcnkuaDsgcGF0aCA9IC4uLy4u
L1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMzE0Nyw2ICszMTY2LDcgQEAKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1
IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEy
OTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRN
ZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMkY1ODhFMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTJGNTg4RjEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODkw
MTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMTcsNiArMzIz
Nyw4IEBACiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0Yw
RTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMjE2
M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJ
NTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBheW1lbnRQcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4
M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBwYXRoID0gU2hpbS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNv
bnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRN
ZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjM2LDYgKzMyNTgsNyBAQAog
CQk1MUE1NTYwMDEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAv
KiBXZWJJREJSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViSURCUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0Yx
RDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJJREJSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MUE3MjhEQzFCMUJBRDJEMDAxMDJFRUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0
aW9uUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5h
dmlnYXRpb25BY3Rpb25Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
QTdGMkYyMTI1QkY4MjAwMDhBRUIxRCAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFB
N0YyRjQxMjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zMjk1LDYgKzMzMTgsMTEgQEAKIAkJNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxRTM1
MUM4MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSURCVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQ
cm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1l
bnRQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJv
Y2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTFFMzUxRkUxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdh
bWVwYWRQcm92aWRlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFFNkMxNUYxRjI5MzU1MTAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
ZXJzaXN0ZW50U3RvcmFnZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxRTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
NDQ5LDYgKzQ0NzcsNyBAQAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveElu
aXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
RUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQ
YWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYz
OUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3Jr
Q2FjaGVFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2Fj
aGVFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlE
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFu
bmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hh
bm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDYyMSw2ICs0NjUwLDcgQEAK
IAkJCQkxQTFEMjExNjE5MUQ5OTVDMDAwMTYxOUYgLyogcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhl
YWRlcnMuc2ggKi8sCiAJCQkJQkMyRTZFNzQxMTQxOTZGMDAwQTYzQjFFIC8qIFBsYXRmb3JtICov
LAogCQkJCTFBQURERjRCMTBEODJBRjAwMEQzRDYzRCAvKiBTaGFyZWQgKi8sCisJCQkJNTFGN0RD
MEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNzICovLAogCQkJCUJDMDMyREMzMTBG
NDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThD
MTVBIC8qIFdlYlByb2Nlc3MgKi8sCiAJCQkJNTEwQ0M3REExNjEzOEUwMTAwRDAzRUQzIC8qIE5l
dHdvcmtQcm9jZXNzICovLApAQCAtNDgyNiw2ICs0ODU2LDcgQEAKIAkJCQk0MUQwRkM3RDIwRTQz
QTUxMDAwNzZBRTggLyogTmV0d29yay1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJ
NUM3QUNGRDEyMThERDhCRDAwNENCQjU5IC8qIE5ldHdvcmstT1NYLmVudGl0bGVtZW50cyAqLywK
IAkJCQlCQzgyODNBQjE2QjRCRUFEMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2UueGNjb25maWcg
Ki8sCisJCQkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29u
ZmlnICovLAogCQkJCUExRUREMkRCMTg4NEI5NjQwMEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hp
bS54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNGMjE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2Vy
dmljZS4zMi54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNGNDE2QjRGQzUzMDBBMjc4RkUgLyogUGx1
Z2luU2VydmljZS42NC54Y2NvbmZpZyAqLywKQEAgLTQ5ODMsNiArNTAxNCw3IEBACiAJCQkJNTE1
QkUxQUUxRDU5MDAzNDAwREQ3QzY4IC8qIEdhbWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTRE
QTAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFj
ICovLAorCQkJCTM5MTM2MDJBMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50ICovLAogCQkJCTFB
QUUwNThDMTI3OURDRDQwMDg1MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVD
NEYwMEJCMjVFRCAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAw
M0ZCMEU2IC8qIFdlYnNpdGVEYXRhICovLApAQCAtNjI2Myw2ICs2Mjk1LDI0IEBACiAJCQlwYXRo
ID0gUmVzb3VyY2VzL21hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM5
MTM2MDJBMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50ICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOTEzNjAyQjIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovLAorCQkJCTM5MTM2MDJDMjE5NTE0
QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAorCQkJ
KTsKKwkJCXBhdGggPSBQYXltZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
KwkJMzkyRTk0MkEyMTlBMkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIg
LyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MkU5NDJCMjE5
QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJ
KTsKKwkJCXBhdGggPSBQYXltZW50czsKKwkJCXNvdXJjZVRyZWUgPSAiPHVua25vd24+IjsKKwkJ
fTsKIAkJNDEzMDc1OTcxREU4NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NTgyLDYgKzY2MzIsMTYgQEAKIAkJCW5h
bWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTdERDVCQjE4
MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVu
dFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50
czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAw
MEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC02NjM4LDYgKzY2OTgsMjAgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMg
LyogUGF5bWVudFByb2Nlc3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8sCisJCQkJNTFFMzUx
RkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLywKKwkJCQk1MUUzNTFG
QjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLywKKwkJCQk1MUUzNTFGQzE4
MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNTFF
MzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLywKKwkJCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uaCAqLywKKwkJCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9
IFBheW1lbnRQcm9jZXNzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTM5
QkQ1QjIxREFEQjBCQTAwRjJFNEUxIC8qIGNhcHR1cmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzA2MSw2ICs3MTM1LDcgQEAKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLywKKwkJCQkzOTEzNjAyNDIxOTNDMTQzMDA1
NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLywKIAkJCQlBNzhDQ0RENzE5
M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovLAogCQkJCUE3
OENDREQ5MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Ig
Ki8sCiAJCQkpOwpAQCAtNzEwOSw2ICs3MTg0LDcgQEAKIAkJCQk0QTQxMEY0MTE5QUY3QjI3MDAy
RUJBQjUgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8q
IE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlv
bnMgKFVzZXIpICovLAorCQkJCTM5MkU5NDJBMjE5QTJFODUwMDUwRjk4MiAvKiBQYXltZW50cyAq
LywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKIAkJCQk1MTE4
RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywKIAkJCQkxQUFGMDhBQTE5MjY5MzBC
MDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC03MjcxLDYgKzczNDcsNyBAQAogCQkJCUJD
Q0YwODVDMTEzRjNCNzUwMEM2NTBDNSAvKiBtYWMgKi8sCiAJCQkJNTEwQ0M3RTcxNjEzOEU3MjAw
RDAzRUQzIC8qIE5ldHdvcmsgKi8sCiAJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5v
dGlmaWNhdGlvbnMgKi8sCisJCQkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnRz
ICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQwMDgyMTlEMyAvKiBQbHVnaW5zICovLAogCQkJCTJE
MTU1MUE5MUY1QTlCNDIwMDA2RTNGRSAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFBRjA4
OUUxOTI2ODFBQzAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLApAQCAtODM3MCw2ICs4NDQ3LDEw
IEBACiAJCQkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1N
ZXNzYWdlcy5oICovLAogCQkJCTFBMkQ4NDM3MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1l
c3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdGNjVE
NTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKKwkJCQk1
MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNDFD
QkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJQ0RBMjlBMjUxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI2MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODY4OSw2
ICs4NzcwLDE0IEBACiAJCQluYW1lID0gUERGOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4
IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBpb3M7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFNDg5RDI4MjFBMEEyQkU4MDA3OEMwNkEg
LyogY2FjaGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
OTE1OSw2ICs5MjQ4LDkgQEAKIAkJCQkxQUM3NTM3QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxv
YWRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4QjY2QjAxQkM0M0M4NjAwODJERjc3IC8q
IFBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3NEE1ODExMkU2
NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEx
OEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1By
b3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMUUxMjNCQTIw
QTExNTczMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
OTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyREMxOEZCMDIxODkxMjY0MDAyNUE4OEQgLyogUGVuY2lsS2l0U1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTEwMTUyLDYgKzEwMjQ0LDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyogY29t
LmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzkx
MzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4g
UmVzb3VyY2VzICovLAogCQkJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDE0REQzNzkyMEJGNDNGNTAwNjk1
OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgaW4gUmVzb3VyY2VzICovLAog
CQkJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCBpbiBS
ZXNvdXJjZXMgKi8sCkBAIC0xMDc2MSw2ICsxMDg1NCwxMSBAQAogCQkJCTJEOTEzNDQ3MjEyQ0Y5
RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVPYmplY3RNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ5MTM0NDgyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZVV0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRDkyQTc5NDIxMkI2QUQ0MDBGNDkzRkQgLyogTlBWYXJpYW50RGF0YS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVu
dFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2
IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QTgxRjI5
NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MjAwMTgwRjVE
MEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDREEyOUEyODFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEyQTFDQkVC
NjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ5MjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVn
aW4uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNmQwYTdiNTY5MmIxMTlmYzY3ZjQyN2RkNDc5ZWUxOGQzODE2M2MwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oIgorCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNpbmNs
dWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1
c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rp
b25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisK
K1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKQoreworICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQoreworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
bikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2Vk
KHRoaXMpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
YXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0MTc3
ZjhmMmVjN2M1NTM4NzdkMWZiOTA0MjZkMTIzYzE2YTYyMGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICoKKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU1dTZXJ2ZXIuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lv
bklELmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFBBTCB7Citj
bGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwor
ICAgIH0KKyAgICB+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAKKyAgICBJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7
IH0KKworcHJpdmF0ZToKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJ
UEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRy
b2xsZXIuY3BwCmluZGV4IGI5N2I3N2ZiYTVkOTNmMGJkMDljNzcyYjMyYWFhYTE0NjMwMzNkNGYu
LjcyZDQ5NDE5YmY5NGE1MjgzMTgzNjRlNWIxOTA0ODdiOWYxNjg3ZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
SW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBXZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6cmVtb3ZlVGFyZ2V0KEluc3BlY3Rvcjo6SW5z
cGVjdG9yVGFyZ2V0JgogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpj
b25uZWN0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQpCiB7Ci0gICAgSW5zcGVjdG9y
VGFyZ2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJn
ZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAg
cmV0dXJuOwogCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENv
bnRyb2xsZXI6OmNvbm5lY3RJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCkKIAogdm9p
ZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcihj
b25zdCBTdHJpbmcmIHRhcmdldElkKQogewotICAgIEluc3BlY3RvclRhcmdldCogdGFyZ2V0ID0g
bV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CisgICAgYXV0byogdGFyZ2V0ID0gbV90YXJnZXRzLmdl
dCh0YXJnZXRJZCk7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTEs
NyArOTEsNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpkaXNjb25u
ZWN0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0SQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0
b3JUYXJnZXRDb250cm9sbGVyOjpzZW5kTWVzc2FnZVRvVGFyZ2V0QmFja2VuZChjb25zdCBTdHJp
bmcmIHRhcmdldElkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgSW5zcGVjdG9yVGFy
Z2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQg
PSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzBjZThl
YTRlZWU4MDk2ZTA0YjNlZTY3ZDFmNGNmMjEyNzM1MGRhYy4uOTUxZWZlYmM4NmM4ZGU5Y2VmZDk1
ZmYwY2M0ZWNjZGQ4NzEyYWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtNDMsNiArNDMsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlci5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlz
dGljc0RhdGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5
IEBACiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tl
dFN0cmVhbS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTEyMTcsNiAr
MTIyMywzMSBAQCBXZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRl
Z3koKQogewogICAgIHJldHVybiBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQor
eworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NF
UlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAg
IG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBp
ZiAoIW1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRh
Y2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNv
ZGVkQ29ubmVjdGlvbklkZW50aWZpZXIpLCAwKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNv
bm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV93
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpjcmVhdGUoY29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJldHVybiAq
bV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0
eShib29sIGZsYWcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAx
ODdlYTQwZGU3ZTFkNDk0YTkyN2E0Mjk3NjcwOGZjNTQ0ZWFmMDZmLi4zMWM2OWE1MDdhMGY2OTZj
YjYzMjQyODc4NDBkYTk3NGY0Y2JmMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTk4LDYgKzk4LDkgQEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBX
ZWJQYWdlOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxl
bWVudDsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0g
Y2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7
CiBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgog
CiAgICAgTGliV2ViUlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24mIGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBB
TDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKICAgICB2b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9p
ZCBlbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpA
QCAtNDMyLDYgKzQ0MCwxMCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk+IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uPiBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICBSZWZQdHI8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1
YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtMjg4LDYgKzI4OCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRv
dWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMg
PSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05P
VElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlN
RU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
XyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDhjNTM1YzdmZjYzMDdjOTU1ZmE5NzcxMjEzMDQ4OGU0YWE4OGNl
OTYuLjU1ZjY3N2MwMjRlN2E4ZWM2ODJjYTI4MGFiYmE2MWRiNDUyNjA2MWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAor
MjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQ
YXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWlu
YXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NO
YW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jh
c2gpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nl
c3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUpOgorCiAyMDE4LTExLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFNQSSB0byBzaG93IGEgc2FmZSBicm93c2luZyB3YXJu
aW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAy
NjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9S
X1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVO
QUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JN
X05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJ
T05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChF
TkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1
MDg0Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0
aGUgc2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9u
cyB3ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hh
cmVkUHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisg
ICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNz
SWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9v
bCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJz
aXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1Qo
UmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAg
IEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0
UGF0aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVk
UHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgo
c2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJjM2Q2M2E5ZWE4N2MyNmVjYTBkMWJmZDY2
Nzc2NTczMDkxNi4uMjY5ZTg2ZWQ2NWE5ZDQ2ZWYzMDczY2I5ZGFhNTEwZDFmOTllNGY5NyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29y
a2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTExMzAsNiArMTEzMCw5IEBAIFRFU1QoU2VydmljZVdv
cmtlcnMsIEhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25CaXQpCiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBUaGVyZSBz
aG91bGQgYmUgbm8gcGF5bWVudCBwcm9jZXNzIGNyZWF0ZWQuCisgICAgRVhQRUNUX0VRKDAsIHdl
YlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVu
dGlmaWVyKTsKKwogICAgIC8vIExldCdzIHVzZSB0aGUgd2ViIHNpdGUgZGF0YSBzdG9yZSB0aGF0
IGhhcyBzZXJ2aWNlIHdvcmtlciBhbmQgbG9hZCBhIHBhZ2UuCiAgICAgbmV3Q29uZmlndXJhdGlv
bi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9y
ZV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDhkYjU2OTBiMzk0MzEwOTRiNTM1
OGQwZDJhZmI4NzY5OWQyMDZkYTAuLmQ2MmM2MGY3OGNjNTMwYTM1YWM3M2FlOGE0ODRkNTYwOGIx
MTdkN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzMzLDYgKzMzMyw3IEBAIGlu
dGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3Mo
KTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0
ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDVkYTU0NmFlZDVlN2Y3
ZTM1OTU4M2RkODlhODIyYjQwZTVjY2NmNzQuLmM5ZDA2ZTk1Y2NiNzk0ZjZiOWRjNjRiZjNhOWYy
NzNiODE1NzE1N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTI1NSw2ICsxMjU1LDEyIEBAIHZvaWQgVGVzdFJ1
bm5lcjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQnVuZGxlUGFnZVBv
c3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOwog
fQogCit2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpOworICAgIFdLQnVu
ZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpz
aW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51
bGxwdHIpOworfQorCiBzdGF0aWMgdW5zaWduZWQgbmV4dFVJU2NyaXB0Q2FsbGJhY2tJRCgpCiB7
CiAgICAgc3RhdGljIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBGaXJzdFVJU2NyaXB0Q2FsbGJhY2tJ
RDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggZThiYTk3ZjcxNjg0ZGZjYTA3NzU3M2NjYWJjMTNjZTY0MzQwMmZiMS4uN2U2
NTJjNTNlZTVhZDQ2Y2ZlNjVhZmU3MDkzZThhMWI5YTY1ODk2NyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQ0Niw2ICs0
NDYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAg
ICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWlu
YXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRp
YWxzKEpTVmFsdWVSZWYpOwogICAgIHZvaWQgY2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50
aWFsc0NhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IGQ0ZTgxOGVmMjE1YjNjNjYzNTlmODg0NjUyNzFmMGNlMDgyM2NlZTEuLjhiZGJkNGM3
NWQ4MTE5Mjc2NDQ1ODIwMzNjYzYzNmJhMzIwZDQ4YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDc0LDYgKzEwNzQsMTUgQEAgY29uc3QgY2hhciog
VGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYKIH0KIAorY29uc3Qg
Y2hhciogVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSgpCit7CisjaWYgUExBVEZP
Uk0oRkFNSUxZX0lPUykKKyAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOwor
I2Vsc2UKKyAgICByZXR1cm4gIlBheW1lbnQgcHJvY2VzcyBub3QgYXZhaWxhYmxlIG9uIGFueXRo
aW5nIGJ1dCBpT1MiOworI2VuZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwg
YWxsb3dzKTsKQEAgLTE1MDgsNiArMTUxNywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3
b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAog
ICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKK30K
Kwogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnksIGJvb2wgc3lu
Y2hyb25vdXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleUtleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAgLTE4NDEsNiArMTg1
NSwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKICAg
ICBleGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENy
YXNoKCkKK3sKKyAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50
aWZpZXIobV9jb250ZXh0LmdldCgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0g
JXMgKHBpZCAlbGQpXG4iLCBwYXltZW50UHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4o
cGlkKSk7CisgICAgZXhpdCgxKTsKK30KKwogLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogCiB2
b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBX
S05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQpAQCAtMjY0MCw2ICsyNjYxLDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29y
a2VyUHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6
OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS0NvbnRleHRUZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZv
Y2F0aW9uJikKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2
MjVhNWI1NDY1OTIyYzdiYWZkOTRiN2FjYzgxMjc2NTdiOGJjOTFmLi43ZjBmNzViNGRiYWY1ZDkx
Y2Y0NTA2NzkxNTY1NDM1ZmMzNWY4NDFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiB3ZWJQcm9jZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuZXR3b3JrUHJv
Y2Vzc05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VQcm9jZXNzTmFtZSgp
OworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwYXltZW50UHJvY2Vzc05hbWUoKTsKIAogICAgIFdv
cmtRdWV1ZU1hbmFnZXImIHdvcmtRdWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1h
bmFnZXI7IH0KIApAQCAtMjUyLDYgKzI1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWlu
YXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCBy
ZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKIApAQCAtMzU3LDYgKzM1OSw4IEBAIHByaXZh
dGU6CiAgICAgLy8gV0tDb250ZXh0Q2xpZW50CiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1Byb2Nl
c3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkQ3Jhc2goKTsKKyAgICBzdGF0aWMgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNo
KFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRD
cmFzaCgpOwogCiAgICAgLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lk
IGRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAppbmRleCBiOGZjZDU3Yjg3NTlhYWRmM2NkNzNkOTk2MWY1MDdiYjhlZTQ0Yjhi
Li4wYzRmNmE5Y2VjMzdiMzcwNTgzMzE0ZmZjODA5MmVlODQwNWExM2ZhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQ1Myw2ICsxNDUzLDEyIEBAIFdL
UmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91
c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAor
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWlu
YXRlUGF5bWVudFByb2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3Mi
KSkgewogICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355593</attachid>
            <date>2018-11-25 08:04:08 -0800</date>
            <delta_ts>2018-11-25 08:19:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181125110408.patch</filename>
            <type>text/plain</type>
            <size>138134</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NmI2ODgzZjcxNmM0ZGZhOTU3OThkYzBlYjNiZmZmYjYxNjAyNjE2Li4yNGRlZDM4OTdjMDA3MjFk
NmQ3OWQ5MWI4Y2NkMzEwNGE3ZDhmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhc3MgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9kaXNjb25uZWN0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjM2FhYzBhZTZkZTBkOGVmY2MyMjhkNmJiZTVlM2YyZTk0
ZTU2ODI5Li42NmJmYTMzM2VhYmNiZDI2ODUwNTg4NmY3Mzk2MDQwZGM3N2RjMTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0xNCAgSnVzdGluIEZhbiAgPGp1c3Rpbl9m
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIENvZGUgcXVhbGl0eSBjb25jZXJucyBy
YWlzZWQgZm9yIDE5MTI5MTogW1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2Vi
R1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYTc5NGYyMTIxMzU2Y2E0MDdhODYzZGExZWI5YTJkZDhlOWM4M2RlYi4uZjMwMzI4MDYyMWY1
MmZiMDFkMmVlNjlmNGNlNTNjOTViZDg4OWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2ZTVmMmNmMmZkYmM5YTg2Y2Q2MDZm
Mjg4ODNiYTljZGUxM2QzMi4uOGU1NTAwMGM0MzIwMzQ0OWMxNDE0OWMzNGRhNWJmYWQxNGIwYTM2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzog
QWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1l
bnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3ND
cmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91
cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Ojp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1
cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQ
VUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BV
TW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJl
VG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0Fs
bExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1v
cnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlh
RGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEg
cmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNDU2Nzg4M2M4ODMyYTU3MzI2ZGNmNzYwNDM4MDFhMmY5ZWRjYjc0ZS4uMjM0
MTk0ZjYzMmNmOTNmNjRiZmJhNjA4Y2M5NTAyMTYxOWE2ZTZlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBj
b25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDg2
NzI4MDBmMjZmMmY2NDYzN2MwY2JjMzcxMDI2MTUzYjJjZDY4MmQuLjMwZDQ1MDgwYjAxYTVjOGM4
MjQ3ZmY5NmI3MzVkZjg3MWExYTY5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4
OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEw
MjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
NjcyODAwZjI2ZjJmNjQ2MzdjMGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1Yzhj
ODI0N2ZmOTZiNzM1ZGY4NzFhMWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yODgsNiAr
Mjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05P
VElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19t
YWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9
IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9S
TV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCAxMGFiMjA0ZTAwNzI1NDg0Y2MzZjY2M2I2MGM1ZjY2ODI5ZmJkNjExLi4wNTk4ZjFmNjc2
NDJjODQ4ZTk2ZDliMWFmZDQ1MDIyZGE4MDNiYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAiJUAgU2VydmljZSBXb3Jr
ZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVudCBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAgUGF5bWVudHMiID0gIiVA
IFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIgcHJvY2Vzcy4gVGhlIGFy
Z3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdlYiBDb250ZW50IiA9ICIl
QCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYxNjE1NDI3MzI2ZDg4YmFh
ZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEzODg2YjVkNDhiNjZkMzFm
MDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUsNyBAQCBzZXQoV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL3dhdGNob3MiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAgICIke1dFQktJVF9ESVJ9
L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtIgogICAgICIke1dF
QktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElSfS9QbHVnaW5Qcm9jZXNz
IgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIKICAgICAiJHtXRUJLSVRf
RElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvR2FtZXBhZCIK
KyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCkBAIC00
NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0Lm1lc3NhZ2VzLmlu
CiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgorICAgIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1MSw2ICsxNTcsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyMSw2ICsyMjks
MTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQogCitzZXQo
UGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisKIHNldChQbHVnaW5Qcm9j
ZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2JiYjAxMmEzOWU2NWRhOGJh
OGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRjZmRiMjA2YTRkNjNjZjNl
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNj
b25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJFRElDVElPTltzZGs9bWFj
b3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9OX0RFRklORVMgPSAkKFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BSRURJQ1RJT04pKTsKIFdL
X0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9QUkVESUNUSU9OOwogCitX
S19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQoV0tfU1RPUkFHRV9TRVJW
SUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9TRVJWSUNFX05BTUUpKTsK
IFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19TVE9SQUdFX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8gPSBj
b20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4NjcyODAwZjI2ZjJmNjQ2Mzdj
MGNiYzM3MTAyNjE1M2IyY2Q2ODJkLi4zMGQ0NTA4MGIwMWE1YzhjODI0N2ZmOTZiNzM1ZGY4NzFh
MWE2OWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdmN2IxODliNDI2MjQ5NDAxMjU4OWJhMDE3MTg1YTkzODE0NmY0Y2IKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmln
CkBAIC0wLDAgKzEsMzMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBt
ZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8v
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BBWU1FTlRfRU5USVRMRU1F
TlRTX1JFU1RSSUNURURfTk8gPSA7CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFNfQ09DT0FfVE9V
Q0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfJChXS19VU0VfUkVT
VFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lHTl9GTEFHUyA9ICQoV0tfTElC
UkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BST0RVQ1RfTkFNRSA9ICQoV0tf
UEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVS
ID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDY3ZDQ4YzY0ZDcyOWJjZmVlODBmNWFjNDBmNGU3YzNlYmM3NzMyNC4u
ZDMxNzVhZDhiMGIzMmM3ZjU2NjZhNmIzYmQyN2UzZDkyNjUyMmJkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtMzAsNiArMzAsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L05ldHdvcmtQcm9jZXNzL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlciBc
CisgICAgJChXZWJLaXQyKS9QYXltZW50UHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Q
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MvbWFjIFwKICAgICAkKFdlYktp
dDIpL1NoYXJlZC9QbHVnaW5zIFwKQEAgLTczLDYgKzc0LDcgQEAgVlBBVEggPSBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BheW1lbnRzIFwKICAgICAkKFdlYktp
dDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTIxLDYg
KzEyMywxMCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBOZXR3b3JrU29ja2V0U3RyZWFt
IFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyIFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHkgXAorICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIFwKKyAgICBQYXlt
ZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFByb2Nlc3NQcm94eSBcCisgICAgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRyb2xsZXJQcm94eSBcCiAgICAgUGx1
Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWZh
Y2Y0ZmJiMTQ3MmFjZmJlMGY0NjE3NTA4MGZlMjk2NzQwYTJjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKQEAgLTAsMCAr
MSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2VzcyYg
UGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzOworfQorCitQYXlt
ZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQoreworfQorCitQYXltZW50UHJvY2Vzczo6flBh
eW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIENoaWxkUHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisKK2Jvb2wgUGF5bWVudFBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJN
YXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBkaWRSZWNl
aXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3Ms
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
UEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZiM2ExNzM1ODM1NDQ0MjM0ZjU5Y2M2YTU0
NDk0ZTdmNzdhODMyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ2hp
bGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5o
PgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3QgUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGljIENoaWxk
UHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3MpOworICAg
IGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz47CitwdWJsaWM6CisgICAgc3Rh
dGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMgY29uc3RleHByIFBy
b2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1lbnQ7CisKKyAgICB+UGF5
bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBQYXlt
ZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdm9pZCBpbml0aWFsaXpl
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFRl
cm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAgIHZvaWQgY3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOThiOTE0ZmM0YThmNDQ3MThjZmExMjU3NmQzMzhkYWU1OTJhYTBlMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2Fn
ZXMgLT4gUGF5bWVudFByb2Nlc3MgeworICAgIAorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNDc0Yzli
Yzc5ZjRiZjM4NmI2YTI3OGEzODcwYWFjZjNjY2NhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlm
aWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2
ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgLy8gRklY
TUU6CisgICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0
Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUp
CisgICAgLy8gdG8gcHJldmVudCBkZWFkbG9jayB3aGlsZSB1c2luZyBzeW5jaHJvbm91cyBtZXNz
YWdlcworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlUGF5bWVu
dFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKK30K
Kwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShtZXNzYWdl
UmVjZWl2ZXJOYW1lKTsKKyAgICBVTlVTRURfUEFSQU0obWVzc2FnZU5hbWUpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0OWE5ZWI0YTEzNzY0NDExNmNhY2Vk
MDM4MzA3YWIzNDA4MWNmZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
biA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiwgcHJp
dmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkg
eyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAg
IC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICAvLyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3Qg
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA0YzBkYmMyNDc1
NDIxN2M3ZDlhM2MwNGI4NDBlM2QyMjNkYmMyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30KKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYTVlMzcwZjU0ODU0MjczZDMzODRhZmRkYjU2ZTYxYzY4Mzk1NjYyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVu
dFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1Mp
CisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5E
Qk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFX01B
TlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBvdmVycmlkZSB0aGUgZGVm
YXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCisgICAgTlNC
dW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zy
b21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJp
ZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29t
LmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7CisgICAgQ2hpbGRQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1ldGVycyk7CisjZW5k
aWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5Q
YXltZW50cy5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDY3MmM2ODZiMTY2N2Fk
OTdmNWRmZDc1YTRiM2E3YmRjMDYwN2IzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRz
LnNiCkBAIC0wLDAgKzEsMzIgQEAKKzsgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0
OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworOyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKzsg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKzsgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorOyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKzsgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlv
bikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRhZGF0YSkKKworKGltcG9ydCAi
Y29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1sb29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4
ICIiKSkKKworKGRlbnkgbHNvcGVuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAppbmRl
eCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdhNjFmZmFiZGYzNzY5Li41ZDBjYzZlMmY1NGQz
NjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nl
c3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkNvbnRlbnQsCiAgICAg
ICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAg
IH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcwODMzMTJjZjg4ZjdkZjk2NDliMmQzNjJiZDc0NjExMTAwZjgzMDAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCit7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7Cit9CisKK2Jvb2wgUGF5
bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCit7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDBhMDlhYjdlZmQ3ZjIwOTRmZTZkNjdlZjQ1YjlmMzg0NjczN2FlMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKKworICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworCisgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRjNzJlNTgyYWJlMzBmNDg3
OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2NzAxNzkxZjBjZTlhYWRl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRo
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAg
LTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
ZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwog
U3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1lbnRQcm9jZXNzKCk7Cisj
ZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDg3
NjZkZmQzMDIwOTYzMWQzOThhNTM5ODM4Y2VhOWZjMDRhODc3ZmEuLmVhYTJjM2U2NzUzZTNiOThh
ODRiZmM1M2ViYjA4Mzg1MWFkYzY5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNzksNiArNzksOSBAQCBO
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAKIAogTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCiAKK1BheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLmNwcAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisKIC8vIFRPRE86IFdlIHNob3VsZCB1bmlmeSB0aGVzZSBmaWxlcyBvbmNl
IEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBA
bm8tdW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAgQG5vLXVuaWZ5CkBAIC0yMDcsNiArMjEwLDgg
QEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0LmNwcAogCiBTaGFyZWQv
R2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIC8vIFRPRE86IFRoZXNlIGZpbGVzIHNob3VsZCBiZSB1
bmlmaWVkIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3ZlZC4KIFNoYXJlZC9QbHVn
aW5zL05QSWRlbnRpZmllckRhdGEuY3BwIEBuby11bmlmeQogU2hhcmVkL1BsdWdpbnMvTlBPYmpl
Y3RNZXNzYWdlUmVjZWl2ZXIuY3BwIEBuby11bmlmeQpAQCAtMzgwLDYgKzM4NSw4IEBAIFVJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAogCitVSVByb2Nlc3MvUGF5bWVudHMv
UGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCiBV
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKQEAgLTQ4MCw2ICs0ODcs
OCBAQCBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAKIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAor
V2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKwog
Ly8gVE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Q
cm9jZXNzMiBpcyByZW1vdmVkLgogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAgQG5vLXVu
aWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIEBuby11
bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGVjYzgyZDFhOGNlNDY3NWFjMWE0ZjZlZDcw
NGI2YjI0MjhkOTc1MjguLmRiYzJhODVhNzE1OWFjYTBkYjBkZDYzMDgxNTZjZDFmZDg3YjhkNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4Myw2ICsxODMsOCBAQCBTaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdERhdGEubW0KIFNo
YXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KIAorUGF5bWVudFByb2Nlc3MvaW9zL1Bh
eW1lbnRQcm9jZXNzSU9TLm1tCisKIFNoYXJlZC9QbHVnaW5zL21hYy9QbHVnaW5TYW5kYm94UHJv
ZmlsZS5tbQogCiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5Nb2R1
bGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmlu
ZGV4IDA0MDFlNzJiNGM2ZjVlNGU1OWRkOGNhYjQwYjY2NDM1ZDRmNThmYjkuLjdiZjNmNWExMmM5
N2VjYTc5ZGI3NDBlNjljNDVkZmM5ZWE0YWJiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNjIxLDExICs2MjEsMjcgQEAgdm9pZCBXS0NvbnRl
eHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKICAg
ICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKIH0K
IAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYgY29u
dGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHRvSW1wbChjb250ZXh0
KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9j
ZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9J
bXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorUHJvY2Vz
c0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiB0b0lt
cGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICBy
ZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiB2b2lkIFdL
Q29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJp
bmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS0FycmF5UmVmIG1pbWVUeXBl
c1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
UHJpdmF0ZS5oCmluZGV4IDQ2ZDM3ZTFlOGExNTg5NTgwYTM1NTM4ZWU1ZjZmOWJjMmQ4MGUyMmMu
LjQwZGFjZWI1N2M5MWMyNjQzNTViYWJkNmFlMzVkMjhhNDI3ZTYyNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTkzLDYgKzkz
LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKFdLQ29u
dGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKwogV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0
aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29udGV4dFJlZiwg
Ym9vbCk7CiAKQEAgLTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRG
b250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVm
IHNlcnZlclVSTCk7CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3Jr
UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLUHJv
Y2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihX
S0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWluLCBXS1N0cmluZ1JlZiBuYW1l
LCBXS0FycmF5UmVmIG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRlbnNpb25zKTsKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhXS0NvbnRleHRSZWYgY29udGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tCmluZGV4IGNmMjgxMWU4YjNhY2FhYjBkMDgxZTA4ODJjYmZkODNjN2Q1ZGQ1Y2UuLjBm
MzIxMjhhMmYzZGE4NTU2ZjQ0NGQ3NDljYjUzOTI3ODUwODE2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MjQsNiAr
NDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwogICAgIF9wcm9jZXNzUG9v
bC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQpX3Rlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBfcHJvY2Vzc1Bv
b2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
CiB7CiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpAQCAtNDQ0
LDYgKzQ1MSwxNSBAQCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyCiAgICAgcmV0
dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKKy0gKHBp
ZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigp
OworI2Vsc2UKKyAgICByZXR1cm4gKHBpZF90KTA7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK30KKwogLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcwogewogICAg
IF9wcm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aAppbmRleCA0ZDNhMTkxMjBhYmQ0OWVlZTA0OTI3OTRhNzdmNGFmYjA2Y2RlOTBjLi40Yjk2ODE5
Y2IzOWQ2MWVlYWI5NTljNTJhNjEwMzM1MDM2MmE1NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAt
ODQsMTIgKzg0LDE1IEBACiAtIChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRh
OihOU0RhdGEgKilyZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBvbmx5
LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFy
ZSBydW5uaW5nLgorLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIFBBWU1FTlRf
UFJPQ0VTUyBpcyBFTkFCTEVECistICh2b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVybWluYXRlU2VydmljZVdv
cmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7
CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLy8gVGVzdCBvbmx5
LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDg3YjBiYmVjODEzMDNh
NzVjODVlMmE4Y2JjMzBlN2FjMjJkODNkY2UuLjZkNjZlYzMxYWZmNmVkYzFhNDFmNjg0ODMyNTIz
Y2Q4N2U2YmQyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICAgICAgUGx1
Z2luNjQsCiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAgICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
CmluZGV4IDNiNDYxNjM0ZTg1MTczOWQ2OTVkMDU1NWJlNTRkNjliNDg0NjA2NDguLjU3MmNlNDkw
ZTBjYTUxNWRhMjBhN2Y3YTJjODg3OTY5MTA2M2M1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpA
QCAtNjIsNiArNjIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0IFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICAgICBjYXNlIFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAgICAgICByZXR1cm4gImNvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50OgorICAg
ICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVmNDY1MWRiYzRjOTEzOTRlY2Q3YTNkNWUyNDY1OWJiNjAzMDNjMDUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQ
cm94eS5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCisgICAgOiBDaGlsZFByb2Nlc3NQ
cm94eShwcm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAs
IG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9u
UmVxdWVzdHMoMCkKK3sKKyAgICBjb25uZWN0KCk7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6
On5QYXltZW50UHJvY2Vzc1Byb3h5KCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKK3sKKyAgICB0ZXJtaW5hdGUoKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1
bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NU
eXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDsKKyAgICBDaGlsZFBy
b2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25zKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5l
Y3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
KyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOworCisgICAgaWYgKHN0YXRlKCkg
PT0gU3RhdGU6OkxhdW5jaGluZykgeworICAgICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVx
dWVzdHMrKzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJvb2wgaXNTZXJ2aWNlV29y
a2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdp
bjsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBzZWN1cml0eU9yaWdp
biksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9y
U3luY1JlcGx5KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKQoreworICAgIGF1dG8gcHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVm
KG1fcHJvY2Vzc1Bvb2wpOworCisgICAgLy8gVGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUg
Y3Jhc2hlZCBvciBleGl0ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1p
Z2h0IGhhdmUuCisgICAgd2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5
KCkpIHsKKyAgICAgICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRh
a2VGaXJzdCgpOworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKyAgICAvLyBUZWxs
IFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBt
YXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9j
ZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmll
cikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50
aWZpZXIpOworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNv
bm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFu
dXAgaGVyZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRpbmdDb25uZWN0aW9u
UmVxdWVzdHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNmMxYjk3YTAwMGZm
ZDkwNzU2ZGIxYzc0NjQ1ODQwYTU4ZjI4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCArMSw4
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NM
YXVuY2hlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFBB
TCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNl
Y3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2Ns
YXNzIFBheW1lbnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkg
eworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bv
b2wmKTsKKyAgICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAorICAgIHZvaWQgZ2V0UGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwor
CisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisKK3ByaXZhdGU6CisgICAgLy8gQ2hp
bGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVy
OjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3du
KElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRSZWNlaXZl
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBkaWRDcmVhdGVQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIC8v
IFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJv
Y2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKKwor
ICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisgICAgdW5zaWduZWQgbV9udW1Q
ZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiBtX3BlbmRp
bmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZjMxMGNmY2Q1MTYyZWM0N2NlYTI5MzFkNjg0NzliOTBhMTA1NDc1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVu
dFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
bWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CisgICAgRGlk
Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0hpZFNlcnZpY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL0hpZFNlcnZpY2UuaAppbmRleCBiYzM2MzIzMWI1NDFmMTZmMmI5YWFjNThiNDM0
ZTUxMGRmNmI3NDE4Li43ZDJkMzVmMjQ3ZGVkMDJlMDZmNGQ2YjE1ZDNhOWQ3NTQxZWQyYWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9IaWRTZXJ2aWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQ29jb2EvSGlkU2VydmljZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJB
dXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oIgogI2luY2x1ZGUgPElPS2l0L2hpZC9JT0hJ
RE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRh
ODU2NjM5NzQxZDU3NS4uYmVjNzliNTRjYmY2YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2
LDQgKzQ2LDExIEBAIHZvaWQgV2ViQ29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFz
aChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nl
c3NEaWRDcmFzaCh0b0FQSShwcm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50
OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sK
KyAgICAKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaApp
bmRleCA4MGMzMTEyMmMwNzc2ZDRlZThkNzc4ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkx
MDhmMjM4ZjFkNmY4YWJmMWFiOWVkY2M4NDUzOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC00NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0
Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1Ymxp
YzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vz
c1Bvb2wqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wq
KTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NE
aWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAw
NDM4YmEzMmE2MGM3NTgyNzQ5MzRmYTYuLjJjNmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0
NTlhMTI3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaApAQCAtMjksNiArMjksMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQ
YXltZW50UHJvY2Vzc1Byb3h5OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
IGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2
ICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3
b3JrUHJvY2Vzc1Byb3h5KikKICAgICB7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vz
c1Byb3h5KikKKyAgICB7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKICAgICBXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3By
b2Nlc3NQb29sOyB9CiAgICAgdm9pZCBjbGVhclByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29s
ID0gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CmluZGV4IGM4MmFmY2YzNWEyMjQ5ZGUwMDIwOWQ0NWNjNDBkNmYzOTI3ZjBkMzMuLjg2YTZlYjhi
YWVlYmRlNGEzNmY4ZWI0ZTBiNzNmNWRlZDk1M2RjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRl
ICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgog
I2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC00NDIsNiArNDQ2LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQog
ewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNl
aXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2lu
Z1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJl
RXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2Vu
ZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9y
eVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vz
c01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwp
OwogI2VuZGlmCkBAIC02MDcsNiArNjE0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nl
c3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBp
ZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1h
a2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+KCp0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkm
IHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5
bWVudFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHks
IFdURk1vdmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nl
c3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkmIHBheW1lbnRQcm9jZXNzUHJveHkpCit7Cisg
ICAgQVNTRVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1By
b3h5ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVt
ZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vz
c0RpZENsb3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFBy
b2Nlc3NEaWRDcmFzaCh0aGlzKTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAg
ICAgICBtX2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFBy
b2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxp
c2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQ
cm94eSYgcHJveHksIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9w
dGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQpCiB7CkBAIC02ODMsNiArNzIwLDkgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZChib29sIHByaXZhdGUKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpE
ZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgfQogfQpAQCAtMTMzMiw2ICsxMzcyLDE1IEBA
IFZlY3RvcjxTdHJpbmc+IFdlYlByb2Nlc3NQb29sOjphY3RpdmVQYWdlc09yaWdpbnNJbldlYlBy
b2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJCiAgICAgfQogICAgIHJldHVybiB7IH07CiB9CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdh
eXNVc2VDb21wbGV4VGV4dCkKIHsKQEAgLTE2MDMsNiArMTY1MiwxNyBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKICAgICBpZiAobV9uZXR3b3JrUHJvY2Vz
cykKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKSwgMCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzRm9yVGVzdGluZygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BheW1lbnRQcm9jZXNzLT50ZXJtaW5hdGVGb3JUZXN0aW5nKCk7Cisg
ICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNTUz
ZGFjNWU0MWY4NmUwYzdjNmJlN2FmMTc5ZTQ3YjFjMGU3ZTc2ZC4uMzIyYzA5NmQ3NWU4MjQ5ODVk
NzFhMGVkMzkxMTZiMTY1ZjRjNWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0
aXN0aWNzUmVxdWVzdC5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NQcm94eS5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgpAQCAtMTczLDYg
KzE3NiwxMiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
dm9pZCBzZW5kU3luY1RvTmV0d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBseSk7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1Jl
bGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICAvLyBTZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9yIFBheW1l
bnRQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLgorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3Nh
Z2UpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3NS
ZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlBy
b2Nlc3NQcm94eSopOwogCiAgICAgLy8gRGlzY29ubmVjdCB0aGUgcHJvY2VzcyBmcm9tIHRoZSBj
b250ZXh0LgpAQCAtMjE3LDYgKzIyNiw5IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzSUQgbmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gYWN0aXZlUGFnZXNPcmln
aW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9jZXNzSUQpOwogICAgIGJvb2wgbmV0d29ya1By
b2Nlc3NIYXNFbnRpdGxlbWVudEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVy
KCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VHcm91
cCYgZGVmYXVsdFBhZ2VHcm91cCgpIHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQoKTsg
fQogCkBAIC0yNzYsNiArMjg4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3Jl
ZGVudGlhbHMoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVybWlu
YXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2Vydmlj
ZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCk7CkBAIC0zNDIsNiArMzU3LDEyIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQ
cm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICB2b2lkIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94eSog
cGF5bWVudFByb2Nlc3MoKSB7IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9CisgICAg
dm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFMOjpT
ZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwYXlt
ZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQg
ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQ
cm9jZXNzUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25h
bDxQQUw6OlNlc3Npb25JRD4pOwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBA
IC02NDEsNiArNjYyLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2
ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNz
Q3Jhc2ggeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5
PiBtX25ldHdvcmtQcm9jZXNzOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFBheW1lbnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVx
dWVzdHM7CkBAIC03NDIsNiArNzY2LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAgICBt
X25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQoreworICAg
IGlmIChtX3BheW1lbnRQcm9jZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNzYWdl
KCkpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3Nh
Z2UpLCAwKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkK
K3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNl
bmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxYzA1ZjM0OWU2NjY2NTY3OGY4
M2QyMTI3ODRiZjhmZmE2ZTg4YTk5Li4xYWE5MGFjYmM0MjhhZWM4ZjQ3NDQ1MDRjZjRkMWY0Mzll
OTAzYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTYyMyw2ICs2MjMsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3By
b2Nlc3NQb29sLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVw
bHkpKTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vz
c2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShy
ZXBseSkpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAhUExB
VEZPUk0oQ09DT0EpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVidWdn
ZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRl
eCA3YmViOTUxNjY1NTcyNjU0MTlkM2RhOTMyM2U0ODlhOTk0ZDBjZTM5Li4wODFmMWE0ZTM3MGE1
MzE1YWJkMzViNmNmM2Y2ZTVmNzRhMWExOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaApAQCAtMjg1LDYgKzI4NSw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWlu
Z0RlYnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRD
b2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2YTk4ZjRlOTYwNDdkYWJmMTY0YTc2MTBhODdmMmE5
ZjY4NjBiNDhhLi44ZjVlMWQ2NjYwYjE1MGQ3NTczMGE2M2UxZjA5M2Q0M2Y2YTM2ZDI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0zNyw2ICszNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wg
c3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAg
R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0
aW9uSGFuZGxlKSBEZWxheWVkCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkg
LT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAg
IERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBiOTBj
MTQyNDE3NmM2NTE1ZTdlZTRhNTYyMmI4ZWM2ZWJlMjZjMzgxLi44YTc5ZDRmZDg5YmI0YzI0NjJh
MDJkNzJlYjQ3N2U2ZDE3OGNkOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQsMTAg
QEAKICNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKQEAgLTEzNSw2ICsxMzksOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0
ZURhdGFTdG9yZSgpCiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldCht
X3Nlc3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCkucmVt
b3ZlKG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlBy
b2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgICAgICAgICBkZXN0cm95UGF5bWVudFByb2Nlc3NTZXNzaW9uKHByb2Nlc3NQb29s
KTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vz
c1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3Mt
PnJlbW92ZVNlc3Npb24obV9zZXNzaW9uSUQpOwogICAgICAgICB9CkBAIC0xMzIyLDYgKzEzMjks
MTMgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxl
cihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYKICAgICB9CiB9CiAKK3ZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6ZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbihXZWJQcm9jZXNzUG9vbCogcG9v
bCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHBvb2wtPnNlbmRUb1BheW1l
bnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24obV9zZXNz
aW9uSUQpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorICAgIAogdm9p
ZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkb21haW5zKQogewogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNz
UG9vbHMoKSkKQEAgLTE2MjYsNiArMTY0MCwxOSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNs
ZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAog
ICAgIGNhbGxiYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGF5bWVudFByb2Nl
c3NQYXJhbWV0ZXJzKCkKK3sKKyAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOwor
CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAg
IHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7CisKKyAgICByZXR1cm4gcGFyYW1l
dGVyczsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiBXZWJzaXRlRGF0YVN0b3JlOjpwZW5kaW5nQ29va2llcygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGNvcHlUb1ZlY3RvcihtX3BlbmRpbmdDb29raWVzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApp
bmRleCA4NTJiNmJiNWQzNmZiYjZlOTU5OTJlODgyNDY4YjI2YmRkOTA3MTU5Li41YTYzNjM5NDli
NmVmMDYzYzkwMjU0ZTZhYThkOWY0YjRjOTk4NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Niw2ICs2
Niw5IEBAIGNsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGVudW0gY2xhc3Mg
V2Vic2l0ZURhdGFGZXRjaE9wdGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3Ry
dWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3Jk
Owogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xNzEsNiArMTc0LDEw
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlByb2Nlc3NQ
b29sJikgY29uc3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJz
KCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyBwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lv
bihXZWJQcm9jZXNzUG9vbCopOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcGVuZGlu
Z0Nvb2tpZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3QgV2ViQ29y
ZTo6Q29va2llJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiZTQwZGJkNzgxNDY0NmU3NTgxNjg0ODZmNTlmM2U0ZTU2N2ExY2QxLi42
MDdlZGQzMDI4ODM4ZDZhZTNiNWE3YjIxMmYwZGRlMmUzZDA4N2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0OCw2ICs4NDgsNyBA
QAogCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYx
MzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdG
QzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdG
QzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJp
dmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMx
OTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAq
LzsgfTsKKwkJMzkxMzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudHMuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNi
ICovOyB9OwogCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNGNDE4RUZCMTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdC
OUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKQEAgLTkwNiw2
ICs5MDcsMTAgQEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlCMTI4
OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQg
LyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNCMDA3
MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFz
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUx
MThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlB
NTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OworCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5
QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKKwkJ
NTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94
eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUwMEU0N0I4MyAvKiBXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVt
U2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLzsg
fTsKIAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc4MTM4
QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CkBAIC05NTcsNiAr
OTYyLDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2
QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0Yw
RTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2
MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9j
ZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRl
eHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJNTE4
QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDQUU5MTJBRUU2QkIw
MEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNGMTExMkIwMTVGODAwQjA0QjgzIC8q
IFdLQ3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTg0
LDYgKzk5MCw4IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkgLyogTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1
MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
MzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9OworCQk1MUUzNTFG
RjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRQcm9jZXNzLmNwcCAqLzsgfTsKKwkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZDMTY0MUYyOTM1REQw
MEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYxMUYyOTM1
Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAq
LzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUYwNjBF
MDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUxNjU0MzE3NTAw
RjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTE1NjksNiAr
MTU3Nyw3IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNl
YXJjaFBvcHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRp
dGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07CisJCUUx
MTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDcz
MTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2M0QxQjAw
NkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29t
LmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAv
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3MTY2RUFC
QjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxk
UHJvY2Vzc1Byb3h5LmggKi87IH07CkBAIC0yOTgwLDYgKzI5ODksMTEgQEAKIAkJM0Y0MThFRjYx
ODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4
RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThFRjgxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1l
bnRzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMu
c2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDJCMjE5NTE0QkQwMDU2NDky
QSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5MTM2MDJDMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTJFOTQyQjIx
OUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkEx
NTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyog
V2ViQ29sb3JQaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29s
b3JQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMDIsNiArMzExNiw3
IEBACiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8q
IFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMkYxQTE4
MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDRGNUExMUYxOUQ3Q0YwMDRDRjgyMSAvKiBDb29r
aWVTdG9yYWdlVXRpbHNDRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTA1MjM3MTFDNzNEMjJCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzIxQzcz
RDM3QjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMzEyNSwxMSArMzE0MCwxNSBAQAogCQk1MTEw
QUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTExOEU5QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2MzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTExRjdEM0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEx
RjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0
NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21hYy9TZWNJ
dGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNDcsNiAr
MzE2Niw3IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5
NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5Nzgw
MEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUwNUQyMDAz
OUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJG
NTg4RTEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEYxMkE4
ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1MzAgLyog
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjE3LDYgKzMyMzcsOCBAQAogCQk1MTdDRjBFMTE2
M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9DYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxN0RENUJDMTgwREE3RDMwMDgx
NjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODNCMzkzMTM3OUY4NUMwMEU4NzU0
RSAvKiBTaGltLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFNoaW0u
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjU5MTI3Q0I4OUQw
MEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb250ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzIzNiw2ICszMjU4LDcgQEAKIAkJNTFBNTU2MDAxMjhDNkQ5MjAw
OUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUE1ODc3RTFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQlJlc3VsdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdGMUQxQzRDQjkwMDRCQTlBRiAvKiBX
ZWJJREJSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSURCUmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTYwQjI5MTgwQ0NEOTAwMEYz
QkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQYXltZW50U2Vy
dmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNzI4REMxQjFC
QUQyRDAwMTAyRUVFIC8qIFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGMjEyNUJGODIwMDA4QUVC
MUQgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnaW5n
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIx
RCAvKiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Z2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI5NSw2ICszMzE4LDEx
IEBACiAJCTUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MUUzNTFDODE4MEYyQ0NDMDBFNTNCRTkg
LyogSURCVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IElEQlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM5
MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXltZW50UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3Zp
ZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTVGMUYyOTM1
NTEwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2VJT1MubW07IHBhdGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3Rl
bnRTdG9yYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE2MTFG
MjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQ0OSw2ICs0NDc3LDcgQEAKIAkJ
RTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzEx
RjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JF
RTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAv
KiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBheW1lbnRQcm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdv
cmtDYWNoZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIx
QUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2MjEsNiArNDY1MCw3IEBACiAJCQkJMUExRDIxMTYxOTFEOTk1
QzAwMDE2MTlGIC8qIHBvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoICovLAogCQkJCUJD
MkU2RTc0MTE0MTk2RjAwMEE2M0IxRSAvKiBQbGF0Zm9ybSAqLywKIAkJCQkxQUFEREY0QjEwRDgy
QUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLAorCQkJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAv
KiBQYXltZW50UHJvY2VzcyAqLywKIAkJCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQ
cm9jZXNzICovLAogCQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICov
LAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKQEAg
LTQ4MjYsNiArNDg1Niw3IEBACiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdv
cmstT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAogCQkJCTVDN0FDRkQxMjE4REQ4QkQwMDRD
QkI1OSAvKiBOZXR3b3JrLU9TWC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJQkM4MjgzQUIxNkI0QkVB
RDAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlLnhjY29uZmlnICovLAorCQkJCTUxQTYwQjI5MTgw
Q0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlBMUVERDJE
QjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8sCiAJCQkJ
QkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25maWcgKi8s
CiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQueGNjb25m
aWcgKi8sCkBAIC00OTgzLDYgKzUwMTQsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2
OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQkzOTEzNjAyQTIx
OTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0
YSAqLywKQEAgLTYyNjMsNiArNjI5NSwyNCBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9tYWM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEzNjAyQTIxOTUxNEJEMDA1NjQ5
MkEgLyogUGF5bWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJMzkxMzYwMkIyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCAqLywKKwkJCQkzOTEzNjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVu
dDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTM5MkU5NDJBMjE5QTJFODUw
MDUwRjk4MiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOTJFOTQyQjIxOUEzOTlBMDA1MEY5ODIgLyogV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVu
dHM7CisJCQlzb3VyY2VUcmVlID0gIjx1bmtub3duPiI7CisJCX07CiAJCTQxMzA3NTk3MURFODRF
RDcwMDM5RUM2OSAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtNjU4Miw2ICs2NjMyLDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBh
eW1lbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1
MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8sCisJ
CQkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLywK
KwkJCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudHM7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0aGVudGlj
YXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjYz
OCw2ICs2Njk4LDIwIEBACiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNzICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QjE5
MEY3OTFDMDA3MzE2NTggLyogaW9zICovLAorCQkJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAv
KiBQYXltZW50UHJvY2Vzcy5jcHAgKi8sCisJCQkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRQcm9jZXNzLmggKi8sCisJCQkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8qIFBh
eW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovLAorCQkJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JF
OSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTFFMzUxRkUx
ODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8sCisJ
CQkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50UHJvY2VzczsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUzOUJENUIyMURBREIwQkEwMEYyRTRF
MSAvKiBjYXB0dXJlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTcwNjEsNiArNzEzNSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdv
cmtpbmcuc2IgKi8sCisJCQkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuUGF5bWVudHMuc2IgKi8sCiAJCQkJQTc4Q0NERDcxOTNBQzlFMzAwNUVDQzI1IC8qIGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLywKIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUND
MjUgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiICovLAogCQkJKTsKQEAgLTcxMDks
NiArNzE4NCw3IEBACiAJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFt
ICovLAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJCTMx
MDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKKwkJCQkz
OTJFOTQyQTIxOUEyRTg1MDA1MEY5ODIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUE2RkI3QUExMUU2
NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1
IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250
ZW50ICovLApAQCAtNzI3MSw2ICs3MzQ3LDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBDNjUw
QzUgLyogbWFjICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3b3JrICov
LAogCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovLAorCQkJ
CTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAqLywKIAkJCQkxQUVGQ0MwNTEx
RDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5QjQyMDAwNkUz
RkUgLyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2MzkwQyAv
KiBVc2VyQ29udGVudCAqLywKQEAgLTgzNzAsNiArODQ0NywxMCBAQAogCQkJCTVDMEIxNzc1MUU3
Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLywKIAkJCQkx
QTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVj
dE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTUxRjI5NTk2MzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlB
NjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovLAorCQkJCTUx
MThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQTI5QTI1
MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywK
IAkJCQlDREEyOUEyNjFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg2ODksNiArODc3MCwxNCBAQAogCQkJbmFt
ZSA9IFBERjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxRkVGMzlCMTkw
Rjc5MUMwMDczMTY1OCAvKiBpb3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lP
Uy5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJRTQ4OUQyODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxNTksNiArOTI0OCw5IEBACiAJ
CQkJMUFDNzUzN0MxODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQYWdlTG9hZFN0YXRlT2JzZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0
ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdERDVC
RjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBE
RkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBCNjA4
NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGQjAyMTg5MTI2
NDAwMjVBODhEIC8qIFBlbmNpbEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDE1Miw2ICsx
MDI0NCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAo
CiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDky
QSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlF
MTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVz
b3VyY2VzICovLAogCQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBjb20uY2lzY28ud2Vi
ZXgucGx1Z2luLmdwYzY0LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFFNTRENDUy
MDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApAQCAtMTA3
NjEsNiArMTA4NTQsMTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50
aW1lT2JqZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5RjAwMDEy
OEFGRCAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3
OTQyMTJCNkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lP
Uy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlB
QTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMjgx
Q0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXlt
ZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZkMGE3
YjU2OTJiMTE5ZmM2N2Y0MjdkZDQ3OWVlMThkMzgxNjNjMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
KworCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRl
eHRNYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMp
KQoreworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS53ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDE3N2Y4ZjJlYzdjNTUzODc3ZDFmYjkw
NDI2ZDEyM2MxNmE2MjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1NXU2VydmVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHBy
aXZhdGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNz
YWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIo
KTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcAppbmRleCBiOTdi
NzdmYmE1ZDkzZjBiZDA5Yzc3MmIzMmFhYWExNDYzMDMzZDRmLi43MmQ0OTQxOWJmOTRhNTI4MzE4
MzY0ZTViMTkwNDg3YjlmMTY4N2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRy
b2xsZXIuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENv
bnRyb2xsZXI6OnJlbW92ZVRhcmdldChJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldCYKIAogdm9p
ZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVjdEluc3BlY3Rvcihjb25z
dCBTdHJpbmcmIHRhcmdldElkKQogewotICAgIEluc3BlY3RvclRhcmdldCogdGFyZ2V0ID0gbV90
YXJnZXRzLmdldCh0YXJnZXRJZCk7CisgICAgYXV0byogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0
YXJnZXRJZCk7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzgsNyAr
NzgsNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpjb25uZWN0SW5z
cGVjdG9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQpCiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRh
cmdldENvbnRyb2xsZXI6OmRpc2Nvbm5lY3RJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiB0YXJnZXRJ
ZCkKIHsKLSAgICBJbnNwZWN0b3JUYXJnZXQqIHRhcmdldCA9IG1fdGFyZ2V0cy5nZXQodGFyZ2V0
SWQpOworICAgIGF1dG8qIHRhcmdldCA9IG1fdGFyZ2V0cy5nZXQodGFyZ2V0SWQpOwogICAgIGlm
ICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBXZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcihjb25zdCBT
dHJpbmcmIHRhcmdldEkKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6
c2VuZE1lc3NhZ2VUb1RhcmdldEJhY2tlbmQoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewotICAgIEluc3BlY3RvclRhcmdldCogdGFyZ2V0ID0gbV90YXJn
ZXRzLmdldCh0YXJnZXRJZCk7CisgICAgYXV0byogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJn
ZXRJZCk7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDcwY2U4ZWE0ZWVlODA5NmUwNGIzZWU2N2Qx
ZjRjZjIxMjczNTBkYWMuLjk1MWVmZWJjODZjOGRlOWNlZmQ5NWZmMGNjNGVjY2RkODcxMmFmNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDYgKzQzLDkg
QEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRl
ICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgi
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKICNpbmNsdWRlICJXZWJD
YWNoZVN0b3JhZ2VQcm92aWRlci5oIgpAQCAtNjksNiArNzIsOSBAQAogI2luY2x1ZGUgIldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW0uaCIKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJXZWJz
aXRlRGF0YS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBAIC0xMjE3LDYgKzEyMjMsMzEgQEAgV2ViTG9hZGVy
U3RyYXRlZ3kmIFdlYlByb2Nlc3M6OndlYkxvYWRlclN0cmF0ZWd5KCkKIHsKICAgICByZXR1cm4g
bV93ZWJMb2FkZXJTdHJhdGVneTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9p
ZCBXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQobV93ZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik7CisgICAgQVNTRVJUKG1fd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CisKKyAgICBtX3dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uID0gbnVsbHB0cjsKK30KKworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24mIFdlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6
U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpCit7CisgICAgaWYgKCFtX3dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKSB7CisgICAgICAgIElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVj
dGlvbklkZW50aWZpZXI7CisKKyAgICAgICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oaW5pdGlhbFNlc3Npb25JRCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlm
aWVyKSwgMCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikp
CisgICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24gPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKworICAgIH0KKyAgICByZXR1cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb247Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9p
ZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMTg3ZWE0MGRlN2UxZDQ5NGE5Mjdh
NDI5NzY3MDhmYzU0NGVhZjA2Zi4uMzFjNjlhNTA3YTBmNjk2Y2I2MzI0Mjg3ODQwZGE5NzRmNGNi
ZjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05OCw2ICs5OCw5
IEBAIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBh
Z2VHcm91cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1cHBsZW1lbnQ7CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK2NsYXNzIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlw
ZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlBhZ2VHcm91
cERhdGE7CkBAIC0xNzUsNiArMTc4LDExIEBAIHB1YmxpYzoKIAogICAgIExpYldlYlJUQ05ldHdv
cmsmIGxpYldlYlJUQ05ldHdvcmsoKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgdm9pZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiopOworICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBl
bnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFs
U2Vzc2lvbklEKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9p
ZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKQEAgLTQzMiw2ICs0NDAsMTAgQEAg
cHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
PiBtX2F1dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gbV93ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUmVmUHRyPFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3
YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUwODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcx
YTFhNjlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI4OCw2ICsyODgsNyBA
QCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FU
T1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FU
SU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9
IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5B
QkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9Q
REZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4
YzUzNWM3ZmY2MzA3Yzk1NWZhOTc3MTIxMzA0ODhlNGFhODhjZTk2Li41NWY2NzdjMDI0ZTdhOGVj
NjgyY2EyODBhYmJhNjFkYjQ1MjYwNjFiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBI
YXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIg
d2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOC0xMS0x
NCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEFkZCBTUEkgdG8gc2hvdyBhIHNhZmUgYnJvd3Npbmcgd2FybmluZwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKaW5kZXggODY3MjgwMGYyNmYyZjY0NjM3YzBjYmMzNzEwMjYxNTNiMmNkNjgyZC4uMzBkNDUw
ODBiMDFhNWM4YzgyNDdmZjk2YjczNWRmODcxYTFhNjlmZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CkBAIC0yODgsNiArMjg4LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91
Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9
ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9U
SUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1F
TlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5f
JChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KaW5kZXgg
M2YxYTYyODg2ODIxMDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4uYzM0NmFiZmQ2MjBmOTM1
NTVmZDgwMDVjOGExYjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bQpAQCAtMTQ0LDYgKzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQ
cm9jZXNzZXNOb3RMYXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNoYXJlZCBwcm9jZXNzIHBv
b2wgZXhpc3RzIHNvIHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2UncmUgYWJvdXQgdG8gZG8g
d29yayB3aXRoIGl0LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFByb2Nlc3NQb29sID0gW1dL
UHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3Qp
MCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBF
WFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3Vu
dF0pOwogCiAgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0
RGF0YVN0b3JlXTsKQEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBFQ1RfVFJVRShbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGFyZ2V0VVJMLnBhdGhd
KTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50
UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJv
Y2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
CmluZGV4IDYxZGRiYzNkNjNhOWVhODdjMjZlY2EwZDFiZmQ2Njc3NjU3MzA5MTYuLjI2OWU4NmVk
NjVhOWQ0NmVmMzA3M2NiOWRhYTUxMGQxZjk5ZTRmOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
CkBAIC0xMTMwLDYgKzExMzAsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHBheW1lbnQg
cHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3Vy
YXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcik7CisKICAgICAvLyBM
ZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBoYXMgc2VydmljZSB3b3JrZXIg
YW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFT
dG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAppbmRleCA4ZGI1NjkwYjM5NDMxMDk0YjUzNThkMGQyYWZiODc2OTlkMjA2ZGEw
Li5kNjJjNjBmNzhjYzUzMGEzNWFjNzNhZThhNDg0ZDU2MDhiMTE3ZDdmIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKQEAgLTMzMyw2ICszMzMsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7
CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5h
dGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nl
c3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRpZENhbmNlbENsaWVudFJl
ZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAppbmRleCA1ZGE1NDZhZWQ1ZTdmN2UzNTk1ODNkZDg5YTgyMmI0MGU1
Y2NjZjc0Li5jOWQwNmU5NWNjYjc5NGY2YjlkYzY0YmYzYTlmMjczYjgxNTcxNTdhIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKQEAgLTEyNTUsNiArMTI1NSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdl
Rm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1l
c3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0UnVubmVy
Ojp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJU
ZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25v
dXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5w
YWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwogc3RhdGlj
IHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1bnNpZ25l
ZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGU4YmE5N2Y3
MTY4NGRmY2EwNzc1NzNjY2FiYzEzY2U2NDM0MDJmYjEuLjdlNjUyYzUzZWU1YWQ0NmNmZTY1YWZl
NzA5M2U4YTFiOWE2NTg5NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDYsNiArNDQ2LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7
CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVlUmVmKTsKICAg
ICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjaygpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkNGU4MThlZjIxNWIz
YzY2MzU5Zjg4NDY1MjcxZjBjZTA4MjNjZWUxLi44YmRiZDRjNzVkODExOTI3NjQ0NTgyMDMzY2M2
MzZiYTMyMGQ0OGM5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cApAQCAtMTA3NCw2ICsxMDc0LDE1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpuZXR3
b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVy
OjpwYXltZW50UHJvY2Vzc05hbWUoKQoreworI2lmIFBMQVRGT1JNKEZBTUlMWV9JT1MpCisgICAg
cmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbHNlCisgICAgcmV0dXJuICJQ
YXltZW50IHByb2Nlc3Mgbm90IGF2YWlsYWJsZSBvbiBhbnl0aGluZyBidXQgaU9TIjsKKyNlbmRp
ZgorfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShi
b29sIGFsbG93cykKIHsKICAgICBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldFRlc3RpbmcocGxhdGZvcm1Db250ZXh0KCksIGFsbG93cyk7CkBAIC0xNTA4LDYg
KzE1MTcsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChX
S0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2wKICAgICBzdGF0aWNfY2FzdDxUZXN0
Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nl
c3NEaWRDcmFzaCgpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorewor
ICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpLT5wYXltZW50UHJvY2Vzc0RpZENyYXNoKCk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmRpZFJlY2VpdmVLZXlEb3duTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0RpY3Rpb25h
cnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBib29sIHN5bmNocm9ub3VzKQogewogICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJLZXkiKSk7CkBAIC0xODQxLDYgKzE4NTUsMTMgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiAgICAgZXhpdCgxKTsKIH0KIAordm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpCit7CisgICAgcGlkX3Qg
cGlkID0gV0tDb250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKG1fY29udGV4dC5nZXQo
KSk7CisgICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgcGF5
bWVudFByb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOworICAgIGV4aXQoMSk7
Cit9CisKIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6
ZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmln
YXRpb24sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTI2NDAsNiArMjY2
MSwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vz
cygpCiAgICAgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MocGxhdGZvcm1D
b250ZXh0KCkpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJv
Y2VzcygpCit7CisgICAgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MocGxhdGZvcm1D
b250ZXh0KCkpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpCiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNjI1YTViNTQ2NTkyMmM3YmFmZDk0
YjdhY2M4MTI3NjU3YjhiYzkxZi4uN2YwZjc1YjRkYmFmNWQ5MWNmNDUwNjc5MTU2NTQzNWZjMzVm
ODQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTgxLDYg
KzE4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogd2ViUHJvY2Vzc05hbWUo
KTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogbmV0d29ya1Byb2Nlc3NOYW1lKCk7CiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGRhdGFiYXNlUHJvY2Vzc05hbWUoKTsKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogcGF5bWVudFByb2Nlc3NOYW1lKCk7CiAKICAgICBXb3JrUXVldWVNYW5hZ2VyJiB3b3Jr
UXVldWVNYW5hZ2VyKCkgeyByZXR1cm4gbV93b3JrUXVldWVNYW5hZ2VyOyB9CiAKQEAgLTI1Miw2
ICsyNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7
CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVy
bWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRl
bnRpYWxzKCk7CiAKQEAgLTM1Nyw2ICszNTksOCBAQCBwcml2YXRlOgogICAgIC8vIFdLQ29udGV4
dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0
UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7Cisg
ICAgc3RhdGljIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0
IHZvaWQqKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKIAogICAgIC8vIFdL
UGFnZU5hdmlnYXRpb25DbGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9u
KFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYjhm
Y2Q1N2I4NzU5YWFkZjNjZDczZDk5NjFmNTA3YmI4ZWU0NGI4Yi4uMGM0ZjZhOWNlYzM3YjM3MDU4
MzMxNGZmYzgwOTJlZTg0MDVhMTNmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKQEAgLTE0NTMsNiArMTQ1MywxMiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+
IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVk
QgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikp
IHsKKyAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIikpIHsKICAgICAgICAgQVNTRVJU
KCFtZXNzYWdlQm9keSk7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJt
aW5hdGVOZXR3b3JrUHJvY2VzcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355595</attachid>
            <date>2018-11-25 08:19:14 -0800</date>
            <delta_ts>2018-11-25 12:32:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181125111914.patch</filename>
            <type>text/plain</type>
            <size>138627</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OWY3MGJjYTExMzlkMDY4NWJlZjIzNDlkYmY5NWY4MDc1NmZhNjA4Li43NWQwMzU4NTI1NTgzOGM3
OTY4ZGIwZWIwMGFiMTU4NDlhYjNmYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yMyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgZHJhZyBhbmQgZHJvcCBz
dXBwb3J0IGZvciBpT1NNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMGU0MmQ2MTZmOThjNzRmNmNlNjg0MDIz
ZmI5OTI0ZTFhOTUyZjIxLi4xNDQxMTUxODc2NWFhNWJlNDk2OGQ3Y2YzMTk0Y2M2NzYwYjczZTVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0yNSAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRv
IGluc2VydCBlZGl0YWJsZSBpbWFnZXMgd2l0aCBhIGdlc3R1cmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmlu
ZGV4IDg0OTRmMjc0NjA1ZGUwNjIwNjY4MWRlNzdhMmYzOWI1YzYzYWZjZDYuLjRlMGQ4MzlkMDIw
MDdhYzEwY2Y2ODhlOWJlM2FjNTA4Y2E1NjU5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgor
CisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTI0ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFNPRlRfTElOS19DTEFTU19GT1Jfe0hF
QURFUixTT1VSQ0V9IHNob3VsZCBnZW5lcmF0ZSBhIG1vcmUgY29uY2lzZSBnZXR0ZXIgZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZWM5ZDVjMGMzMjU3MWQ3MzNmMWNhMmQ1NzNjZjIzMzA5MjhlNTUzYi4u
MTdlMzdjZDE3NDFkZmE5YWRhOGQwOGQ0NTQ1ZmQ5NWFhYzRiMmUxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+
CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZzoKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmguCisgICAgICAgICogUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6
CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29u
dGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFs
aXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6
ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFBy
b2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRUZXJt
aW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vz
c0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAg
ICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgorICAgICAg
ICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpz
ZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNz
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVQYXltZW50UHJvY2Vz
c0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXlt
ZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6
flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1By
b3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRG
aW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJv
Y2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRDbGllbnQ6OnBh
eW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xp
ZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVC
cm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9Q
YXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9Q
YXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFy
YW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9z
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuaGFuY2Vk
QWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnN0
YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5j
cmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQVUxpbWl0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BVTW9uaXRvclN0YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFnZUFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldEFsbEdl
b2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2FuY2VsTWFya0FsbExheWVy
c1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0QWxs
TGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXJGaXJlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1vcnlDYWNoZURpc2FibGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0RW5hYmxlZFNlcnZpY2Vz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlQXV0b21hdGlv
blNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRl
c3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlhRGV2aWNlcyk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTgtMTEtMjUgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZUxheWVyVHJlZU5v
ZGUgY29uc3RydWN0aW9uIGNsZWFudXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NmRhYzYwOWEwNzZhZjZhMTFlOWYwODI2ZTU1MTg4NWU4Y2IzOTczNS4uMWMxNTA4MDFlMTc0YjVi
MDYyM2M0ZmE0ZDViN2U3ZjQ3YjkwNzEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUu
Y29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTI1ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gaW5zZXJ0IGVkaXRhYmxlIGltYWdlcyB3aXRoIGEgZ2VzdHVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4MGE3NGQ2MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3
YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUyZmM0NmFjY2I1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVf
Y29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklD
QVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVO
QUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFC
TEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9Q
QVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lU
X1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZjU4OGYzMmM0MjRm
ZTgwYTc0ZDYxZGM0Yjc4MDY4MTQxYjhlYzQzZS4uODdiYTU2YjllNjk0N2M4ZTkzZjVhYTYwYmVm
NTJmYzQ2YWNjYjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9O
RTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BM
QVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJ
RklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lO
ID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44
N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0yOTAsNiArMjkwLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29h
dG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9O
UyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BB
WU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVO
VF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVH
SU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxp
emFibGUuc3RyaW5ncwppbmRleCAxZWQ3OGNlMDU5N2JkMzBmZmM0NWMxMzEyYjUxNjU2NzAwODA3
NmQ4Li41NWVhNTI3ZDE0NDU3ZWZkNWI5ZTRhODk4MGRjNmJkNzdiYmNmOWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAK
IC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAi
JUAgU2VydmljZSBXb3JrZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVu
dCBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAg
UGF5bWVudHMiID0gIiVAIFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIg
cHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdl
YiBDb250ZW50IiA9ICIlQCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYx
NjE1NDI3MzI2ZDg4YmFhZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEz
ODg2YjVkNDhiNjZkMzFmMDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUs
NyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9O
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNz
L3dhdGNob3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAg
ICIke1dFQktJVF9ESVJ9L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRm
b3JtIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElS
fS9QbHVnaW5Qcm9jZXNzIgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIK
ICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvR2FtZXBhZCIKKyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS94MTEiCkBAIC00NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
UGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9Vc2VyQ29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29j
a2V0Lm1lc3NhZ2VzLmluCiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNz
YWdlcy5pbgorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCisKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgog
ICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1
MSw2ICsxNTcsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nl
c3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIyMSw2ICsyMjksMTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdl
YktpdAogKQogCitzZXQoUGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisK
IHNldChQbHVnaW5Qcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2Ji
YjAxMmEzOWU2NWRhOGJhOGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRj
ZmRiMjA2YTRkNjNjZjNlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvQmFzZVRhcmdldC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0Jhc2VUYXJnZXQueGNjb25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJF
RElDVElPTltzZGs9bWFjb3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9O
X0RFRklORVMgPSAkKFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BS
RURJQ1RJT04pKTsKIFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9Q
UkVESUNUSU9OOwogCitXS19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxl
LldlYktpdC5QYXltZW50czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQo
V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9T
RVJWSUNFX05BTUUpKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19T
VE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9E
VUNUX05BTUVfTk8gPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4
ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNm
NWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJM
RV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRf
UExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29u
ZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdmN2IxODliNDI2MjQ5NDAxMjU4OWJhMDE3MTg1YTkzODE0NmY0Y2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnCkBAIC0wLDAgKzEsMzMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisv
LyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BB
WU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CisKK0NPREVfU0lHTl9FTlRJVExF
TUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNU
RURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lHTl9G
TEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BST0RV
Q1RfTkFNRSA9ICQoV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JV
TkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZDY3ZDQ4YzY0ZDcyOWJjZmVlODBmNWFjNDBm
NGU3YzNlYmM3NzMyNC4uZDMxNzVhZDhiMGIzMmM3ZjU2NjZhNmIzYmQyN2UzZDkyNjUyMmJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzAsNiArMzAsNyBAQCBWUEFUSCA9IFwK
ICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlciBcCisgICAgJChXZWJLaXQyKS9QYXltZW50UHJvY2VzcyBcCiAgICAgJChX
ZWJLaXQyKS9QbHVnaW5Qcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MvbWFj
IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKQEAgLTczLDYgKzc0LDcgQEAgVlBB
VEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQy
KS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BheW1lbnRz
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3Jh
Z2UgXApAQCAtMTIxLDYgKzEyMywxMCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBOZXR3
b3JrU29ja2V0U3RyZWFtIFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyIFwKICAgICBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAorICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyIFwKKyAgICBQYXltZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFByb2Nlc3NQcm94eSBcCisg
ICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24g
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZWZhY2Y0ZmJiMTQ3MmFjZmJlMGY0NjE3NTA4MGZlMjk2NzQwYTJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
cy5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3Mu
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQ
YXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAgIHJldHVybiBwcm9j
ZXNzOworfQorCitQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQoreworfQorCitQYXlt
ZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQorewor
ICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisK
K2Jvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmICht
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcikp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewor
ICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgeworICAgICAgICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2Vydmlj
ZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3Jp
Z2luKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZiM2ExNzM1ODM1
NDQ0MjM0ZjU5Y2M2YTU0NDk0ZTdmNzdhODMyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApAQCAtMCwwICsxLDY5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3Qg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNz
IDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVu
dFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz47Citw
dWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0
aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1l
bnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1l
bnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworcHJp
dmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAg
dm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAg
ICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAg
IHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VX
b3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThiOTE0ZmM0YThmNDQ3MThjZmExMjU3NmQz
MzhkYWU1OTJhYTBlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgeworICAgIAorfQorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRjNDc0YzliYzc5ZjRiZjM4NmI2YTI3OGEzODcwYWFjZjNjY2NhMWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNv
bm5lY3Rpb25JZGVudGlmaWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykp
Cit7CisgICAgLy8gRklYTUU6CisgICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRN
ZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3Vj
aEFNZXNzYWdlKHRydWUpCisgICAgLy8gdG8gcHJldmVudCBkZWFkbG9jayB3aGlsZSB1c2luZyBz
eW5jaHJvbm91cyBtZXNzYWdlcworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5k
aWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3Zv
aWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShj
b25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNF
RF9QQVJBTShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsKKyAgICBVTlVTRURfUEFSQU0obWVzc2FnZU5h
bWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0OWE5ZWI0
YTEzNzY0NDExNmNhY2VkMDM4MzA3YWIzNDA4MWNmZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJN
ZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6
Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAg
IH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6
CisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9
CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJl
dHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzA0YzBkYmMyNDc1NDIxN2M3ZDlhM2MwNGI4NDBlM2QyMjNkYmMyNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3Nh
Z2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5
bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXlt
ZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTVlMzcwZjU0ODU0MjczZDMzODRhZmRkYjU2
ZTYxYzY4Mzk1NjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNp
ZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVB
TF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxp
emVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5k
Ym94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7
CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBv
dmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5k
bGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9y
Q2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFt
ZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZv
clJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7Cisg
ICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFy
YW1ldGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRi
b3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MDY3MmM2ODZiMTY2N2FkOTdmNWRmZDc1YTRiM2E3YmRjMDYwN2IzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUu
V2ViS2l0LlBheW1lbnRzLnNiCkBAIC0wLDAgKzEsMzIgQEAKKzsgQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7IG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cis7
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworOyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKzsgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRp
YWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRhZGF0
YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1sb29rdXAgKHhwYy1zZXJ2
aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVuKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGls
ZFByb2Nlc3MuaAppbmRleCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdhNjFmZmFiZGYzNzY5
Li41ZDBjYzZlMmY1NGQzNjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIFdl
YkNvbnRlbnQsCiAgICAgICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogICAgIH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcwODMzMTJjZjg4ZjdkZjk2NDliMmQzNjJiZDc0NjExMTAwZjgz
MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVk
ZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygp
Cit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7
Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1
bHQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBhMDlhYjdlZmQ3ZjIwOTRmZTZkNjdlZjQ1Yjlm
Mzg0NjczN2FlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1l
bnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xhc3Mg
RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMoKTsKKworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRp
YyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYpOworCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRj
NzJlNTgyYWJlMzBmNDg3OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2
NzAxNzkxZjBjZTlhYWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgKQEAgLTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcg
ZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1
Z2luUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1l
bnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CmluZGV4IDg3NjZkZmQzMDIwOTYzMWQzOThhNTM5ODM4Y2VhOWZjMDRhODc3ZmEuLmVh
YTJjM2U2NzUzZTNiOThhODRiZmM1M2ViYjA4Mzg1MWFkYzY5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAt
NzksNiArNzksOSBAQCBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1JlcGxh
eS5jcHAKIAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCiAK
K1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcAorUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisKIC8vIFRPRE86IFdlIHNob3VsZCB1bmlmeSB0
aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0Zm9y
bS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAgQG5vLXVuaWZ5CkBA
IC0yMDcsNiArMjEwLDggQEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0
LmNwcAogCiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorU2hhcmVkL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIC8vIFRPRE86IFRoZXNlIGZp
bGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3Zl
ZC4KIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwIEBuby11bmlmeQogU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwIEBuby11bmlmeQpAQCAtMzgwLDYg
KzM4NSw4IEBAIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAogCitVSVBy
b2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5J
bmZvU3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAK
QEAgLTQ4MCw2ICs0ODcsOCBAQCBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tl
dC5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAKIAorV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKKwogLy8gVE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25j
ZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbi5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDZhYzhmZWMxNmNl
OTJlYmZhNzE2ZGUzMmJhMDQ1NzlhZmQyMzc1N2YuLjc4MzQ1N2VmMGJiNGRiZTUyZTQzOTY2ZTE2
ZDE1OTBiMDJiZjg5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4Miw2ICsxODIsOCBA
QCBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMvV2ViSGl0VGVzdFJl
c3VsdERhdGEubW0KIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KIAorUGF5bWVu
dFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCisKIFNoYXJlZC9QbHVnaW5zL21hYy9Q
bHVnaW5TYW5kYm94UHJvZmlsZS5tbQogCiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwCmluZGV4IDg3MDE2YWI3NThlYmMxMmQzOThkZmZkM2MwNWI4ZjIxYWI1MDUy
NjguLmZhNzE4OTEzNWJlM2E5YzEwZWE4N2I4MDljYWQxZGJiMzI5MDVjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNjIxLDExICs2MjEsMjcg
QEAgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRS
ZWYgY29udGV4dCkKICAgICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzZXMoKTsKIH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhX
S0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29udGV4
dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsK
ICAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIo
KTsKIH0KIAorUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihX
S0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigp
OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorfQorCiB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZiwgV0tTdHJpbmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS0Fy
cmF5UmVmIG1pbWVUeXBlc1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IDQ2ZDM3ZTFlOGExNTg5NTgwYTM1NTM4ZWU1
ZjZmOWJjMmQ4MGUyMmMuLjQwZGFjZWI1N2M5MWMyNjQzNTViYWJkNmFlMzVkMjhhNDI3ZTYyNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmgKQEAgLTkzLDYgKzkzLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdv
cmtQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAorV0tf
RVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVm
KTsKKwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVG
b3JXZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5n
KFdLQ29udGV4dFJlZiwgYm9vbCk7CiAKQEAgLTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiBX
S19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCk7CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0Nv
bnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwor
V0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmll
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFkZFN1
cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWluLCBX
S1N0cmluZ1JlZiBuYW1lLCBXS0FycmF5UmVmIG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRlbnNp
b25zKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhXS0Nv
bnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IGNkOTAyNWU3ZWJhOGU2YzJhZGIyYmZmNTA3Y2E4
ZGM0NDM4NmU3YjEuLjg0MWZkNTI3Y2JmNjkxY2E0ODZkMWY3MDIwYWZjY2JmM2M4YTZlNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCkBAIC00MjQsNiArNDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwog
ICAgIF9wcm9jZXNzUG9vbC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQp
X3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1pbmF0
ZU5ldHdvcmtQcm9jZXNzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcygpOwpAQCAtNDQ0LDYgKzQ1MSwxNSBAQCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVu
dGlmaWVyCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KCk7CiB9CiAKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQcm9j
ZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gKHBpZF90KTA7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNz
Q29va2llcwogewogICAgIF9wcm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaAppbmRleCA0ZDNhMTkxMjBhYmQ0OWVlZTA0OTI3OTRhNzdmNGFmYjA2
Y2RlOTBjLi40Yjk2ODE5Y2IzOWQ2MWVlYWI5NTljNTJhNjEwMzM1MDM2MmE1NTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaApAQCAtODQsMTIgKzg0LDE1IEBACiAtIChfV0tEb3dubG9hZCAqKV9yZXN1bWVE
b3dubG9hZEZyb21EYXRhOihOU0RhdGEgKilyZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0
aCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRl
bnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgorLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJs
ZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistICh2b2lkKV90ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJt
aW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsK
IAogLy8gVGVzdCBvbmx5LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChwaWRfdClfcGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3ND
b3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4
IGUwN2RiYTI3MmEyZTE1YmU4MjlkZTIzNGM1ZGQ1MGQ1NzM4ZTFhMGMuLjE0YTM5ZmE4Y2U3NWE1
OWMzMWExODY4M2RjYWQwNjUxODBkZjNkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01OCw2ICs1OCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgUGx1Z2luNjQsCiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tCmluZGV4IDZjYmFjMjVkNzg0YzBlZWVhNThhNjg0YWI0Njg0NDVhZTJl
MzkyNjIuLjg0Njc2NDU3OWU2MTk2ZjcwZmQwNDdmNDNkYWZiOWM2ZDk0ZDE2NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQpAQCAtNjIsNiArNjIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZp
Y2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8K
ICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAgICAg
ICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBl
OjpQYXltZW50OgorICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVmNDY1MWRiYzRjOTEzOTRlY2Q3YTNkNWUyNDY1OWJiNjAzMDNjMDUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NQcm94eS5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRl
RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGF5bWVudFByb2Nlc3NQcm94
eTo6UGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCisgICAg
OiBDaGlsZFByb2Nlc3NQcm94eShwcm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJp
b3JpdHkoKSkKKyAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCisgICAgLCBtX251bVBl
bmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKK3sKKyAgICBjb25uZWN0KCk7Cit9CisKK1BheW1l
bnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KCkKK3sKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKK3sKKyAgICB0ZXJtaW5hdGUo
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nl
c3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBsYXVuY2hP
cHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVu
dDsKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25z
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rp
b24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAg
ICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOworCisg
ICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5jaGluZykgeworICAgICAgICBtX251bVBlbmRp
bmdDb25uZWN0aW9uUmVxdWVzdHMrKzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJv
b2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBzZWN1cml0eU9yaWdpbjsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpD
cmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNz
LCBzZWN1cml0eU9yaWdpbiksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZl
bldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQoreworICAgIGF1dG8gcHJvdGVjdGVkUHJvY2Vz
c1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bvb2wpOworCisgICAgLy8gVGhlIHBheW1lbnQgcHJv
Y2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3lu
YyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAgd2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9u
UmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5l
Y3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IH0KKyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQg
cHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQ
b29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25u
ZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBh
eW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxh
dW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIp
Cit7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwg
Y29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50
aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTog
RG8gYmV0dGVyIGNsZWFudXAgaGVyZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsr
aSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBl
bmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkNmMxYjk3YTAwMGZmZDkwNzU2ZGIxYzc0NjQ1ODQwYTU4ZjI4NDAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3Mg
V2ViUHJvY2Vzc1Byb3h5OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vi
c2l0ZURhdGE7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hp
bGRQcm9jZXNzUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJv
eHkoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAgICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAor
ICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOworCisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisKK3ByaXZh
dGU6CisgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcm9j
ZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAg
dm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBk
aWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1l
bnQmKTsKKworICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRGaW5p
c2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KSBvdmVycmlkZTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisgICAg
dW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjMxMGNmY2Q1MTYyZWM0N2NlYTI5MzFkNjg0
NzliOTBhMTA1NDc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBA
CisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94eSBMZWdhY3lSZWNl
aXZlciB7CisgICAgRGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHAKaW5kZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uYmVj
NzliNTRjYmY2YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQgKzQ2LDExIEBAIHZvaWQg
V2ViQ29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCog
cHJvY2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShw
cm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2
ZDRlZThkNzc4ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFi
OWVkY2M4NDUzOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5oCkBAIC00NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQ
STo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lk
IG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNz
UG9vbCopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5
MzRmYTYuLjJjNmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiAr
MjksMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQ
b29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikK
ICAgICB7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmly
dHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7Cisg
ICAgfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNz
UG9vbCogcHJvY2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAg
dm9pZCBjbGVhclByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDdkNGFjMzcyNjNi
NWQzODI4MDg3Y2VjODNkMjA4M2M3NDNkNjA1YzUuLjk4OGZiYzYxYWJhNTkzMGMxMjZmN2Y4OWEy
OTMwMTgzNmI5ZjBlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0
aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBh
ZFByb3ZpZGVyLmgiCkBAIC00NDIsNiArNDQ2LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2Vu
ZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFBy
b2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVF
dmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6
OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkp
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3Mo
TWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXND
cml0aWNhbCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRv
bigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MTcs
NiArNjI0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShy
ZXBseSkpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nl
c3MpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQ
cm9jZXNzUHJveHk+KCp0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwg
UEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sK
KyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsK
K30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQ
cm9jZXNzUHJveHkmIHBheW1lbnRQcm9jZXNzUHJveHkpCit7CisgICAgQVNTRVJUKG1fcGF5bWVu
dFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1Byb3h5ID09IG1fcGF5bWVudFBy
b2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50
cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vzc0RpZENsb3NlKHBheW1lbnRQ
cm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFByb2Nlc3NEaWRDcmFzaCh0aGlz
KTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAgICAgICBtX2F1dG9tYXRpb25T
ZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOwor
fQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYgcHJveHksIFNlY3Vy
aXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lv
bklEPiBzZXNzaW9uSUQpCiB7CkBAIC02OTMsNiArNzMwLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHBy
aXZhdGUKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpB
ZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpsZWdhY3lQcml2
YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5ldHdvcmtQ
cm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgc2VuZFRvUGF5
bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKSk7CiAgICAgfQogfQpAQCAtMTM1MSw2ICsxMzkxLDE1IEBAIFZlY3RvcjxTdHJpbmc+IFdl
YlByb2Nlc3NQb29sOjphY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFBy
b2Nlc3NJCiAgICAgfQogICAgIHJldHVybiB7IH07CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVy
KCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0
QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkK
IHsKQEAgLTE2MjIsNiArMTY3MSwxNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhckNhY2hl
ZENyZWRlbnRpYWxzKCkKICAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKICAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQ2FjaGVkQ3Jl
ZGVudGlhbHMoKSwgMCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3Zv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpCit7
CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Bh
eW1lbnRQcm9jZXNzLT50ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgbV9wYXltZW50UHJvY2Vz
cyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZDI4NDNmZjY2ODI4Zjk1NTZmYzIz
YjcxMzBjYjg0NmFhYTdhNmQ3YS4uMzExNmJlZGJhOTczNTRjMGFjYjY3YjRmMTY3NzQ1ZTU3YTQ3
Zjk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MCw2
ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzUmVxdWVzdC5oIgor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94
eS5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVmlzaXRl
ZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDbGllbnQuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgpAQCAtMTczLDYgKzE3NiwxMiBAQCBwdWJsaWM6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gdm9pZCBzZW5kU3luY1RvTmV0
d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBseSk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nh
cnkoVCYmIG1lc3NhZ2UpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAvLyBT
ZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9yIFBheW1lbnRQcm9jZXNzIGFzIGFwcHJv
cG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLgorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpOworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KFQmJiBtZXNzYWdlKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAg
ICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSopOwogCiAg
ICAgLy8gRGlzY29ubmVjdCB0aGUgcHJvY2VzcyBmcm9tIHRoZSBjb250ZXh0LgpAQCAtMjE3LDYg
KzIyNiw5IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KCk7CiAgICAgVmVjdG9yPFN0cmluZz4gYWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9y
VGVzdGluZyhQcm9jZXNzSUQpOwogICAgIGJvb2wgbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVu
dEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VHcm91cCYgZGVmYXVsdFBhZ2VHcm91
cCgpIHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQoKTsgfQogCkBAIC0yNzYsNiArMjg4
LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJT
b2NrZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKTsKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3NG
b3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB2b2lk
IHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyUHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJt
aW5hdGlvbkRlbGF5KCk7CkBAIC0zNDQsNiArMzU5LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5
JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGVuc3VyZVBheW1l
bnRQcm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3MoKSB7
IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9CisgICAgdm9pZCBnZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNl
c3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0NyYXNoZWQo
UGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4p
OwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBAIC02NDMsNiArNjY0LDkgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24g
eyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2ggeyBmYWxzZSB9Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBtX25ldHdvcmtQcm9jZXNz
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1l
bnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0aW9uYXJ5Q2Fs
bGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CkBAIC03NDQsNiAr
NzY4LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVs
YXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAgICBtX25ldHdvcmtQcm9jZXNzLT5z
ZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNl
bmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQoreworICAgIGlmIChtX3BheW1lbnRQcm9j
ZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIG1fcGF5
bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9j
ZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKK3sKKyAgICBlbnN1cmVQYXlt
ZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+
KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvQWxsUHJvY2Vz
c2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA3YjYxZWYyNTIzZDJjOWIxMjBhY2M2MWM1ZTQ5YmExOTU1NDNh
NDJhLi43NzkyYWYxNGY2M2NhMmFlYjQ2MGZmOGUxNTNiMmM2NjIyZThlMjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTYyOCw2ICs2MjgsMTIg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3Byb2Nlc3NQb29sLT5nZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVwbHkpKTsKIH0KKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShyZXBseSkpOworfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiBib29s
IFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBkYmMyMmE1YTljOWEyMWJh
YzNkZGMyZmEyZjRiZjhjMDBkNGJiNWQxLi45MmE2ZGY4ZTgzZjEzZmZjNjRjYzQwYjRjMDRlZjQx
N2U3YmYxNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApA
QCAtMjg3LDYgKzI4Nyw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9u
SUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7
CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA2YTk4ZjRlOTYwNDdkYWJmMTY0YTc2MTBhODdmMmE5ZjY4NjBiNDhhLi44ZjVlMWQ2
NjYwYjE1MGQ3NTczMGE2M2UxZjA5M2Q0M2Y2YTM2ZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw5
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgR2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAo
SVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25v
dXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVk
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkgLT4gKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nlc3NT
dXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBiOTBjMTQyNDE3NmM2NTE1ZTdlZTRh
NTYyMmI4ZWM2ZWJlMjZjMzgxLi45MjVhZGU0N2Y5YWQzNWEzMDY1ODBiODU1MWJlODQwMGQwM2Y1
NDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRlICJNb2Nr
QXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5j
bHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKQEAgLTEz
NSw2ICsxMzksNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAgICAg
ICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldChtX3Nlc3Npb25JRCkgPT0gdGhp
cyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCkucmVtb3ZlKG1fc2Vzc2lvbklEKTsK
ICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9j
ZXNzUG9vbHMoKSkgeworICAgICAgICAgICAgZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbihw
cm9jZXNzUG9vbCk7CiAgICAgICAgICAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBwcm9j
ZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vz
cy0+cmVtb3ZlU2Vzc2lvbihtX3Nlc3Npb25JRCk7CiAgICAgICAgIH0KQEAgLTEzMjIsNiArMTMy
NywxMyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5k
bGVyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJgogICAgIH0KIH0KIAordm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpkZXN0cm95UGF5bWVudFByb2Nlc3NTZXNzaW9uKFdlYlByb2Nlc3NQb29sKiBw
b29sKQoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcG9vbC0+c2VuZFRvUGF5
bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihtX3Nl
c3Npb25JRCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisgICAgCiB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnMpCiB7CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nl
c3NQb29scygpKQpAQCAtMTYyNiw2ICsxNjM4LDE5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRs
CiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJv
Y2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7
CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworCisg
ICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKKworICAgIHJldHVybiBwYXJh
bWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBlbmRpbmdDb29raWVzKCkgY29uc3QK
IHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CmluZGV4IDg1MmI2YmI1ZDM2ZmJiNmU5NTk5MmU4ODI0NjhiMjZiZGQ5MDcxNTkuLjVhNjM2Mzk0
OWI2ZWYwNjNjOTAyNTRlNmFhOGQ5ZjRiNGM5OTg2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTY2LDYg
KzY2LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogZW51bSBjbGFz
cyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBz
dHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNv
cmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKQEAgLTE3MSw2ICsxNzQs
MTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vz
c1Bvb2wmKSBjb25zdDsKIAogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRl
cnMoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpOworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBkZXN0cm95UGF5bWVudFByb2Nlc3NTZXNz
aW9uKFdlYlByb2Nlc3NQb29sKik7CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBwZW5k
aW5nQ29va2llcygpIGNvbnN0OwogICAgIHZvaWQgYWRkUGVuZGluZ0Nvb2tpZShjb25zdCBXZWJD
b3JlOjpDb29raWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDI4MTkwNjkzZDNhM2ZlZmZlYjBlZWNiNjViNmYzNGEyYjg5NDk0YjMu
LjJmZmNiNzM3NjE3NzM1MTZjYjE0ODMwZGM4NmNlNWU0ODFkOWFhYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ2LDYgKzg0Niw3
IEBACiAJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0
RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9OwogCQkz
N0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQ
cml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
N0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdG
QzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5o
ICovOyB9OworCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5Q
YXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMu
c2IgKi87IH07CiAJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJM0Y0MThFRkIxODg3QkQ5NzAw
Mjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNzE4
ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hv
b3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4
N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OwpAQCAtOTA0
LDYgKzkwNSwxMCBAQAogCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyogX1dLTGlua0ljb25Q
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUMwQzk3OTFEREQ3ODU0MDAzMkNBRDMgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRkJCOUIx
Mjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk5MTI4OEM5NUUwMEFGRkRG
NCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggKi87IH07CiAJCTUxMTBBRTBEMTMzQzE2Q0Iw
MDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExMEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFi
YXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThF
OUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CisJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4
RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovOyB9Owor
CQk1MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CisJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTExRjdENDExRUIxQkNGNTAwRTQ3QjgzIC8qIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0
ZW1TaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICov
OyB9OwogCQk1MTFGOEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjhBNzgx
MzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSAqLzsgfTsKQEAgLTk1NSw2
ICs5NjAsNyBAQAogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFMzE2M0E0
ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdD
RjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTUxN0RENUJGMTgwREE3RDMwMDgx
NjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFBy
b2Nlc3NQcm94eS5oICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29u
dGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9OwogCQk1
MThBQ0FFQTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNBRTkxMkFFRTZC
QjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MThBQ0YxMTEyQjAxNUY4MDBCMDRCODMg
LyogV0tDcmVkZW50aWFsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxOEFDRjEwMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05
ODIsNiArOTg4LDggQEAKIAkJNTFERDlGMjgxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI2MTYzNjdEQTIwMDE1NzhFOSAvKiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTUxREQ5RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oICovOyB9OwogCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi87IH07CisJCTUxRTM1
MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFByb2Nlc3MuY3BwICovOyB9OworCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkg
LyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJNTFFNkMxNjQxRjI5MzVE
RDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFNkMxNjExRjI5
MzVDRDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5o
ICovOyB9OwogCQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dF
eHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2
MEUwMTY1NDMxN0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1
MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMTU2Nyw2
ICsxNTc1LDcgQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5NDg0OTExRkY0
QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
U2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBF
ZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKKwkJ
RTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRUYzOUMxOTBGNzkxQzAw
NzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovOyB9OwogCQlFMTFEMzVBRTE2QjYzRDFC
MDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBj
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgy
IC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyog
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJRTE1MTNDNjcxNjZF
QUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hp
bGRQcm9jZXNzUHJveHkuaCAqLzsgfTsKQEAgLTI5NzksNiArMjk4OCwxMSBAQAogCQkzRjQxOEVG
NjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0
MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzRjQxOEVGODE4
ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudHMuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
cy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMkIyMTk1MTRCRDAwNTY0
OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5NDJC
MjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlC
QTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAv
KiBXZWJDb2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
b2xvclBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzEwMSw2ICszMTE1
LDcgQEAKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQg
LyogU2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4
dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMDMyRjFB
MTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNEY1QTExRjE5RDdDRjAwNENGODIxIC8qIENv
b2tpZVN0b3JhZ2VVdGlsc0NGLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ29va2llU3RvcmFnZVV0aWxzQ0YubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMDUyMzcxMUM3M0QyMkIwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MjFD
NzNEMzdCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zMTI0LDExICszMTM5LDE1IEBACiAJCTUx
MTBBRTBBMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRh
YmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUg
LyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9y
YWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExOEU5QTMxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MTE4RTlBNDFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3Jh
Z2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTE4RTlBNTFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTFGN0QzRjFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTFGN0Q0MDFFQjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjhBNzcxMzhCNDYwOTAwQTk1
RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBTZWNJdGVtU2hpbUxpYnJhcnkuaDsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFjL1Nl
Y0l0ZW1TaGltTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE0Niw2
ICszMTY1LDcgQEAKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51
SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0
ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRC
Njk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3
ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkE5NzY2MTgwRTA1RDIw
MDM5QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MkY1ODhFMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RjEy
QTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODkwMTJBODgzODgwMDYyOTUzMCAv
KiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMTYsNiArMzIzNiw4IEBACiAJCTUxN0NGMEUx
MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBG
IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0Nh
Y2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTE3REQ1QkMxODBEQTdEMzAw
ODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1By
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3
NTRFIC8qIFNoaW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hp
bS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5
RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zMjM1LDYgKzMyNTcsNyBAQAogCQk1MUE1NTYwMDEyOEM2RDky
MDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCUmVzdWx0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENCOTAwNEJBOUFGIC8q
IFdlYklEQlJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJREJS
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjkxODBDQ0Q5MDAw
RjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3MjhEQzFC
MUJBRDJEMDAxMDJFRUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkYyMTI1QkY4MjAwMDhB
RUIxRCAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dp
bmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjQxMjVCRjhENDAwOEFF
QjFEIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjk0LDYgKzMzMTcs
MTEgQEAKIAkJNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0MwMEU1M0JF
OSAvKiBJREJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSURCVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzUx
QzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBGNUQwQjAw
RTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJv
dmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYxRjI5
MzU1MTAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0
ZW50U3RvcmFnZUlPUy5tbTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lz
dGVudFN0b3JhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTYx
MUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDQ2LDYgKzQ0NzQsNyBAQAog
CQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1l
dGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94SW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0RD
MTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMEND
QkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4
IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUGF5bWVudFByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUzNjAgLyogTmV0d29y
a0NhY2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0
d29ya0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDJFMDYw
QjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDYyMCw2ICs0NjQ5LDcgQEAKIAkJCQkxQTFEMjExNjE5MUQ5
OTVDMDAwMTYxOUYgLyogcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2ggKi8sCiAJCQkJ
QkMyRTZFNzQxMTQxOTZGMDAwQTYzQjFFIC8qIFBsYXRmb3JtICovLAogCQkJCTFBQURERjRCMTBE
ODJBRjAwMEQzRDYzRCAvKiBTaGFyZWQgKi8sCisJCQkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0Ez
IC8qIFBheW1lbnRQcm9jZXNzICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBV
SVByb2Nlc3MgKi8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3Mg
Ki8sCiAJCQkJNTEwQ0M3REExNjEzOEUwMTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzICovLApA
QCAtNDgyNSw2ICs0ODU1LDcgQEAKIAkJCQk0MUQwRkM3RDIwRTQzQTUxMDAwNzZBRTggLyogTmV0
d29yay1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNUM3QUNGRDEyMThERDhCRDAw
NENCQjU5IC8qIE5ldHdvcmstT1NYLmVudGl0bGVtZW50cyAqLywKIAkJCQlCQzgyODNBQjE2QjRC
RUFEMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2UueGNjb25maWcgKi8sCisJCQkJNTFBNjBCMjkx
ODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovLAogCQkJCUExRURE
MkRCMTg4NEI5NjQwMEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAqLywKIAkJ
CQlCQzgyODNGMjE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZyAq
LywKIAkJCQlCQzgyODNGNDE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS42NC54Y2Nv
bmZpZyAqLywKQEAgLTQ5ODIsNiArNTAxMyw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAzNDAwREQ3
QzY4IC8qIEdhbWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlvcyAq
LywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTM5MTM2MDJB
MjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50ICovLAogCQkJCTFBQUUwNThDMTI3OURDRDQwMDg1
MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAvKiBSZW1v
dGVMYXllclRyZWUgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVE
YXRhICovLApAQCAtNjI2Myw2ICs2Mjk1LDI0IEBACiAJCQlwYXRoID0gUmVzb3VyY2VzL21hYzsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM5MTM2MDJBMjE5NTE0QkQwMDU2
NDkyQSAvKiBQYXltZW50ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQkzOTEzNjAyQjIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwICovLAorCQkJCTM5MTM2MDJDMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXlt
ZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXlt
ZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMzkyRTk0MkEyMTlBMkU4
NTAwNTBGOTgyIC8qIFBheW1lbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTM5MkU5NDJCMjE5QTM5OUEwMDUwRjk4MiAvKiBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXlt
ZW50czsKKwkJCXNvdXJjZVRyZWUgPSAiPHVua25vd24+IjsKKwkJfTsKIAkJNDEzMDc1OTcxREU4
NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC02NTgyLDYgKzY2MzIsMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyog
UGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywK
KwkJCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICov
LAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50czsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50
aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02
NjM4LDYgKzY2OTgsMjAgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3Mg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlC
MTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8sCisJCQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5
IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLywKKwkJCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFByb2Nlc3MuaCAqLywKKwkJCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyog
UGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQk1MUUzNTFG
RTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywK
KwkJCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRQcm9jZXNzOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTM5QkQ1QjIxREFEQjBCQTAwRjJF
NEUxIC8qIGNhcHR1cmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtNzA2MSw2ICs3MTM1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZy5zYiAqLywKKwkJCQkzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxl
LldlYktpdC5QYXltZW50cy5zYiAqLywKIAkJCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyog
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovLAogCQkJCUE3OENDREQ5MTkzQUM5RTMwMDVF
Q0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgKi8sCiAJCQkpOwpAQCAtNzEw
OSw2ICs3MTg0LDcgQEAKIAkJCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJl
YW0gKi8sCiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJ
MzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAorCQkJ
CTM5MkU5NDJBMjE5QTJFODUwMDUwRjk4MiAvKiBQYXltZW50cyAqLywKIAkJCQkxQTZGQjdBQTEx
RTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5
RjUgLyogU3RvcmFnZSAqLywKIAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNv
bnRlbnQgKi8sCkBAIC03MjcxLDYgKzczNDcsNyBAQAogCQkJCUJDQ0YwODVDMTEzRjNCNzUwMEM2
NTBDNSAvKiBtYWMgKi8sCiAJCQkJNTEwQ0M3RTcxNjEzOEU3MjAwRDAzRUQzIC8qIE5ldHdvcmsg
Ki8sCiAJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCisJ
CQkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnRzICovLAogCQkJCTFBRUZDQzA1
MTFEMDFGMzQwMDgyMTlEMyAvKiBQbHVnaW5zICovLAogCQkJCTJEMTU1MUE5MUY1QTlCNDIwMDA2
RTNGRSAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFBRjA4OUUxOTI2ODFBQzAwQjYzOTBD
IC8qIFVzZXJDb250ZW50ICovLApAQCAtODM3MCw2ICs4NDQ3LDEwIEBACiAJCQkJNUMwQjE3NzUx
RTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAogCQkJ
CTFBMkQ4NDM3MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2Jq
ZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNTFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThF
OUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8sCisJCQkJ
NTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNDFDQkVCNjdBMDA5MDFDQ0YgLyog
UGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBMjlB
MjUxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlcy5oICov
LAogCQkJCUNEQTI5QTI2MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODY4OSw2ICs4NzcwLDE0IEBACiAJCQlu
YW1lID0gUERGOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFGRUYzOUIx
OTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNz
SU9TLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQlFNDg5RDI4MjFBMEEyQkU4MDA3OEMwNkEgLyogY2FjaGUgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtODg3NSw3ICs4OTY0LDYgQEAK
IAkJCQk3QThBOUQ1QTFFRjEzMDI5MDA5ODAxQUUgLyogQVBJSW5qZWN0ZWRCdW5kbGVCdW5kbGVD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBOEE5RDU4MUVGMTE5QjAwMDk4MDFBRSAvKiBB
UElJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3NTEyMzExREYw
REVFMjAwOEEzNTFDIC8qIEFQSUluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc2OTA3OUUxOEYzNDBBMjAwMURGRjA0IC8qIEFQSUlu
amVjdGVkQnVuZGxlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EzQUNFMUIxRUVF
Rjc5QjAwQTg2NEE0IC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0E4QTlENUMxRUYxNDU5ODAwOTgwMUFFIC8qIEFQSUluamVjdGVkQnVu
ZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTU5LDYgKzky
NDcsOSBAQAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRT
dGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZF
OTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBOTFGMjk1
OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTUxMThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxRTEyM0JBMjBBMTE1NzMwMDI2
NDZGNCAvKiBQREZDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTND
QkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4
RkIwMjE4OTEyNjQwMDI1QTg4RCAvKiBQZW5jaWxLaXRTUEkuaCBpbiBIZWFkZXJzICovLApAQCAt
OTIxNyw2ICs5MzA4LDcgQEAKIAkJCQkxQUIxNkFFMjE2NDg2NTZEMDAyOTBENjIgLyogUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMjRBMkUx
ODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBM0Q3NUMxNjUxQjQ0RjAwODcxM0QwIC8qIFJlbW90
ZUxheWVyVHJlZUhvc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0RTU3RjZCMjFBODNCMTIwMDM0
NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRERFMEFG
QTE4Mjk4Q0M5MDBGOTdFQUEgLyogUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkYyNjRBMDFBMUZGOUNDMDAxRkU3NTkgLyogUmVtb3RlTGF5ZXJU
cmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUYxQUM2
QzE2NTE3NTlFMDBDMTdEN0YgLyogUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtMTAxNTIsNiArMTAyNDQsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBj
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKKwkJCQkz
OTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBs
ZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRERDM3OTIwQkY0M0Y1MDA2
OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGlu
IFJlc291cmNlcyAqLywKQEAgLTEwNzU3LDYgKzEwODUwLDExIEBACiAJCQkJMkQ5MTM0NDcyMTJD
RjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZBRDQwMEY0OTNGRCAvKiBOUFZhcmlhbnREYXRh
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXlt
ZW50UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1
MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBODFG
Mjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNz
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDAxODBG
NUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNC
RUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBs
dWdpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2ZDBhN2I1NjkyYjExOWZjNjdmNDI3ZGQ0NzllZTE4ZDM4MTYzYzAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmgiCisKKworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
K3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1f
Y29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVj
dGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30K
KworV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQg
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVu
Y29kZXIpCit7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9z
ZWQodGhpcyk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQx
NzdmOGYyZWM3YzU1Mzg3N2QxZmI5MDQyNmQxMjNjMTZhNjIwZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgorI2luY2x1ZGUgPHBhbC9TZXNz
aW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgUEFMIHsK
K2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2
YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7
CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIAorICAg
IElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAg
IElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJl
dHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29u
dHJvbGxlci5jcHAKaW5kZXggYjBkNzAzYzUzN2YwMDc5MGM0ZmZjYTlmM2IxZDliNDFkZDA4YTQz
ZS4uN2I1ZDAwMTYwZGUzNTk5OGY1ZDU3N2E0YmYzNTU4YjE5NjUxYzZiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFdl
YlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpyZW1vdmVUYXJnZXQoSW5zcGVjdG9yOjpJ
bnNwZWN0b3JUYXJnZXQmCiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6
OmNvbm5lY3RJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwgSW5zcGVjdG9yOjpGcm9u
dGVuZENoYW5uZWw6OkNvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKQogewotICAgIEluc3Bl
Y3RvclRhcmdldCogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CisgICAgYXV0byog
dGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJn
ZXRDb250cm9sbGVyOjpjb25uZWN0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQsCiAK
IHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmRpc2Nvbm5lY3RJbnNwZWN0
b3IoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCkKIHsKLSAgICBJbnNwZWN0b3JUYXJnZXQqIHRhcmdl
dCA9IG1fdGFyZ2V0cy5nZXQodGFyZ2V0SWQpOworICAgIGF1dG8qIHRhcmdldCA9IG1fdGFyZ2V0
cy5nZXQodGFyZ2V0SWQpOwogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAKQEAg
LTkxLDcgKzkxLDcgQEAgdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6ZGlz
Y29ubmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdldEkKIAogdm9pZCBXZWJQYWdlSW5z
cGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6c2VuZE1lc3NhZ2VUb1RhcmdldEJhY2tlbmQoY29uc3Qg
U3RyaW5nJiB0YXJnZXRJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIEluc3BlY3Rv
clRhcmdldCogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CisgICAgYXV0byogdGFy
Z2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGMx
ZTAxOGY0YzE4MjgzOWYwNzYxMzIwMzYwMmRkMjgxOWE1OTIwODEuLjc0M2Y2NDRkNmViNjk4NDhj
YjE0MDI3NzVjMWJlOTQ5MDdhMzVlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTQzLDYgKzQzLDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0
YXRpc3RpY3NEYXRhLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgpAQCAtNjksNiAr
NzIsOSBAQAogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJT
b2NrZXRTdHJlYW0uaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIldl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBAIC0xMjMy
LDYgKzEyMzgsMzEgQEAgV2ViTG9hZGVyU3RyYXRlZ3kmIFdlYlByb2Nlc3M6OndlYkxvYWRlclN0
cmF0ZWd5KCkKIHsKICAgICByZXR1cm4gbV93ZWJMb2FkZXJTdHJhdGVneTsKIH0KKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlv
bikKK3sKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik7CisgICAg
QVNTRVJUKG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CisK
KyAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKK30KKworV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpCit7Cisg
ICAgaWYgKCFtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKSB7CisgICAgICAgIElQQzo6
QXR0YWNobWVudCBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXI7CisKKyAgICAgICAgaWYgKCFw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oaW5pdGlhbFNlc3Npb25JRCksIE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHko
ZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxp
ZChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgICAgICBDUkFTSCgpOworCisgICAgICAg
IG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIH0KKyAgICByZXR1
cm4gKm1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247Cit9CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2li
aWxpdHkoYm9vbCBmbGFnKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggY2RlMGI1NWEzOGI5YTQ2MDBiZTM3MjZlMmQ4ZTdmMzIxYmE3MTA5OC4uYTFiMzc2OTIxYmFm
MmMxNGRmNThlZDczNzYxYTE2NmI2NDdmZTdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC05OCw2ICs5OCw5IEBAIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xh
c3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1
cHBsZW1lbnQ7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBl
bnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOwogc3RydWN0IFdlYlBhZ2VHcm91cERhdGE7CkBAIC0xNzUsNiArMTc4LDExIEBAIHB1Ymxp
YzoKIAogICAgIExpYldlYlJUQ05ldHdvcmsmIGxpYldlYlJUQ05ldHdvcmsoKTsKIAorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiopOworICAgIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAg
IHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3Mo
KTsKQEAgLTQzNyw2ICs0NDUsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbj4gbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
aW5kZXggZjU4OGYzMmM0MjRmZTgwYTc0ZDYxZGM0Yjc4MDY4MTQxYjhlYzQzZS4uODdiYTU2Yjll
Njk0N2M4ZTkzZjVhYTYwYmVmNTJmYzQ2YWNjYjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29j
b2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVf
UEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BM
VUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YzUxZGUwNDFlMThjMjdjOTJkMGRmZThmMTVkYmEzNzI1
MTgwZTViLi4wYjgyNWM4YzJmNGE3NDVlOTY3ZmRlY2Y5OWJiZTI4NmY5ZTI3NThiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW06CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VX
b3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9j
ZXNzTmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKToKKwogMjAxOC0xMS0yNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGluc2VydCBlZGl0YWJsZSBp
bWFnZXMgd2l0aCBhIGdlc3R1cmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGY1ODhmMzJjNDI0
ZmU4MGE3NGQ2MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJl
ZjUyZmM0NmFjY2I1NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkwLDYgKzI5MCw3IEBA
IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRP
Ul9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0g
RU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BE
RktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IDNmMWE2Mjg4NjgyMTAyYTU4OTJh
MGVlZjMyYTk0NDJhMGNhZjUwODQuLmMzNDZhYmZkNjIwZjkzNTU1ZmQ4MDA1YzhhMWI0MGQ4YTlj
MDQ3YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KQEAgLTE0NCw2ICsxNDQsNyBA
QCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQp
CiAgICAgLy8gRW5zdXJlIHRoZSBzaGFyZWQgcHJvY2VzcyBwb29sIGV4aXN0cyBzbyB0aGUgZGF0
YSBzdG9yZSBvcGVyYXRpb25zIHdlJ3JlIGFib3V0IHRvIGRvIHdvcmsgd2l0aCBpdC4KICAgICBX
S1Byb2Nlc3NQb29sICpzaGFyZWRQcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQ
cm9jZXNzUG9vbF07CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9v
bCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwg
W3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIAogICAgIGF1dG8gKmRh
dGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CkBAIC0xNjgs
NiArMTY5LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05v
dExhdW5jaGVkKQogCiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5h
Z2VyXSBmaWxlRXhpc3RzQXRQYXRoOnRhcmdldFVSTC5wYXRoXSk7CiAKKyAgICBFWFBFQ1RfRVEo
KHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7
CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9j
ZXNzQ291bnRdKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCA2MWRkYmMzZDYzYTll
YTg3YzI2ZWNhMGQxYmZkNjY3NzY1NzMwOTE2Li4yNjllODZlZDY1YTlkNDZlZjMwNzNjYjlkYWE1
MTBkMWY5OWU0Zjk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMTEzMCw2ICsxMTMwLDkg
QEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAorICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyBwYXltZW50IHByb2Nlc3MgY3JlYXRlZC4KKyAg
ICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9w
YXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOworCiAgICAgLy8gTGV0J3MgdXNlIHRoZSB3ZWIgc2l0
ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNlcnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEgcGFnZS4KICAg
ICBuZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbY29uZmlndXJhdGlv
biB3ZWJzaXRlRGF0YVN0b3JlXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNWIy
NjQ2N2Q0NDk1YjhhMzI3MGM0NGI1MzQ5OGM3YTFhNzYzODNiMy4uMjFjMjQzZDRmZTMxNGRkMDE5
N2I5MGI3YjBhMzQwMGY3MDdmZmY5NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0z
MzUsNiArMzM1LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAgdm9pZCB0ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nl
c3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdDsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5k
ZXggMTkwMjFkODg0ZDE1ODExNTM4NGYxMTUwMTJiNmRmMGYxOGVhZDE2NC4uZTQ5YTk1ODUwMGQ4
OGMxNzg3NDg2OWQ5NGIwMjM3YzNjNGMxNDYwYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjkzLDYgKzEyOTMs
MTIgQEAgdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAg
ICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVs
bHB0ciwgbnVsbHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFBy
b2Nlc3MoKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVybWluYXRlUGF5bWVudFByb2Nl
c3MiKSk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3Rpbmco
SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBuZXh0VUlTY3Jp
cHRDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMgdW5zaWduZWQgY2FsbGJhY2tJRCA9IEZpcnN0
VUlTY3JpcHRDYWxsYmFja0lEOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA3Y2Q0NzZlODc1MWQ0ZGM1NjA1MTZhM2JlNjY5
MjlhYWYxNWUxZDRmLi41N2RhNzkxMzYzMWFjYmM0OGFkNjUyZTk3ODVhN2ZiNTFlNWZjNjI5IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaApAQCAtNDQ4LDYgKzQ0OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0
d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7
CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVB
bGxTZXNzaW9uQ3JlZGVudGlhbHMoSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBjYWxsRGlkUmVtb3Zl
QWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNTYzNzRmNzBjYzBmOGUzMDMzZjIxMjlkZGVhMGY4MjVm
Nzc1NmVkNS4uN2VmNzZhOTdiZGZiMTA1N2M0ODAzMTJiZmMwYWNlOTgzYmQzN2JjYiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwNzMsNiArMTA3Mywx
NSBAQCBjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NOYW1lKCkKICNl
bmRpZgogfQogCitjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1l
KCkKK3sKKyNpZiBQTEFURk9STShGQU1JTFlfSU9TKQorICAgIHJldHVybiAiY29tLmFwcGxlLldl
YktpdC5QYXltZW50cyI7CisjZWxzZQorICAgIHJldHVybiAiUGF5bWVudCBwcm9jZXNzIG5vdCBh
dmFpbGFibGUgb24gYW55dGhpbmcgYnV0IGlPUyI7CisjZW5kaWYKK30KKwogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBhbGxvd3MpCiB7CiAgICAg
V0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKHBs
YXRmb3JtQ29udGV4dCgpLCBhbGxvd3MpOwpAQCAtMTUwNyw2ICsxNTE2LDExIEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQs
IGNvbnN0IHZvaWQgKmNsCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9j
YXN0PHZvaWQqPihjbGllbnRJbmZvKSktPm5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKTsKIH0KIAor
dm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYg
Y29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0
Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+cGF5bWVudFByb2Nl
c3NEaWRDcmFzaCgpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93
bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91cykKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5Iikp
OwpAQCAtMTg0MCw2ICsxODU0LDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQoMSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBh
eW1lbnRQcm9jZXNzRGlkQ3Jhc2goKQoreworICAgIHBpZF90IHBpZCA9IFdLQ29udGV4dEdldFBh
eW1lbnRQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOworICAgIGZwcmludGYoc3Rk
ZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClcbiIsIHBheW1lbnRQcm9jZXNzTmFtZSgpLCBz
dGF0aWNfY2FzdDxsb25nPihwaWQpKTsKKyAgICBleGl0KDEpOworfQorCiAvLyBXS1BhZ2VOYXZp
Z2F0aW9uQ2xpZW50CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdE5hdmlnYXRpb24o
V0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0yNjM5LDYgKzI2NjAsMTEgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQ29udGV4dFRl
cm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKIH0KIAordm9p
ZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLQ29u
dGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKK30KKwogI2lm
ICFQTEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRl
c3QoY29uc3QgVGVzdEludm9jYXRpb24mKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IDYyNWE1YjU0NjU5MjJjN2JhZmQ5NGI3YWNjODEyNzY1N2I4YmM5MWYu
LjdmMGY3NWI0ZGJhZjVkOTFjZjQ1MDY3OTE1NjU0MzVmYzM1Zjg0MWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE4MSw2ICsxODEsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHdlYlByb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIG5ldHdvcmtQcm9jZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkYXRh
YmFzZVByb2Nlc3NOYW1lKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHBheW1lbnRQcm9jZXNz
TmFtZSgpOwogCiAgICAgV29ya1F1ZXVlTWFuYWdlciYgd29ya1F1ZXVlTWFuYWdlcigpIHsgcmV0
dXJuIG1fd29ya1F1ZXVlTWFuYWdlcjsgfQogCkBAIC0yNTIsNiArMjUzLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
KCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygpOwogCkBAIC0zNTcs
NiArMzU5LDggQEAgcHJpdmF0ZToKICAgICAvLyBXS0NvbnRleHRDbGllbnQKICAgICBzdGF0aWMg
dm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOwog
ICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOworICAgIHN0YXRpYyB2b2lkIHBheW1l
bnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBw
YXltZW50UHJvY2Vzc0RpZENyYXNoKCk7CiAKICAgICAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50
CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdh
dGlvblJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGI4ZmNkNTdiODc1OWFhZGYzY2Q3M2Q5
OTYxZjUwN2JiOGVlNDRiOGIuLjBjNGY2YTljZWMzN2IzNzA1ODMzMTRmZmM4MDkyZWU4NDA1YTEz
ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDUz
LDYgKzE0NTMsMTIgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKSB7CisgICAgICAgIEFTU0VSVCgh
bWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWlu
YXRlUGF5bWVudFByb2Nlc3MoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcyIpKSB7CiAgICAgICAgIEFTU0VSVCghbWVzc2FnZUJvZHkpOwogICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWluYXRlTmV0d29ya1Byb2Nlc3Mo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355601</attachid>
            <date>2018-11-25 12:32:26 -0800</date>
            <delta_ts>2018-11-26 14:15:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181125153224.patch</filename>
            <type>text/plain</type>
            <size>138664</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OWY3MGJjYTExMzlkMDY4NWJlZjIzNDlkYmY5NWY4MDc1NmZhNjA4Li43NWQwMzU4NTI1NTgzOGM3
OTY4ZGIwZWIwMGFiMTU4NDlhYjNmYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yMyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgZHJhZyBhbmQgZHJvcCBz
dXBwb3J0IGZvciBpT1NNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMGU0MmQ2MTZmOThjNzRmNmNlNjg0MDIz
ZmI5OTI0ZTFhOTUyZjIxLi4xNDQxMTUxODc2NWFhNWJlNDk2OGQ3Y2YzMTk0Y2M2NzYwYjczZTVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0yNSAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRv
IGluc2VydCBlZGl0YWJsZSBpbWFnZXMgd2l0aCBhIGdlc3R1cmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmlu
ZGV4IDg0OTRmMjc0NjA1ZGUwNjIwNjY4MWRlNzdhMmYzOWI1YzYzYWZjZDYuLjRlMGQ4MzlkMDIw
MDdhYzEwY2Y2ODhlOWJlM2FjNTA4Y2E1NjU5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgor
CisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTI0ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFNPRlRfTElOS19DTEFTU19GT1Jfe0hF
QURFUixTT1VSQ0V9IHNob3VsZCBnZW5lcmF0ZSBhIG1vcmUgY29uY2lzZSBnZXR0ZXIgZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZWM5ZDVjMGMzMjU3MWQ3MzNmMWNhMmQ1NzNjZjIzMzA5MjhlNTUzYi4u
MTdlMzdjZDE3NDFkZmE5YWRhOGQwOGQ0NTQ1ZmQ5NWFhYzRiMmUxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+
CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZzoKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmguCisgICAgICAgICogUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6
CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29u
dGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFs
aXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6
ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFBy
b2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRUZXJt
aW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vz
c0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAg
ICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgorICAgICAg
ICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpz
ZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNz
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVQYXltZW50UHJvY2Vz
c0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXlt
ZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6
flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1By
b3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRG
aW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJv
Y2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRDbGllbnQ6OnBh
eW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xp
ZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVC
cm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9Q
YXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9Q
YXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFy
YW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9z
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuaGFuY2Vk
QWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnN0
YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5j
cmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQVUxpbWl0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BVTW9uaXRvclN0YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFnZUFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldEFsbEdl
b2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2FuY2VsTWFya0FsbExheWVy
c1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0QWxs
TGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXJGaXJlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1vcnlDYWNoZURpc2FibGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0RW5hYmxlZFNlcnZpY2Vz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlQXV0b21hdGlv
blNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRl
c3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlhRGV2aWNlcyk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTgtMTEtMjUgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZUxheWVyVHJlZU5v
ZGUgY29uc3RydWN0aW9uIGNsZWFudXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NmRhYzYwOWEwNzZhZjZhMTFlOWYwODI2ZTU1MTg4NWU4Y2IzOTczNS4uMWMxNTA4MDFlMTc0YjVi
MDYyM2M0ZmE0ZDViN2U3ZjQ3YjkwNzEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUu
Y29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTI1ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gaW5zZXJ0IGVkaXRhYmxlIGltYWdlcyB3aXRoIGEgZ2VzdHVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4MGE3NGQ2MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3
YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUyZmM0NmFjY2I1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVf
Y29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklD
QVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVO
QUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFC
TEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9Q
QVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lU
X1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZjU4OGYzMmM0MjRm
ZTgwYTc0ZDYxZGM0Yjc4MDY4MTQxYjhlYzQzZS4uODdiYTU2YjllNjk0N2M4ZTkzZjVhYTYwYmVm
NTJmYzQ2YWNjYjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9O
RTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BM
QVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJ
RklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lO
ID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44
N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0yOTAsNiArMjkwLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29h
dG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9O
UyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BB
WU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVO
VF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVH
SU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxp
emFibGUuc3RyaW5ncwppbmRleCAxZWQ3OGNlMDU5N2JkMzBmZmM0NWMxMzEyYjUxNjU2NzAwODA3
NmQ4Li41NWVhNTI3ZDE0NDU3ZWZkNWI5ZTRhODk4MGRjNmJkNzdiYmNmOWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAK
IC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAi
JUAgU2VydmljZSBXb3JrZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVu
dCBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAg
UGF5bWVudHMiID0gIiVAIFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIg
cHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdl
YiBDb250ZW50IiA9ICIlQCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYx
NjE1NDI3MzI2ZDg4YmFhZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEz
ODg2YjVkNDhiNjZkMzFmMDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUs
NyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9O
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNz
L3dhdGNob3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAg
ICIke1dFQktJVF9ESVJ9L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRm
b3JtIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElS
fS9QbHVnaW5Qcm9jZXNzIgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIK
ICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvR2FtZXBhZCIKKyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS94MTEiCkBAIC00NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
UGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9Vc2VyQ29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29j
a2V0Lm1lc3NhZ2VzLmluCiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNz
YWdlcy5pbgorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCisKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgog
ICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1
MSw2ICsxNTcsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nl
c3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIyMSw2ICsyMjksMTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdl
YktpdAogKQogCitzZXQoUGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisK
IHNldChQbHVnaW5Qcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2Ji
YjAxMmEzOWU2NWRhOGJhOGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRj
ZmRiMjA2YTRkNjNjZjNlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvQmFzZVRhcmdldC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0Jhc2VUYXJnZXQueGNjb25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJF
RElDVElPTltzZGs9bWFjb3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9O
X0RFRklORVMgPSAkKFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BS
RURJQ1RJT04pKTsKIFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9Q
UkVESUNUSU9OOwogCitXS19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxl
LldlYktpdC5QYXltZW50czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQo
V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9T
RVJWSUNFX05BTUUpKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19T
VE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9E
VUNUX05BTUVfTk8gPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4
ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNm
NWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJM
RV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRf
UExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29u
ZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdmN2IxODliNDI2MjQ5NDAxMjU4OWJhMDE3MTg1YTkzODE0NmY0Y2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnCkBAIC0wLDAgKzEsMzMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisv
LyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BB
WU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CisKK0NPREVfU0lHTl9FTlRJVExF
TUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNU
RURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lHTl9G
TEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BST0RV
Q1RfTkFNRSA9ICQoV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JV
TkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZDY3ZDQ4YzY0ZDcyOWJjZmVlODBmNWFjNDBm
NGU3YzNlYmM3NzMyNC4uZDMxNzVhZDhiMGIzMmM3ZjU2NjZhNmIzYmQyN2UzZDkyNjUyMmJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzAsNiArMzAsNyBAQCBWUEFUSCA9IFwK
ICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlciBcCisgICAgJChXZWJLaXQyKS9QYXltZW50UHJvY2VzcyBcCiAgICAgJChX
ZWJLaXQyKS9QbHVnaW5Qcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MvbWFj
IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKQEAgLTczLDYgKzc0LDcgQEAgVlBB
VEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQy
KS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BheW1lbnRz
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3Jh
Z2UgXApAQCAtMTIxLDYgKzEyMywxMCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBOZXR3
b3JrU29ja2V0U3RyZWFtIFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyIFwKICAgICBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAorICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyIFwKKyAgICBQYXltZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFByb2Nlc3NQcm94eSBcCisg
ICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24g
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZWZhY2Y0ZmJiMTQ3MmFjZmJlMGY0NjE3NTA4MGZlMjk2NzQwYTJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
cy5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3Mu
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQ
YXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAgIHJldHVybiBwcm9j
ZXNzOworfQorCitQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQoreworfQorCitQYXlt
ZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQorewor
ICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisK
K2Jvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmICht
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcikp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewor
ICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgeworICAgICAgICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2Vydmlj
ZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3Jp
Z2luKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZiM2ExNzM1ODM1
NDQ0MjM0ZjU5Y2M2YTU0NDk0ZTdmNzdhODMyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApAQCAtMCwwICsxLDY5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3Qg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNz
IDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVu
dFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz47Citw
dWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0
aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1l
bnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1l
bnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworcHJp
dmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAg
dm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAg
ICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAg
IHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VX
b3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThiOTE0ZmM0YThmNDQ3MThjZmExMjU3NmQz
MzhkYWU1OTJhYTBlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgeworICAgIAorfQorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRjNDc0YzliYzc5ZjRiZjM4NmI2YTI3OGEzODcwYWFjZjNjY2NhMWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNv
bm5lY3Rpb25JZGVudGlmaWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykp
Cit7CisgICAgLy8gRklYTUU6CisgICAgLy8gVXNlIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRN
ZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3Vj
aEFNZXNzYWdlKHRydWUpCisgICAgLy8gdG8gcHJldmVudCBkZWFkbG9jayB3aGlsZSB1c2luZyBz
eW5jaHJvbm91cyBtZXNzYWdlcworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5k
aWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3Zv
aWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShj
b25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNF
RF9QQVJBTShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsKKyAgICBVTlVTRURfUEFSQU0obWVzc2FnZU5h
bWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0OWE5ZWI0
YTEzNzY0NDExNmNhY2VkMDM4MzA3YWIzNDA4MWNmZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJN
ZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6
Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAg
IH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6
CisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9
CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJl
dHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzA0YzBkYmMyNDc1NDIxN2M3ZDlhM2MwNGI4NDBlM2QyMjNkYmMyNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3Nh
Z2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5
bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXlt
ZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTVlMzcwZjU0ODU0MjczZDMzODRhZmRkYjU2
ZTYxYzY4Mzk1NjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNp
ZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0ICJT
YW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVB
TF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxp
emVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5k
Ym94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7
CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBv
dmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5k
bGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9y
Q2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFt
ZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZv
clJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7Cisg
ICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFy
YW1ldGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRi
b3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MDY3MmM2ODZiMTY2N2FkOTdmNWRmZDc1YTRiM2E3YmRjMDYwN2IzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUu
V2ViS2l0LlBheW1lbnRzLnNiCkBAIC0wLDAgKzEsMzIgQEAKKzsgQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7IG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cis7
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworOyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKzsgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRp
YWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRhZGF0
YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1sb29rdXAgKHhwYy1zZXJ2
aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVuKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGls
ZFByb2Nlc3MuaAppbmRleCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdhNjFmZmFiZGYzNzY5
Li41ZDBjYzZlMmY1NGQzNjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIFdl
YkNvbnRlbnQsCiAgICAgICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQogICAgIH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcwODMzMTJjZjg4ZjdkZjk2NDliMmQzNjJiZDc0NjExMTAwZjgz
MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVk
ZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygp
Cit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7
Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1
bHQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBhMDlhYjdlZmQ3ZjIwOTRmZTZkNjdlZjQ1Yjlm
Mzg0NjczN2FlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1l
bnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xhc3Mg
RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMoKTsKKworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRp
YyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYpOworCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRj
NzJlNTgyYWJlMzBmNDg3OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2
NzAxNzkxZjBjZTlhYWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgKQEAgLTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcg
ZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1
Z2luUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1l
bnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CmluZGV4IDg3NjZkZmQzMDIwOTYzMWQzOThhNTM5ODM4Y2VhOWZjMDRhODc3ZmEuLmVh
YTJjM2U2NzUzZTNiOThhODRiZmM1M2ViYjA4Mzg1MWFkYzY5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAt
NzksNiArNzksOSBAQCBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1JlcGxh
eS5jcHAKIAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCiAK
K1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcAorUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisKIC8vIFRPRE86IFdlIHNob3VsZCB1bmlmeSB0
aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0Zm9y
bS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAgQG5vLXVuaWZ5CkBA
IC0yMDcsNiArMjEwLDggQEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0
LmNwcAogCiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorU2hhcmVkL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIC8vIFRPRE86IFRoZXNlIGZp
bGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVtb3Zl
ZC4KIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwIEBuby11bmlmeQogU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwIEBuby11bmlmeQpAQCAtMzgwLDYg
KzM4NSw4IEBAIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAogCitVSVBy
b2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5J
bmZvU3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAK
QEAgLTQ4MCw2ICs0ODcsOCBAQCBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tl
dC5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAKIAorV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKKwogLy8gVE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25j
ZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbi5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDZhYzhmZWMxNmNl
OTJlYmZhNzE2ZGUzMmJhMDQ1NzlhZmQyMzc1N2YuLjc4MzQ1N2VmMGJiNGRiZTUyZTQzOTY2ZTE2
ZDE1OTBiMDJiZjg5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4Miw2ICsxODIsOCBA
QCBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMvV2ViSGl0VGVzdFJl
c3VsdERhdGEubW0KIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KIAorUGF5bWVu
dFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCisKIFNoYXJlZC9QbHVnaW5zL21hYy9Q
bHVnaW5TYW5kYm94UHJvZmlsZS5tbQogCiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwCmluZGV4IDg3MDE2YWI3NThlYmMxMmQzOThkZmZkM2MwNWI4ZjIxYWI1MDUy
NjguLmZhNzE4OTEzNWJlM2E5YzEwZWE4N2I4MDljYWQxZGJiMzI5MDVjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNjIxLDExICs2MjEsMjcg
QEAgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRS
ZWYgY29udGV4dCkKICAgICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzZXMoKTsKIH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhX
S0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29udGV4
dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsK
ICAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIo
KTsKIH0KIAorUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihX
S0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigp
OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorfQorCiB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZiwgV0tTdHJpbmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS0Fy
cmF5UmVmIG1pbWVUeXBlc1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IDQ2ZDM3ZTFlOGExNTg5NTgwYTM1NTM4ZWU1
ZjZmOWJjMmQ4MGUyMmMuLjQwZGFjZWI1N2M5MWMyNjQzNTViYWJkNmFlMzVkMjhhNDI3ZTYyNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmgKQEAgLTkzLDYgKzkzLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdv
cmtQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAorV0tf
RVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVm
KTsKKwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVG
b3JXZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5n
KFdLQ29udGV4dFJlZiwgYm9vbCk7CiAKQEAgLTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiBX
S19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCk7CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0Nv
bnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwor
V0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmll
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFkZFN1
cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWluLCBX
S1N0cmluZ1JlZiBuYW1lLCBXS0FycmF5UmVmIG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRlbnNp
b25zKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhXS0Nv
bnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IGNkOTAyNWU3ZWJhOGU2YzJhZGIyYmZmNTA3Y2E4
ZGM0NDM4NmU3YjEuLjg0MWZkNTI3Y2JmNjkxY2E0ODZkMWY3MDIwYWZjY2JmM2M4YTZlNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCkBAIC00MjQsNiArNDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwog
ICAgIF9wcm9jZXNzUG9vbC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQp
X3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1pbmF0
ZU5ldHdvcmtQcm9jZXNzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcygpOwpAQCAtNDQ0LDYgKzQ1MSwxNSBAQCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVu
dGlmaWVyCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KCk7CiB9CiAKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQcm9j
ZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gKHBpZF90KTA7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNz
Q29va2llcwogewogICAgIF9wcm9jZXNzUG9vbC0+c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaAppbmRleCA0ZDNhMTkxMjBhYmQ0OWVlZTA0OTI3OTRhNzdmNGFmYjA2
Y2RlOTBjLi40Yjk2ODE5Y2IzOWQ2MWVlYWI5NTljNTJhNjEwMzM1MDM2MmE1NTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaApAQCAtODQsMTIgKzg0LDE1IEBACiAtIChfV0tEb3dubG9hZCAqKV9yZXN1bWVE
b3dubG9hZEZyb21EYXRhOihOU0RhdGEgKilyZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0
aCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRl
bnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgorLy8gTk9URTogVGhpcyBpcyBvbmx5IGF2YWlsYWJs
ZSB3aGVuIFBBWU1FTlRfUFJPQ0VTUyBpcyBFTkFCTEVECistICh2b2lkKV90ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJt
aW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsK
IAogLy8gVGVzdCBvbmx5LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChwaWRfdClfcGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3ND
b3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4
IGUwN2RiYTI3MmEyZTE1YmU4MjlkZTIzNGM1ZGQ1MGQ1NzM4ZTFhMGMuLjE0YTM5ZmE4Y2U3NWE1
OWMzMWExODY4M2RjYWQwNjUxODBkZjNkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01OCw2ICs1OCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgUGx1Z2luNjQsCiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tCmluZGV4IDZjYmFjMjVkNzg0YzBlZWVhNThhNjg0YWI0Njg0NDVhZTJl
MzkyNjIuLjg0Njc2NDU3OWU2MTk2ZjcwZmQwNDdmNDNkYWZiOWM2ZDk0ZDE2NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQpAQCAtNjIsNiArNjIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZp
Y2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8K
ICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAgICAg
ICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBl
OjpQYXltZW50OgorICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVmNDY1MWRiYzRjOTEzOTRlY2Q3YTNkNWUyNDY1OWJiNjAzMDNjMDUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXlt
ZW50UHJvY2Vzc1Byb3h5LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NQcm94eS5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRl
RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGF5bWVudFByb2Nlc3NQcm94
eTo6UGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCisgICAg
OiBDaGlsZFByb2Nlc3NQcm94eShwcm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJp
b3JpdHkoKSkKKyAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCisgICAgLCBtX251bVBl
bmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKK3sKKyAgICBjb25uZWN0KCk7Cit9CisKK1BheW1l
bnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KCkKK3sKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKK3sKKyAgICB0ZXJtaW5hdGUo
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nl
c3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBsYXVuY2hP
cHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVu
dDsKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25z
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rp
b24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAg
ICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOworCisg
ICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5jaGluZykgeworICAgICAgICBtX251bVBlbmRp
bmdDb25uZWN0aW9uUmVxdWVzdHMrKzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJv
b2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBzZWN1cml0eU9yaWdpbjsKKworICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpD
cmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNz
LCBzZWN1cml0eU9yaWdpbiksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZl
bldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQoreworICAgIGF1dG8gcHJvdGVjdGVkUHJvY2Vz
c1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bvb2wpOworCisgICAgLy8gVGhlIHBheW1lbnQgcHJv
Y2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3lu
YyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAgd2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9u
UmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5l
Y3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IH0KKyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQg
cHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQ
b29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25u
ZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBh
eW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxh
dW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIp
Cit7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwg
Y29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50
aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTog
RG8gYmV0dGVyIGNsZWFudXAgaGVyZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsr
aSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBl
bmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkNmMxYjk3YTAwMGZmZDkwNzU2ZGIxYzc0NjQ1ODQwYTU4ZjI4NDAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3Mg
V2ViUHJvY2Vzc1Byb3h5OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vi
c2l0ZURhdGE7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hp
bGRQcm9jZXNzUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJv
eHkoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAgICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAor
ICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOworCisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisKK3ByaXZh
dGU6CisgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcm9j
ZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAg
dm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBk
aWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1l
bnQmKTsKKworICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRGaW5p
c2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KSBvdmVycmlkZTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisgICAg
dW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjMxMGNmY2Q1MTYyZWM0N2NlYTI5MzFkNjg0
NzliOTBhMTA1NDc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBA
CisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94eSBMZWdhY3lSZWNl
aXZlciB7CisgICAgRGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHAKaW5kZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uYmVj
NzliNTRjYmY2YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQgKzQ2LDExIEBAIHZvaWQg
V2ViQ29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCog
cHJvY2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShw
cm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2
ZDRlZThkNzc4ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFi
OWVkY2M4NDUzOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5oCkBAIC00NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQ
STo6Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lk
IG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNz
UG9vbCopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5
MzRmYTYuLjJjNmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiAr
MjksMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQ
b29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikK
ICAgICB7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmly
dHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7Cisg
ICAgfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNz
UG9vbCogcHJvY2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAg
dm9pZCBjbGVhclByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDdkNGFjMzcyNjNi
NWQzODI4MDg3Y2VjODNkMjA4M2M3NDNkNjA1YzUuLjk4OGZiYzYxYWJhNTkzMGMxMjZmN2Y4OWEy
OTMwMTgzNmI5ZjBlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0
aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBh
ZFByb3ZpZGVyLmgiCkBAIC00NDIsNiArNDQ2LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2Vu
ZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFBy
b2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVF
dmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6
OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkp
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3Mo
TWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXND
cml0aWNhbCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRv
bigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MTcs
NiArNjI0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShy
ZXBseSkpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nl
c3MpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQ
cm9jZXNzUHJveHk+KCp0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwg
UEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sK
KyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsK
K30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQ
cm9jZXNzUHJveHkmIHBheW1lbnRQcm9jZXNzUHJveHkpCit7CisgICAgQVNTRVJUKG1fcGF5bWVu
dFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1Byb3h5ID09IG1fcGF5bWVudFBy
b2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50
cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vzc0RpZENsb3NlKHBheW1lbnRQ
cm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFByb2Nlc3NEaWRDcmFzaCh0aGlz
KTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAgICAgICBtX2F1dG9tYXRpb25T
ZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOwor
fQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYgcHJveHksIFNlY3Vy
aXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lv
bklEPiBzZXNzaW9uSUQpCiB7CkBAIC02OTMsNiArNzMwLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHBy
aXZhdGUKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpB
ZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpsZWdhY3lQcml2
YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5ldHdvcmtQ
cm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgc2VuZFRvUGF5
bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKSk7CiAgICAgfQogfQpAQCAtMTM1MSw2ICsxMzkxLDE1IEBAIFZlY3RvcjxTdHJpbmc+IFdl
YlByb2Nlc3NQb29sOjphY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFBy
b2Nlc3NJCiAgICAgfQogICAgIHJldHVybiB7IH07CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVy
KCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0
QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkK
IHsKQEAgLTE2MjIsNiArMTY3MSwxNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhckNhY2hl
ZENyZWRlbnRpYWxzKCkKICAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKICAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQ2FjaGVkQ3Jl
ZGVudGlhbHMoKSwgMCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3Zv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpCit7
CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Bh
eW1lbnRQcm9jZXNzLT50ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgbV9wYXltZW50UHJvY2Vz
cyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZDI4NDNmZjY2ODI4Zjk1NTZmYzIz
YjcxMzBjYjg0NmFhYTdhNmQ3YS4uMzExNmJlZGJhOTczNTRjMGFjYjY3YjRmMTY3NzQ1ZTU3YTQ3
Zjk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MCw2
ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzUmVxdWVzdC5oIgor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94
eS5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVmlzaXRl
ZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDbGllbnQuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgpAQCAtMTczLDYgKzE3NiwxMiBAQCBwdWJsaWM6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gdm9pZCBzZW5kU3luY1RvTmV0
d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBseSk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nh
cnkoVCYmIG1lc3NhZ2UpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAvLyBT
ZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9yIFBheW1lbnRQcm9jZXNzIGFzIGFwcHJv
cG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLgorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3MoVCYmIG1lc3NhZ2UpOworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KFQmJiBtZXNzYWdlKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAg
ICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSopOwogCiAg
ICAgLy8gRGlzY29ubmVjdCB0aGUgcHJvY2VzcyBmcm9tIHRoZSBjb250ZXh0LgpAQCAtMjE3LDYg
KzIyNiw5IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzSUQgbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KCk7CiAgICAgVmVjdG9yPFN0cmluZz4gYWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9y
VGVzdGluZyhQcm9jZXNzSUQpOwogICAgIGJvb2wgbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVu
dEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VHcm91cCYgZGVmYXVsdFBhZ2VHcm91
cCgpIHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQoKTsgfQogCkBAIC0yNzYsNiArMjg4
LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJT
b2NrZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKTsKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3NG
b3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB2b2lk
IHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyUHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJt
aW5hdGlvbkRlbGF5KCk7CkBAIC0zNDQsNiArMzU5LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5
JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGVuc3VyZVBheW1l
bnRQcm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3MoKSB7
IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9CisgICAgdm9pZCBnZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNl
c3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0NyYXNoZWQo
UGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4p
OwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBAIC02NDMsNiArNjY0LDkgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24g
eyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2ggeyBmYWxzZSB9Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBtX25ldHdvcmtQcm9jZXNz
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1l
bnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0aW9uYXJ5Q2Fs
bGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CkBAIC03NDQsNiAr
NzY4LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVs
YXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAgICBtX25ldHdvcmtQcm9jZXNzLT5z
ZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNl
bmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQoreworICAgIGlmIChtX3BheW1lbnRQcm9j
ZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIG1fcGF5
bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9j
ZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKK3sKKyAgICBlbnN1cmVQYXlt
ZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+
KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvQWxsUHJvY2Vz
c2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA3YjYxZWYyNTIzZDJjOWIxMjBhY2M2MWM1ZTQ5YmExOTU1NDNh
NDJhLi43NzkyYWYxNGY2M2NhMmFlYjQ2MGZmOGUxNTNiMmM2NjIyZThlMjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTYyOCw2ICs2MjgsMTIg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3Byb2Nlc3NQb29sLT5nZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVwbHkpKTsKIH0KKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShyZXBseSkpOworfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiBib29s
IFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBkYmMyMmE1YTljOWEyMWJh
YzNkZGMyZmEyZjRiZjhjMDBkNGJiNWQxLi45MmE2ZGY4ZTgzZjEzZmZjNjRjYzQwYjRjMDRlZjQx
N2U3YmYxNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApA
QCAtMjg3LDYgKzI4Nyw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9u
SUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7
CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA2YTk4ZjRlOTYwNDdkYWJmMTY0YTc2MTBhODdmMmE5ZjY4NjBiNDhhLi44ZjVlMWQ2
NjYwYjE1MGQ3NTczMGE2M2UxZjA5M2Q0M2Y2YTM2ZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw5
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgR2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAo
SVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25v
dXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVk
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkgLT4gKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nlc3NT
dXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBiOTBjMTQyNDE3NmM2NTE1ZTdlZTRh
NTYyMmI4ZWM2ZWJlMjZjMzgxLi44YTc5ZDRmZDg5YmI0YzI0NjJhMDJkNzJlYjQ3N2U2ZDE3OGNk
OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRlICJNb2Nr
QXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5j
bHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKQEAgLTEz
NSw2ICsxMzksOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAgICAg
ICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldChtX3Nlc3Npb25JRCkgPT0gdGhp
cyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVzKCkucmVtb3ZlKG1fc2Vzc2lvbklEKTsK
ICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9j
ZXNzUG9vbHMoKSkgeworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgICAgICBk
ZXN0cm95UGF5bWVudFByb2Nlc3NTZXNzaW9uKHByb2Nlc3NQb29sKTsKKyNlbmRpZgogICAgICAg
ICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9j
ZXNzKCkpCiAgICAgICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnJlbW92ZVNlc3Npb24obV9z
ZXNzaW9uSUQpOwogICAgICAgICB9CkBAIC0xMzIyLDYgKzEzMjksMTMgQEAgdm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYKICAgICB9CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZGVzdHJveVBh
eW1lbnRQcm9jZXNzU2Vzc2lvbihXZWJQcm9jZXNzUG9vbCogcG9vbCkKK3sKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorICAgIHBvb2wtPnNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2Vz
OjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24obV9zZXNzaW9uSUQpKTsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorICAgIAogdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpyZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKQog
ewogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKQEAgLTE2MjYs
NiArMTY0MCwxOSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAogICAgIGNhbGxiYWNrKCk7CiB9
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGF5bWVudFByb2Nlc3NQYXJhbWV0ZXJzKCkKK3sK
KyAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOworCisgICAgUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIHBhcmFtZXRlcnMuc2Vzc2lv
bklEID0gbV9zZXNzaW9uSUQ7CisKKyAgICByZXR1cm4gcGFyYW1ldGVyczsKK30KKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBXZWJz
aXRlRGF0YVN0b3JlOjpwZW5kaW5nQ29va2llcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvcHlU
b1ZlY3RvcihtX3BlbmRpbmdDb29raWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA4NTJiNmJiNWQzNmZi
YjZlOTU5OTJlODgyNDY4YjI2YmRkOTA3MTU5Li41YTYzNjM5NDliNmVmMDYzYzkwMjU0ZTZhYThk
OWY0YjRjOTk4NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02Niw2ICs2Niw5IEBAIGNsYXNzIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9w
dGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IE1vY2tXZWJBdXRoZW50
aWNhdGlvbkNvbmZpZ3VyYXRpb247CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3N0cnVj
dCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xNzEsNiArMTc0LDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlByb2Nlc3NQb29sJikgY29uc3Q7CiAKICAg
ICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJzKCk7CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXlt
ZW50UHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIHZvaWQgZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbihXZWJQcm9jZXNzUG9vbCop
OwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcGVuZGluZ0Nvb2tpZXMoKSBjb25zdDsK
ICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyODE5
MDY5M2QzYTNmZWZmZWIwZWVjYjY1YjZmMzRhMmI4OTQ5NGIzLi4yZmZjYjczNzYxNzczNTE2Y2Ix
NDgzMGRjODZjZTVlNDgxZDlhYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0Niw2ICs4NDYsNyBAQAogCQkzN0Y5MERFMzEzNzY1
NjBFMDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8q
IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENG
QTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENG
QTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEw
MDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0
NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKKwkJMzkxMzYwMjUy
MTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5MTM2MDI0MjE5M0MxNDMw
MDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovOyB9OwogCQkzRjQxOEVG
OTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQx
OEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNG
ODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2
MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKQEAgLTkwNCw2ICs5MDUsMTAgQEAKIAkJNTEw
RjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5NzkxRERENzg1NDAw
MzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0
YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxMThFOUE4MUYyOTU5NzcwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBOTFG
Mjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTExOEU5QUExRjI5NTk3NzAw
M0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAw
M0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owor
CQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlB
MjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07
CiAJCTUxMUY3RDQxMUVCMUJDRjUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjdE
NDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi87IH07
CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2
MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLzsgfTsKIAkJNTExRjhBODExMzhC
NDg1RDAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBT
ZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CkBAIC05NTUsNiArOTYwLDcgQEAKIAkJNTE3Q0Yw
RTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBG
IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oICovOyB9OworCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nl
c3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLzsgfTsK
IAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBG
NzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0
QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3Rl
Y3Rpb25TcGFjZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNTE4QUNGMTExMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0Yx
MDEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTgyLDYgKzk4OCw4IEBACiAJCTUx
REQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MUREOUYyOTE2MzY3REEyMDAx
NTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjcxNjM2N0RBMjAw
MTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsK
IAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxQzkxODBGMkNDQzAwRTUz
QkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9OworCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkg
LyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNw
cCAqLzsgfTsKKwkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZDMTY0MUYyOTM1REQwMEZEMzQzNyAvKiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0Yx
NTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBD
MUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIg
LyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291
cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTE1NjcsNiArMTU3NSw3IEBACiAJCUQzQjk0
ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNl
YXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICov
OyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURF
MDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07CisJCUUxMTVDNzE0MTkwRjg5RTQwMEVD
QzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJv
Y2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBs
ZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGls
ZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi87
IH07CkBAIC0yOTc5LDYgKzI5ODgsMTEgQEAKIAkJM0Y0MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8q
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVG
RCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThFRjgxODg3QkQ5NzAwMjc5NUZEIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTM5MTM2MDI0MjE5
M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5MTM2MDJCMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5
MTM2MDJDMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTJFOTQyQjIxOUEzOTlBMDA1MEY5ODIgLyog
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzky
RTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8q
IFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3
QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMDEsNiArMzExNSw3IEBACiAJCTRGNjAxNDMwMTU1
QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGli
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0u
ZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJC
MTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyog
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMDRGNUExMUYxOUQ3Q0YwMDRDRjgyMSAvKiBDb29raWVTdG9yYWdlVXRpbHNDRi5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VV
dGlsc0NGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MTFDNzNEMjJC
MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzIxQzczRDM3QjAwNzk5M0NCIC8qIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwpAQCAtMzEyNCwxMSArMzEzOSwxNSBAQAogCQk1MTEwQUUwQTEzM0MxNkNCMDA3Mjcx
N0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxMThFOUEyMUYy
OTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTQx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUx
MThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTYx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9y
YWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5
QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdEM0Yx
RUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdENDAxRUIxQkNFRTAwRTQ3
QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxp
YnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2VjSXRlbVNoaW1MaWJy
YXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNDYsNiArMzE2NSw3IEBACiAJCTUxMjkz
NUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RTEyQTg4Mzg4MDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zMjE2LDYgKzMyMzYsOCBAQAogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9DYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1l
bnRQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdERDVC
RDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFNoaW0ueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjU5MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250
ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250
ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjVBMTI3Q0I4
OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzIzNSw2ICszMjU3LDcgQEAKIAkJNTFBNTU2MDAxMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4
dE1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250
ZXh0TWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3
RTFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQlJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxQTU4NzdGMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSURCUmVzdWx0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2Vy
dmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQYXltZW50U2VydmljZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNzI4REMxQjFCQUQyRDAwMTAyRUVFIC8qIFdL
QnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUE3RjJGMjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI5NCw2ICszMzE3LDExIEBACiAJCTUxREQ5RjI3MTYz
NjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQk1MUUzNTFDODE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlV0aWxpdGllcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAv
KiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZBMTgwRjVEMEIw
MEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50
UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZCMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJv
Y2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQzE4MEY1RDBCMDBF
NTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3Mu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZEMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzOTkwNTFENkY1
NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTVGMUYyOTM1NTEwMEZEMzQzNyAvKiBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHBh
dGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyog
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDQ0Niw2ICs0NDc0LDcgQEAKIAkJRTFFNTUyQzMxNkFFMDY1RTAw
NEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5QjFBQzFBREI2
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8q
IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ2MjAsNiArNDY0OSw3IEBACiAJCQkJMUExRDIxMTYxOTFEOTk1QzAwMDE2MTlGIC8qIHBvc3Rw
cm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoICovLAogCQkJCUJDMkU2RTc0MTE0MTk2RjAwMEE2
M0IxRSAvKiBQbGF0Zm9ybSAqLywKIAkJCQkxQUFEREY0QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hh
cmVkICovLAorCQkJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAq
LywKIAkJCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQcm9jZXNzICovLAogCQkJCUJD
MDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovLAogCQkJCTUxMENDN0RBMTYx
MzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKQEAgLTQ4MjUsNiArNDg1NSw3IEBA
CiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3guZW50
aXRsZW1lbnRzICovLAogCQkJCTVDN0FDRkQxMjE4REQ4QkQwMDRDQkI1OSAvKiBOZXR3b3JrLU9T
WC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJQkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdv
cmtTZXJ2aWNlLnhjY29uZmlnICovLAorCQkJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQ
YXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlBMUVERDJEQjE4ODRCOTY0MDBCQkZFOTgg
LyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8sCiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAw
QTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25maWcgKi8sCiAJCQkJQkM4MjgzRjQxNkI0
RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQueGNjb25maWcgKi8sCkBAIC00OTgyLDYg
KzUwMTMsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2OCAvKiBHYW1lcGFkICovLAog
CQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkMxMTFCNUExMTJG
NjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQkzOTEzNjAyQTIxOTUxNEJEMDA1NjQ5MkEgLyog
UGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0MTggLyogUGx1Z2lucyAqLywK
IAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJ
CTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0YSAqLywKQEAgLTYyNjMsNiAr
NjI5NSwyNCBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9tYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQkzOTEzNjAyQTIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudCAqLyA9
IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzkxMzYwMkIyMTk1
MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywK
KwkJCQkzOTEzNjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudDsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CisJCTM5MkU5NDJBMjE5QTJFODUwMDUwRjk4MiAvKiBQYXltZW50
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzkyRTk0
MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAq
LywKKwkJCQkzOTJFOTQyQjIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaCAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudHM7CisJCQlzb3VyY2VUcmVl
ID0gIjx1bmtub3duPiI7CisJCX07CiAJCTQxMzA3NTk3MURFODRFRDcwMDM5RUM2OSAvKiB3ZWJy
dGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjU4Miw2
ICs2NjMyLDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1lbnRzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdERDVCQzE4MERBN0QzMDA4
MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8sCisJCQkJNTE3REQ1QkQxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLywKKwkJCQk1MTJBOTc2NjE4MEUw
NUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQlwYXRoID0gUGF5bWVudHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0aGVudGljYXRpb24gKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjYzOCw2ICs2Njk4LDIwIEBACiAJ
CQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTFGN0RD
MEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNzICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5QjE5MEY3OTFDMDA3MzE2NTggLyog
aW9zICovLAorCQkJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5j
cHAgKi8sCisJCQkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmgg
Ki8sCisJCQkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLm1lc3Nh
Z2VzLmluICovLAorCQkJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTFFMzUxRkUxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8sCisJCQkJNTEwMzJGMUExODBGNzRG
MTAwOTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICov
LAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCTUzOUJENUIyMURBREIwQkEwMEYyRTRFMSAvKiBjYXB0dXJlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTcwNjEsNiArNzEzNSw3
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE3OENDREQ4MTkz
QUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgKi8sCisJCQkJ
MzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2Ig
Ki8sCiAJCQkJQTc4Q0NERDcxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3Rv
cmFnZS5zYiAqLywKIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiICovLAogCQkJKTsKQEAgLTcxMDksNiArNzE4NCw3IEBACiAJCQkJ
NEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFtICovLAogCQkJCTUxMDVCMEQy
MTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5
REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKKwkJCQkzOTJFOTQyQTIxOUEyRTg1MDA1
MEY5ODIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBs
dWdpbnMgKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJ
CQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLApAQCAtNzI3MSw2
ICs3MzQ3LDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBDNjUwQzUgLyogbWFjICovLAogCQkJ
CTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3b3JrICovLAogCQkJCTMxQTJFQzQwMTQ4
OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovLAorCQkJCTUxN0RENUJCMTgwREE3QzQw
MDgxNjYwQiAvKiBQYXltZW50cyAqLywKIAkJCQkxQUVGQ0MwNTExRDAxRjM0MDA4MjE5RDMgLyog
UGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5QjQyMDAwNkUzRkUgLyogUmVtb3RlTGF5ZXJU
cmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywK
QEAgLTgzNzAsNiArODQ0NywxMCBAQAogCQkJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBO
ZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLywKIAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAx
RUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1l
c3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1
MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
Ki8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQTI5QTI1MUNCRUI2N0EwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNjFDQkVC
NjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKQEAgLTg2ODksNiArODc3MCwxNCBAQAogCQkJbmFtZSA9IFBERjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBp
b3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRkVG
MzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLywKKwkJCSk7CisJ
CQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ4OUQy
ODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTg4NzUsNyArODk2NCw2IEBACiAJCQkJN0E4QTlENUExRUYxMzAy
OTAwOTgwMUFFIC8qIEFQSUluamVjdGVkQnVuZGxlQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QThBOUQ1ODFFRjExOUIwMDA5ODAxQUUgLyogQVBJSW5qZWN0ZWRCdW5kbGVDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3NzUxMjMxMURGMERFRTIwMDhBMzUxQyAvKiBBUElJ
bmplY3RlZEJ1bmRsZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTRFNTdGNkIy
MUE4M0IxMjAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3NjkwNzlFMThGMzQwQTIwMDFERkYwNCAvKiBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0FDRTFCMUVFRUY3OUIwMEE4NjRBNCAvKiBBUElJ
bmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBOEE5
RDVDMUVGMTQ1OTgwMDk4MDFBRSAvKiBBUElJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRD
bGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtOTE1OSw2ICs5MjQ3LDkgQEAKIAkJCQkxQUM3NTM3
QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE4QjY2QjAxQkM0M0M4NjAwODJERjc3IC8qIFBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBl
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0RENUJGMTgwREE3RDMw
MDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4
RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMUUxMjNCQTIwQTExNTczMDAyNjQ2RjQgLyogUERGQ29udGV4dE1l
bnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAvKiBQREZL
aXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREMxOEZCMDIxODkxMjY0MDAyNUE4OEQg
LyogUGVuY2lsS2l0U1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTkyMTcsNiArOTMwOCw3IEBACiAJ
CQkJMUFCMTZBRTIxNjQ4NjU2RDAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjI0QTJFMTg3OUU0QkMwMDNBQkYwQyAvKiBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQTNENzVDMTY1MUI0NEYwMDg3MTNEMCAvKiBSZW1vdGVMYXllclRyZWVIb3N0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJU
cmVlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRERTBBRkExODI5OENDOTAwRjk3RUFBIC8q
IFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZG
MjY0QTAxQTFGRjlDQzAwMUZFNzU5IC8qIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1h
bmNlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGMUFDNkMxNjUxNzU5RTAwQzE3RDdGIC8q
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMTUyLDYg
KzEwMjQ0LDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9
ICgKIAkJCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3
b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzkxMzYwMjUyMTkzQzE0MzAwNTY0
OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJ
CUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJNDE0REQzNzkyMEJGNDNGNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53
ZWJleC5wbHVnaW4uZ3BjNjQuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCTZCRTk2OUMxMUU1NEQ0
NTIwMDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0x
MDc1Nyw2ICsxMDg1MCwxMSBAQAogCQkJCTJEOTEzNDQ3MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOUFJ1
bnRpbWVPYmplY3RNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDgyMTJDRjlGMDAw
MTI4QUZEIC8qIE5QUnVudGltZVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDky
QTc5NDIxMkI2QUQ0MDBGNDkzRkQgLyogTlBWYXJpYW50RGF0YS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNz
SU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMThF
OUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEy
ODFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEyQTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEOTEzNDQ5MjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVnaW4uY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bh
eW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmQw
YTdiNTY5MmIxMTlmYzY3ZjQyN2RkNDc5ZWUxOGQzODE2M2MwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5o
IgorCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NXQ29u
dGV4dE1hbmFnZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgUEFM
OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhp
cykpCit7CisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIG1f
Y29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQoreworCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBhdXRvIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOworfQorCit2b2lk
IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0MTc3ZjhmMmVjN2M1NTM4NzdkMWZi
OTA0MjZkMTIzYzE2YTYyMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsx
LDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLwor
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvU1dTZXJ2ZXIuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiwg
cHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5k
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAgIH0KKyAgICB+V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICAKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJp
ZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0
cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXIuY3BwCmluZGV4IGIw
ZDcwM2M1MzdmMDA3OTBjNGZmY2E5ZjNiMWQ5YjQxZGQwOGE0M2UuLjdiNWQwMDE2MGRlMzU5OThm
NWQ1NzdhNGJmMzU1OGIxOTY1MWM2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29u
dHJvbGxlci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0
Q29udHJvbGxlcjo6cmVtb3ZlVGFyZ2V0KEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0JgogCiB2
b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpjb25uZWN0SW5zcGVjdG9yKGNv
bnN0IFN0cmluZyYgdGFyZ2V0SWQsIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsOjpDb25uZWN0
aW9uVHlwZSBjb25uZWN0aW9uVHlwZSkKIHsKLSAgICBJbnNwZWN0b3JUYXJnZXQqIHRhcmdldCA9
IG1fdGFyZ2V0cy5nZXQodGFyZ2V0SWQpOworICAgIGF1dG8qIHRhcmdldCA9IG1fdGFyZ2V0cy5n
ZXQodGFyZ2V0SWQpOwogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAKQEAgLTc4
LDcgKzc4LDcgQEAgdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVj
dEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdldElkLAogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0
b3JUYXJnZXRDb250cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgdGFy
Z2V0SWQpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRh
cmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKICAg
ICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQg
V2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmRpc2Nvbm5lY3RJbnNwZWN0b3IoY29u
c3QgU3RyaW5nJiB0YXJnZXRJCiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xs
ZXI6OnNlbmRNZXNzYWdlVG9UYXJnZXRCYWNrZW5kKGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBJbnNwZWN0b3JUYXJnZXQqIHRhcmdldCA9IG1f
dGFyZ2V0cy5nZXQodGFyZ2V0SWQpOworICAgIGF1dG8qIHRhcmdldCA9IG1fdGFyZ2V0cy5nZXQo
dGFyZ2V0SWQpOwogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjMWUwMThmNGMxODI4MzlmMDc2MTMy
MDM2MDJkZDI4MTlhNTkyMDgxLi43NDNmNjQ0ZDZlYjY5ODQ4Y2IxNDAyNzc1YzFiZTk0OTA3YTM1
ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2ICs0
Myw5IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVXNlckRh
dGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKQEAgLTY5LDYgKzcyLDkgQEAKICNpbmNsdWRlICJX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0U3RyZWFtLmgiCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgpAQCAtMTIzMiw2ICsxMjM4LDMxIEBAIFdlYkxv
YWRlclN0cmF0ZWd5JiBXZWJQcm9jZXNzOjp3ZWJMb2FkZXJTdHJhdGVneSgpCiB7CiAgICAgcmV0
dXJuIG1fd2ViTG9hZGVyU3RyYXRlZ3k7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K3ZvaWQgV2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUKG1f
d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOworICAgIEFTU0VSVChtX3dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOworCisgICAgbV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7Cit9CisKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQ
QUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklEKQoreworICAgIGlmICghbV93ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbikgeworICAgICAgICBJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENv
bm5lY3Rpb25JZGVudGlmaWVyOworCisgICAgICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKGluaXRpYWxTZXNzaW9uSUQpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRl
bnRpZmllciksIDApKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBp
ZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZp
ZXIpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBtX3dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25u
ZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB9CisgICAgcmV0dXJuICptX3dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAK
IHZvaWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGNkZTBiNTVhMzhiOWE0NjAw
YmUzNzI2ZTJkOGU3ZjMyMWJhNzEwOTguLmExYjM3NjkyMWJhZjJjMTRkZjU4ZWQ3Mzc2MWExNjZi
NjQ3ZmU3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtOTgsNiAr
OTgsOSBAQCBjbGFzcyBXZWJMb2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBX
ZWJQYWdlR3JvdXBQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NTdXBwbGVtZW50OworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogZW51bSBjbGFzcyBXZWJzaXRlRGF0
YVR5cGU7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQYWdl
R3JvdXBEYXRhOwpAQCAtMTc1LDYgKzE3OCwxMSBAQCBwdWJsaWM6CiAKICAgICBMaWJXZWJSVENO
ZXR3b3JrJiBsaWJXZWJSVENOZXR3b3JrKCk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIHZvaWQgd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24qKTsKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
biYgZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5p
dGlhbFNlc3Npb25JRCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAg
IHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKICAgICB2b2lkIGVuc3VyZUxlZ2FjeVBy
aXZhdGVCcm93c2luZ1Nlc3Npb25Jbk5ldHdvcmtQcm9jZXNzKCk7CkBAIC00MzcsNiArNDQ1LDEw
IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eT4gbV9hdXRvbWF0aW9uU2Vzc2lvblByb3h5OwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICBSZWZQdHI8V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+IG1fd2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFJlZlB0cjxQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4
MGE3NGQ2MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUy
ZmM0NmFjY2I1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yOTAsNiArMjkw
LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElG
SUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNv
c3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsK
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFC
TEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9O
QU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNGM1MWRlMDQxZTE4YzI3YzkyZDBkZmU4ZjE1ZGJhMzcyNTE4MGU1Yi4uMGI4MjVjOGMyZjRh
NzQ1ZTk2N2ZkZWNmOTliYmUyODZmOWUyNzU4YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTExLTE0ICBaYW1p
dWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBz
dHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vz
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc05hbWUpOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTgt
MTEtMjUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBpdCBwb3NzaWJsZSB0byBpbnNlcnQgZWRpdGFibGUgaW1hZ2VzIHdpdGggYSBnZXN0dXJl
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgx
NDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05T
OwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9
IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFC
TEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0
Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUg
c2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3
ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVk
UHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAg
RVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRl
bnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBf
cGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRl
RGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVz
b3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVY
UEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJv
Y2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6
ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJjM2Q2M2E5ZWE4N2MyNmVjYTBkMWJmZDY2Nzc2
NTczMDkxNi4uMjY5ZTg2ZWQ2NWE5ZDQ2ZWYzMDczY2I5ZGFhNTEwZDFmOTllNGY5NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KQEAgLTExMzAsNiArMTEzMCw5IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIEhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25CaXQpCiAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBUaGVyZSBzaG91
bGQgYmUgbm8gcGF5bWVudCBwcm9jZXNzIGNyZWF0ZWQuCisgICAgRVhQRUNUX0VRKDAsIHdlYlZp
ZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fcGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyKTsKKwogICAgIC8vIExldCdzIHVzZSB0aGUgd2ViIHNpdGUgZGF0YSBzdG9yZSB0aGF0IGhh
cyBzZXJ2aWNlIHdvcmtlciBhbmQgbG9hZCBhIHBhZ2UuCiAgICAgbmV3Q29uZmlndXJhdGlvbi5n
ZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV07
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDViMjY0NjdkNDQ5NWI4YTMyNzBjNDRi
NTM0OThjN2ExYTc2MzgzYjMuLjIxYzI0M2Q0ZmUzMTRkZDAxOTdiOTBiN2IwYTM0MDBmNzA3ZmZm
OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzM1LDYgKzMzNSw3IEBAIGludGVy
ZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsK
ICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJt
aW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDE5MDIxZDg4NGQxNTgxMTUz
ODRmMTE1MDEyYjZkZjBmMThlYWQxNjQuLmU0OWE5NTg1MDBkODhjMTc4NzQ4NjlkOTRiMDIzN2Mz
YzRjMTQ2MGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTI5Myw2ICsxMjkzLDEyIEBAIHZvaWQgVGVzdFJ1bm5l
cjo6dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQnVuZGxlUGFnZVBvc3RT
eW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOwogfQog
Cit2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpOworICAgIFdLQnVuZGxl
UGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxw
dHIpOworfQorCiBzdGF0aWMgdW5zaWduZWQgbmV4dFVJU2NyaXB0Q2FsbGJhY2tJRCgpCiB7CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBGaXJzdFVJU2NyaXB0Q2FsbGJhY2tJRDsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKaW5kZXggN2NkNDc2ZTg3NTFkNGRjNTYwNTE2YTNiZTY2OTI5YWFmMTVlMWQ0Zi4uNTdkYTc5
MTM2MzFhY2JjNDhhZDY1MmU5Nzg1YTdmYjUxZTVmYzYyOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQ0OCw2ICs0NDgs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAg
dm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWluYXRl
UGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxz
KEpTVmFsdWVSZWYpOwogICAgIHZvaWQgY2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFs
c0NhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDU2Mzc0ZjcwY2MwZjhlMzAzM2YyMTI5ZGRlYTBmODI1Zjc3NTZlZDUuLjdlZjc2YTk3YmRm
YjEwNTdjNDgwMzEyYmZjMGFjZTk4M2JkMzdiY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDczLDYgKzEwNzMsMTUgQEAgY29uc3QgY2hhciogVGVz
dENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYKIH0KIAorY29uc3QgY2hh
ciogVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSgpCit7CisjaWYgUExBVEZPUk0o
RkFNSUxZX0lPUykKKyAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOworI2Vs
c2UKKyAgICByZXR1cm4gIlBheW1lbnQgcHJvY2VzcyBub3QgYXZhaWxhYmxlIG9uIGFueXRoaW5n
IGJ1dCBpT1MiOworI2VuZGlmCit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxs
b3dzKTsKQEAgLTE1MDcsNiArMTUxNiwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3Jr
UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbAogICAg
IHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6
OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9j
YXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsKK30KKwog
dm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnksIGJvb2wgc3luY2hy
b25vdXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleUtleSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAgLTE4NDAsNiArMTg1NCwx
MyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCkKICAgICBl
eGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNo
KCkKK3sKKyAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZp
ZXIobV9jb250ZXh0LmdldCgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMg
KHBpZCAlbGQpXG4iLCBwYXltZW50UHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlk
KSk7CisgICAgZXhpdCgxKTsKK30KKwogLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05h
dmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQpAQCAtMjYzOSw2ICsyNjYwLDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
UHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50
UHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZvY2F0
aW9uJikKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2MjVh
NWI1NDY1OTIyYzdiYWZkOTRiN2FjYzgxMjc2NTdiOGJjOTFmLi43ZjBmNzViNGRiYWY1ZDkxY2Y0
NTA2NzkxNTY1NDM1ZmMzNWY4NDFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiB3ZWJQcm9jZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuZXR3b3JrUHJvY2Vz
c05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VQcm9jZXNzTmFtZSgpOwor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwYXltZW50UHJvY2Vzc05hbWUoKTsKIAogICAgIFdvcmtR
dWV1ZU1hbmFnZXImIHdvcmtRdWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1hbmFn
ZXI7IH0KIApAQCAtMjUyLDYgKzI1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRl
TmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNz
KCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1v
dmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKIApAQCAtMzU3LDYgKzM1OSw4IEBAIHByaXZhdGU6
CiAgICAgLy8gV0tDb250ZXh0Q2xpZW50CiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1Byb2Nlc3NE
aWRDcmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2goKTsKKyAgICBzdGF0aWMgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdL
Q29udGV4dFJlZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFz
aCgpOwogCiAgICAgLy8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRp
ZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAppbmRleCBiOGZjZDU3Yjg3NTlhYWRmM2NkNzNkOTk2MWY1MDdiYjhlZTQ0YjhiLi4w
YzRmNmE5Y2VjMzdiMzcwNTgzMzE0ZmZjODA5MmVlODQwNWExM2ZhIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQ1Myw2ICsxNDUzLDEyIEBAIFdLUmV0
YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01l
c3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRl
UGF5bWVudFByb2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSkg
ewogICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355675</attachid>
            <date>2018-11-26 14:15:22 -0800</date>
            <delta_ts>2018-11-26 14:57:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181126141521.patch</filename>
            <type>text/plain</type>
            <size>139346</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OWY3MGJjYTExMzlkMDY4NWJlZjIzNDlkYmY5NWY4MDc1NmZhNjA4Li43NWQwMzU4NTI1NTgzOGM3
OTY4ZGIwZWIwMGFiMTU4NDlhYjNmYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yMyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgZHJhZyBhbmQgZHJvcCBz
dXBwb3J0IGZvciBpT1NNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMGU0MmQ2MTZmOThjNzRmNmNlNjg0MDIz
ZmI5OTI0ZTFhOTUyZjIxLi4xNDQxMTUxODc2NWFhNWJlNDk2OGQ3Y2YzMTk0Y2M2NzYwYjczZTVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0yNSAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRv
IGluc2VydCBlZGl0YWJsZSBpbWFnZXMgd2l0aCBhIGdlc3R1cmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmlu
ZGV4IDg0OTRmMjc0NjA1ZGUwNjIwNjY4MWRlNzdhMmYzOWI1YzYzYWZjZDYuLjRlMGQ4MzlkMDIw
MDdhYzEwY2Y2ODhlOWJlM2FjNTA4Y2E1NjU5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgor
CisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTI0ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFNPRlRfTElOS19DTEFTU19GT1Jfe0hF
QURFUixTT1VSQ0V9IHNob3VsZCBnZW5lcmF0ZSBhIG1vcmUgY29uY2lzZSBnZXR0ZXIgZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZWM5ZDVjMGMzMjU3MWQ3MzNmMWNhMmQ1NzNjZjIzMzA5MjhlNTUzYi4u
MTdlMzdjZDE3NDFkZmE5YWRhOGQwOGQ0NTQ1ZmQ5NWFhYzRiMmUxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjUgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+
CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZzoKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmguCisgICAgICAgICogUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFBh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6
CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50
UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29u
dGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFs
aXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXpl
UHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6
ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFBy
b2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRUZXJt
aW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0NvbnRleHRHZXRQYXltZW50UHJvY2Vz
c0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAg
ICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgorICAgICAg
ICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpz
ZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNz
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVQYXltZW50UHJvY2Vz
c0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXlt
ZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6
flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1By
b3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nl
c3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRG
aW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJv
Y2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRDbGllbnQ6OnBh
eW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xp
ZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVC
cm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9Q
YXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9Q
YXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFy
YW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9z
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuaGFuY2Vk
QWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnN0
YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5j
cmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQVUxpbWl0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BVTW9uaXRvclN0YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFnZUFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldEFsbEdl
b2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2FuY2VsTWFya0FsbExheWVy
c1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0QWxs
TGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXJGaXJlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1vcnlDYWNoZURpc2FibGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0RW5hYmxlZFNlcnZpY2Vz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlQXV0b21hdGlv
blNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRl
c3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlhRGV2aWNlcyk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTgtMTEtMjUgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZUxheWVyVHJlZU5v
ZGUgY29uc3RydWN0aW9uIGNsZWFudXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NmRhYzYwOWEwNzZhZjZhMTFlOWYwODI2ZTU1MTg4NWU4Y2IzOTczNS4uMWMxNTA4MDFlMTc0YjVi
MDYyM2M0ZmE0ZDViN2U3ZjQ3YjkwNzEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUu
Y29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTExLTI1ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gaW5zZXJ0IGVkaXRhYmxlIGltYWdlcyB3aXRoIGEgZ2VzdHVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4MGE3NGQ2MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3
YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUyZmM0NmFjY2I1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVf
Y29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklD
QVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVO
QUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFC
TEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9Q
QVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lU
X1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZjU4OGYzMmM0MjRm
ZTgwYTc0ZDYxZGM0Yjc4MDY4MTQxYjhlYzQzZS4uODdiYTU2YjllNjk0N2M4ZTkzZjVhYTYwYmVm
NTJmYzQ2YWNjYjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9O
RTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BM
QVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJ
RklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lO
ID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44
N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0yOTAsNiArMjkwLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29h
dG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9O
UyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BB
WU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVO
VF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVH
SU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxp
emFibGUuc3RyaW5ncwppbmRleCAxZWQ3OGNlMDU5N2JkMzBmZmM0NWMxMzEyYjUxNjU2NzAwODA3
NmQ4Li41NWVhNTI3ZDE0NDU3ZWZkNWI5ZTRhODk4MGRjNmJkNzdiYmNmOWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQzLDYgKzQzLDkgQEAK
IC8qIFZpc2libGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQg
aXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgU2VydmljZSBXb3JrZXIgKCVAKSIgPSAi
JUAgU2VydmljZSBXb3JrZXIgKCVAKSI7CiAKKy8qIHZpc2libGUgbmFtZSBvZiB0aGUgcGF5bWVu
dCBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCisiJUAg
UGF5bWVudHMiID0gIiVAIFBheW1lbnRzIjsKKwogLyogVmlzaWJsZSBuYW1lIG9mIHRoZSB3ZWIg
cHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFdl
YiBDb250ZW50IiA9ICIlQCBXZWIgQ29udGVudCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGYx
NjE1NDI3MzI2ZDg4YmFhZGI1ZTkzYzIzZGNhNzU0M2IxODA0YzUuLmQxNDUxYTA0ODhiYTk0ZWEz
ODg2YjVkNDhiNjZkMzFmMDM4ZDQwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUs
NyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9O
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNz
L3dhdGNob3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2VicnRjIgorICAg
ICIke1dFQktJVF9ESVJ9L1BheW1lbnRQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRm
b3JtIgogICAgICIke1dFQktJVF9ESVJ9L1BsYXRmb3JtL0lQQyIKICAgICAiJHtXRUJLSVRfRElS
fS9QbHVnaW5Qcm9jZXNzIgpAQCAtMjcsNiArMjgsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQiIK
ICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9T
aGFyZWQvR2FtZXBhZCIKKyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGF5bWVudCIKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS94MTEiCkBAIC00NSw2ICs0Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrIgogICAgICIke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyIKICAgICAiJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyIKKyAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
UGF5bWVudCIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9Vc2VyQ29udGVudCIKQEAgLTEyMSw2ICsxMjQsOSBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29j
a2V0Lm1lc3NhZ2VzLmluCiAKKyAgICBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNz
YWdlcy5pbgorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCisKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgog
ICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTE1
MSw2ICsxNTcsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nl
c3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAKICAgICBVSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIyMSw2ICsyMjksMTAgQEAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUwogICAgIFdl
YktpdAogKQogCitzZXQoUGF5bWVudFByb2Nlc3NfTElCUkFSSUVTCisgICAgV2ViS2l0CispCisK
IHNldChQbHVnaW5Qcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdAogKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCmluZGV4IDQwNWQ2M2Ji
YjAxMmEzOWU2NWRhOGJhOGI4OTA4MzU4YTI1OGJkNmMuLmVlYjdhMjZhZGExNDYzZDJhZDVhOGRj
ZmRiMjA2YTRkNjNjZjNlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvQmFzZVRhcmdldC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0Jhc2VUYXJnZXQueGNjb25maWcKQEAgLTExMSw2ICsxMTEsOCBAQCBXS19IQVZFX0NPUkVfUFJF
RElDVElPTltzZGs9bWFjb3N4Kl1bYXJjaD1pMzg2XSA9IE5POwogV0tfQ09SRV9QUkVESUNUSU9O
X0RFRklORVMgPSAkKFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTXyQoV0tfSEFWRV9DT1JFX1BS
RURJQ1RJT04pKTsKIFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTX1lFUyA9IEhBVkVfQ09SRV9Q
UkVESUNUSU9OOwogCitXS19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gY29tLmFwcGxl
LldlYktpdC5QYXltZW50czsKKwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9ICQo
V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV8kKFdLX1VTRV9MRUdBQ1lfU1RPUkFHRV9T
RVJWSUNFX05BTUUpKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfID0gJChXS19T
VE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PKTsKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9E
VUNUX05BTUVfTk8gPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4
ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNm
NWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJM
RV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRf
UExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29u
ZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdmN2IxODliNDI2MjQ5NDAxMjU4OWJhMDE3MTg1YTkzODE0NmY0Y2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnCkBAIC0wLDAgKzEsMzMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisv
LyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BB
WU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CisKK0NPREVfU0lHTl9FTlRJVExF
TUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JFU1RSSUNU
RURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKK09USEVSX0NPREVfU0lHTl9G
TEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CisKK1BST0RV
Q1RfTkFNRSA9ICQoV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9EVUNUX0JV
TkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOworSU5GT1BMSVNUX0ZJTEUgPSA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZDY3ZDQ4YzY0ZDcyOWJjZmVlODBmNWFjNDBm
NGU3YzNlYmM3NzMyNC4uZDMxNzVhZDhiMGIzMmM3ZjU2NjZhNmIzYmQyN2UzZDkyNjUyMmJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzAsNiArMzAsNyBAQCBWUEFUSCA9IFwK
ICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlciBcCisgICAgJChXZWJLaXQyKS9QYXltZW50UHJvY2VzcyBcCiAgICAgJChX
ZWJLaXQyKS9QbHVnaW5Qcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MvbWFj
IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKQEAgLTczLDYgKzc0LDcgQEAgVlBB
VEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQy
KS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BheW1lbnRz
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3Jh
Z2UgXApAQCAtMTIxLDYgKzEyMywxMCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBOZXR3
b3JrU29ja2V0U3RyZWFtIFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyIFwKICAgICBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAorICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyIFwKKyAgICBQYXltZW50UHJvY2VzcyBcCisgICAgUGF5bWVudFByb2Nlc3NQcm94eSBcCisg
ICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24g
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZWZhY2Y0ZmJiMTQ3MmFjZmJlMGY0NjE3NTA4MGZlMjk2NzQwYTJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
cy5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3Mu
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQ
YXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAgIHJldHVybiBwcm9j
ZXNzOworfQorCitQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQoreworfQorCitQYXlt
ZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQorewor
ICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisK
K2Jvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmICht
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcikp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewor
ICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgeworICAgICAgICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2Vydmlj
ZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3Jp
Z2luKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZiM2ExNzM1ODM1
NDQ0MjM0ZjU5Y2M2YTU0NDk0ZTdmNzdhODMyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApAQCAtMCwwICsxLDY5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitzdHJ1Y3Qg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNz
IDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVu
dFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJvY2Vzcz47Citw
dWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0
aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OlBheW1l
bnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1l
bnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworcHJp
dmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAg
dm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAg
ICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAg
IHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VX
b3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThiOTE0ZmM0YThmNDQ3MThjZmExMjU3NmQz
MzhkYWU1OTJhYTBlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgeworICAgIAorfQorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg0MzYyZGY2NDgwMDhlMjIwYTk1N2JmODQ3N2FkNjhiZmRkZmM2N2UKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8UGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVh
dGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNv
bm5lY3Rpb25JZGVudGlmaWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykp
Cit7CisgICAgLy8gTk9URTogd2UgbXVzdCBzZXQgdGhpcyB0byB0cnVlIGJlY2F1c2UgdGhlIFdl
YkNvbnRlbnQgcHJvY2VzcyBtYXkgcmUtZW50ZXIgd2hlbiBzZW5kaW5nCisgICAgLy8gYSBzeW5j
IElQQyBhbmQgdGhpcyBpcyBhIGh1Z2Ugc291cmNlIG9mIHNlY3VyaXR5IGJ1Z3MKKyAgICBtX2Nv
bm5lY3Rpb24tPnNldE9ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZSh0cnVlKQorICAgIG1fY29ubmVjdGlvbi0+
b3BlbigpOworfQorCitQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsK
K30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXlt
ZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9j
ZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorewor
ICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5l
Y3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsKKyAgICBVTlVT
RURfUEFSQU0obWVzc2FnZU5hbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg0OWE5ZWI0YTEzNzY0NDExNmNhY2VkMDM4MzA3YWIzNDA4MWNmZmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25J
RC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNs
aWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOworICAgIH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisg
ICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+Jik7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9j
b25uZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBB
WU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50
UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODE3ZjBkODY4OTk1ODM4M2FhODFkY2M4MmQzY2I3ZDVjNDQ0
ZDg4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIHsK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9pb3Mv
UGF5bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9Q
YXltZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTVlMzcwZjU0ODU0MjczZDMzODRhZmRk
YjU2ZTYxYzY4Mzk1NjYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50
UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiY29uZmlnLmgiCisK
KyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgorCisjaW1wb3J0
ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01B
TlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVT
YW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMp
Cit7CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0
byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBi
dW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxl
Rm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07CisgICAgc2FuZGJveFBh
cmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0
aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7
CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94
UGFyYW1ldGVycyk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMDY3MmM2ODZiMTY2N2FkOTdmNWRmZDc1YTRiM2E3YmRjMDYwN2IzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBw
bGUuV2ViS2l0LlBheW1lbnRzLnNiCkBAIC0wLDAgKzEsMzIgQEAKKzsgQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7IG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworOyBhcmUgbWV0OgorOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7IDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
OyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKzsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKzsgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKzsgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKzsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKzsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorOyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBh
cnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRh
ZGF0YSkKKworKGltcG9ydCAiY29tbW9uLnNiIikKKworKGRlbnkgbWFjaC1sb29rdXAgKHhwYy1z
ZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkKKworKGRlbnkgbHNvcGVuKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
aGlsZFByb2Nlc3MuaAppbmRleCBhNzJiYzkyOWRiZDdjNzRjMjI2NjliODIzMTdhNjFmZmFiZGYz
NzY5Li41ZDBjYzZlMmY1NGQzNjgzMmRkMjVmODdjMDgyNzcwOTNiZGMzYTU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgICAg
IFdlYkNvbnRlbnQsCiAgICAgICAgIE5ldHdvcmssCiAgICAgICAgIFBsdWdpbgorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQogICAgIH07CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ2hpbGRQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwODMzMTJjZjg4ZjdkZjk2NDliMmQzNjJiZDc0NjExMTAw
ZjgzMDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1Bh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cygpCit7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9u
SUQ7Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBy
ZXN1bHQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBhMDlhYjdlZmQ3ZjIwOTRmZTZkNjdlZjQ1
YjlmMzg0NjczN2FlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xh
c3MgRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMoKTsKKworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0
YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYpOworCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2
ZTRjNzJlNTgyYWJlMzBmNDg3OWQyYzZlYjllNDk5YTk3Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1Mjhi
NGY2NzAxNzkxZjBjZTlhYWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJv
Y2Vzc0V4ZWN1dGFibGVQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4
ZWN1dGFibGVQYXRoLmgKQEAgLTMyLDUgKzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJp
bmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9m
UGx1Z2luUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcygp
OworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBh
eW1lbnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gIUVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDg3NjZkZmQzMDIwOTYzMWQzOThhNTM5ODM4Y2VhOWZjMDRhODc3ZmEu
LmVhYTJjM2U2NzUzZTNiOThhODRiZmM1M2ViYjA4Mzg1MWFkYzY5YjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtNzksNiArNzksOSBAQCBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1Jl
cGxheS5jcHAKIAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3Bw
CiAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcAorUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisKIC8vIFRPRE86IFdlIHNob3VsZCB1bmlm
eSB0aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0
Zm9ybS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAgQG5vLXVuaWZ5
CkBAIC0yMDcsNiArMjEwLDggQEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVz
dWx0LmNwcAogCiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorU2hhcmVkL1BheW1l
bnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisKIC8vIFRPRE86IFRoZXNl
IGZpbGVzIHNob3VsZCBiZSB1bmlmaWVkIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVt
b3ZlZC4KIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwIEBuby11bmlmeQogU2hh
cmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwIEBuby11bmlmeQpAQCAtMzgw
LDYgKzM4NSw4IEBAIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAK
IFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAK
IFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAogCitV
SVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKKwogVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5JbmZvU3RvcmUuY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5j
cHAKQEAgLTQ4MCw2ICs0ODcsOCBAQCBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKIAorV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKKwogLy8gVE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQg
b25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbi5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDZhYzhmZWMx
NmNlOTJlYmZhNzE2ZGUzMmJhMDQ1NzlhZmQyMzc1N2YuLjc4MzQ1N2VmMGJiNGRiZTUyZTQzOTY2
ZTE2ZDE1OTBiMDJiZjg5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4Miw2ICsxODIs
OCBAQCBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMvV2ViSGl0VGVz
dFJlc3VsdERhdGEubW0KIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KIAorUGF5
bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCisKIFNoYXJlZC9QbHVnaW5zL21h
Yy9QbHVnaW5TYW5kYm94UHJvZmlsZS5tbQogCiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMv
TmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCmluZGV4IDg3MDE2YWI3NThlYmMxMmQzOThkZmZkM2MwNWI4ZjIxYWI1
MDUyNjguLmZhNzE4OTEzNWJlM2E5YzEwZWE4N2I4MDljYWQxZGJiMzI5MDVjZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNjIxLDExICs2MjEs
MjcgQEAgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRl
eHRSZWYgY29udGV4dCkKICAgICB0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3Jr
ZXJQcm9jZXNzZXMoKTsKIH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vz
cyhXS0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogUHJvY2Vzc0lEIFdLQ29u
dGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikK
IHsKICAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIoKTsKIH0KIAorUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmll
cihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNzSWRlbnRpZmll
cigpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorfQorCiB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYg
Y29udGV4dFJlZiwgV0tTdHJpbmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBX
S0FycmF5UmVmIG1pbWVUeXBlc1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IDQ2ZDM3ZTFlOGExNTg5NTgwYTM1NTM4
ZWU1ZjZmOWJjMmQ4MGUyMmMuLjQwZGFjZWI1N2M5MWMyNjQzNTViYWJkNmFlMzVkMjhhNDI3ZTYy
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2
YXRlLmgKQEAgLTkzLDYgKzkzLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05l
dHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAor
V0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0
UmVmKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNh
dGVGb3JXZWJTb2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0
aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiAKQEAgLTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7
CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCk7CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBX
S0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQp
OworV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRp
ZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFk
ZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWlu
LCBXS1N0cmluZ1JlZiBuYW1lLCBXS0FycmF5UmVmIG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRl
bnNpb25zKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhX
S0NvbnRleHRSZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IGNkOTAyNWU3ZWJhOGU2YzJhZGIyYmZmNTA3
Y2E4ZGM0NDM4NmU3YjEuLjkyM2U5MjIwZTc0MzJkNWEzMmQwMGJlM2I3MDgwZDcyNjI4NzU1Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tCkBAIC00MjQsNiArNDI0LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lu
cwogICAgIF9wcm9jZXNzUG9vbC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZv
aWQpX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygp
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1p
bmF0ZU5ldHdvcmtQcm9jZXNzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcygpOwpAQCAtNDQ0LDYgKzQ1MSwxNSBAQCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJ
ZGVudGlmaWVyCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlm
aWVyKCk7CiB9CiAKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQ
cm9jZXNzSWRlbnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nlc3NDb29r
aWVzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT5zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCmluZGV4IDRkM2ExOTEyMGFiZDQ5ZWVlMDQ5Mjc5NGE3N2Y0YWZiMDZjZGU5
MGMuLjNlNmE5MTI4ODZjNmRhODZlODJlNGE1MTZkNDE2YzMxNjc1OGNjMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oCkBAIC04NCwxMiArODQsMTQgQEAKIC0gKF9XS0Rvd25sb2FkICopX3Jlc3VtZURvd25s
b2FkRnJvbURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilwYXRoIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAv
LyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBw
cm9jZXNzZXMgYXJlIHJ1bm5pbmcuCistICh2b2lkKV90ZXJtaW5hdGVQYXltZW50UHJvY2VzcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0g
KHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVybWluYXRlU2Vydmlj
ZVdvcmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4w
KSk7CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLy8gVGVzdCBv
bmx5LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChwaWRfdClfcGF5bWVudFByb2Nlc3NJZGVu
dGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IGUwN2RiYTI3MmEy
ZTE1YmU4MjlkZTIzNGM1ZGQ1MGQ1NzM4ZTFhMGMuLjE0YTM5ZmE4Y2U3NWE1OWMzMWExODY4M2Rj
YWQwNjUxODBkZjNkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01OCw2ICs1OCw5IEBAIHB1YmxpYzoKICAgICAgICAg
UGx1Z2luNjQsCiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAgICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFj
Lm1tCmluZGV4IDZjYmFjMjVkNzg0YzBlZWVhNThhNjg0YWI0Njg0NDVhZTJlMzkyNjIuLjg0Njc2
NDU3OWU2MTk2ZjcwZmQwNDdmNDNkYWZiOWM2ZDk0ZDE2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5t
bQpAQCAtNjIsNiArNjIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0
IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICAgICBjYXNlIFBy
b2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAgICAgICByZXR1cm4gImNv
bS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50Ogor
ICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg2ZTMyNTg5YjliYmM1ODk1NWRkNjhhYTczYzYyZjNiZGI0OTM5NTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1By
b3h5LmNwcApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nl
c3NQcm94eS5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFBy
b2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCisgICAgOiBDaGlsZFByb2Nl
c3NQcm94eShwcm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAg
ICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0
aW9uUmVxdWVzdHMoMCkKK3sKKyAgICBjb25uZWN0KCk7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJv
eHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKCkKK3sKKyAgICB0ZXJtaW5hdGUoKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJv
Y2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAg
bV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuYXBwZW5kKFdURk1vdmUocmVwbHkpKTsKKyAgICAK
KyAgICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVu
ZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAor
ICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBzZWN1cml0eU9yaWdpbjsKKyAgICAKKyAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50
UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29y
a2VyUHJvY2Vzcywgc2VjdXJpdHlPcmlnaW4pLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNo
TWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Cit9CisgICAgCit2b2lkIFBheW1l
bnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hP
cHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUg
PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50OworICAgIENoaWxkUHJvY2Vz
c1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlv
bigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAg
ICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQ
cm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFBy
b2Nlc3NQb29sID0gbWFrZVJlZihtX3Byb2Nlc3NQb29sKTsKKworICAgIC8vIFRoZSBwYXltZW50
IHByb2Nlc3MgbXVzdCBoYXZlIGNyYXNoZWQgb3IgZXhpdGVkLCBzbyBzZW5kIGFueSBwZW5kaW5n
IHN5bmMgcmVwbGllcyB3ZSBtaWdodCBoYXZlLgorICAgIHdoaWxlICghbV9wZW5kaW5nQ29ubmVj
dGlvblJlcGxpZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRpbmdD
b25uZWN0aW9uUmVwbGllcy50YWtlRmlyc3QoKTsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICB9CisgICAgLy8gVGVsbCBQcm9jZXNzUG9vbCB0byBmb3JnZXQgYWJvdXQgdGhpcyBwYXlt
ZW50IHByb2Nlc3MuIFRoaXMgbWF5IGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgbV9wcm9j
ZXNzUG9vbC5wYXltZW50UHJvY2Vzc0NyYXNoZWQoKnRoaXMpOworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlTmFtZSkKK3sKK30KKwordm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikKK3sKK30KKyAgICAK
K3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRp
ZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQcm9jZXNz
UHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIp
OworCisgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rp
b25JZGVudGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFudXAgaGVy
ZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKKyAgICAgICAgc2VuZChNZXNz
YWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KGZhbHNlLCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVz
dHMgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dHMvUGF5bWVudFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dHMvUGF5bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMzFjN2M2N2I0ZjBlOTQyNmIx
MWQxMGYxZTU1NDU5NTc4NGYwNWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hl
ci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFBBTCB7Citj
bGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5
T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworZW51
bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2NsYXNzIFBh
eW1lbnRQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkgeworcHVi
bGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsK
KyAgICB+UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAorICAgIHZvaWQgdGVybWluYXRlRm9y
VGVzdGluZygpOworICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nl
c3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworCitwcml2YXRlOgorICAgIC8vIENoaWxkUHJvY2Vz
c1Byb3h5CisgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNo
T3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNv
bm5lY3Rpb24mKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCisg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisKKyAgICAvLyBQcm9jZXNz
TGF1bmNoZXI6OkNsaWVudAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CisKKyAgICBXZWJQ
cm9jZXNzUG9vbCYgbV9wcm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nv
bm5lY3Rpb25SZXF1ZXN0czsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVj
dGlvblJlcGxpZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWIwZDUxNzcyYWFlZWM3MGViYzYwZjM1NDZiOGUxMjc2ZjgwNjQ2YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2Vz
IC0+IFBheW1lbnRQcm9jZXNzUHJveHkgeworICAgIERpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKKworfQor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGZhNDU3NjJlY2ViYTAxM2E2YWNhNGY5NjRk
YTg1NjYzOTc0MWQ1NzUuLmJlYzc5YjU0Y2JmNmM2ZWM1ZWZlZmY0YTk3NTcwZjY5OWI1NTNmMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC00
Niw0ICs0NiwxMSBAQCB2b2lkIFdlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jh
c2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogICAgIG1fY2xpZW50Lm5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViQ29udGV4dENsaWVu
dDo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCit7
CisgICAgCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgK
aW5kZXggODBjMzExMjJjMDc3NmQ0ZWU4ZDc3OGQ1NjY4MjEwMTUyMjE2MzdkNi4uNTliM2E0MDc5
MTA4ZjIzOGYxZDZmOGFiZjFhYjllZGNjODQ1MzkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRDbGllbnQuaApAQCAtNDUsNiArNDUsMTAgQEAgY2xhc3MgV2ViQ29udGV4
dENsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbnRleHRDbGllbnRCYXNlPiB7CiBwdWJs
aWM6CiAgICAgdm9pZCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkKFdlYlByb2Nl
c3NQb29sKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29s
Kik7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNz
RGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgIAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaAppbmRleCBlZDU1YjQwM2RiMjlmOTQw
MDQzOGJhMzJhNjBjNzU4Mjc0OTM0ZmE2Li4yYzZhY2JiMDVjYjAyNmFjZGE3NWMwNjdkMWYwZDlk
NDU5YTEyN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
U3VwcGxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBw
bGVtZW50LmgKQEAgLTI5LDYgKzI5LDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
TmV0d29ya1Byb2Nlc3NQcm94eTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xhc3Mg
UGF5bWVudFByb2Nlc3NQcm94eTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIApAQCAtNTQs
NiArNTgsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoTmV0
d29ya1Byb2Nlc3NQcm94eSopCiAgICAgewogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoUGF5bWVudFByb2Nl
c3NQcm94eSopCisgICAgeworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogCiAgICAgV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKCkgY29uc3QgeyByZXR1cm4gbV9w
cm9jZXNzUG9vbDsgfQogICAgIHZvaWQgY2xlYXJQcm9jZXNzUG9vbCgpIHsgbV9wcm9jZXNzUG9v
bCA9IG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5LmNwcAppbmRleCA1ODliYmNlNzY2MmM4YmM1MmQ2ZmVkMmJmYjc2YmNjNTg1YmEyZGRiLi5h
ZTdjOTlmYThkMDliMjM1YTQwZmZkZDUyNGI5MmU0NGE2Yjk3OWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC02MzEsNyArNjMxLDcgQEAg
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0
IFN0cmluZyYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgQ2VydGlmaWNhdGVJbmZvJikKK3Zv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA3ZDRhYzM3MjYzYjVk
MzgyODA4N2NlYzgzZDIwODNjNzQzZDYwNWM1Li45ODhmYmM2MWFiYTU5MzBjMTI2ZjdmODlhMjkz
MDE4MzZiOWYwZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCkBAIC01NCw2ICs1NCwxMCBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGlj
c0RhdGEuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNz
YWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVGV4
dENoZWNrZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVwYWRQ
cm92aWRlci5oIgpAQCAtNDQyLDYgKzQ0Niw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRN
ZW1vcnlQcmVzc3VyZUV2ZW50KGJvb2wgaXNDcml0aWNhbCkKIHsKICAgICBzZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZl
bnQoaXNDcml0aWNhbCkpOwogICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpD
aGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpKTsK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1l
c3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3Jp
dGljYWwpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24o
KS5zZW5kTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKTsKICNlbmRpZgpAQCAtNjE3LDYg
KzYyNCwzNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveAogICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVw
bHkpKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQ
b29sOjplbnN1cmVQYXltZW50UHJvY2VzcygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNz
KQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzID0gc3RkOjptYWtlX3VuaXF1ZTxQYXltZW50UHJv
Y2Vzc1Byb3h5PigqdGhpcyk7Cit9CisgICAgCit2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIFBB
TDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7Cisg
ICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5nZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7Cit9
CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJv
Y2Vzc1Byb3h5JiBwYXltZW50UHJvY2Vzc1Byb3h5KQoreworICAgIEFTU0VSVChtX3BheW1lbnRQ
cm9jZXNzKTsKKyAgICBBU1NFUlQocGF5bWVudFByb2Nlc3NQcm94eSA9PSBtX3BheW1lbnRQcm9j
ZXNzLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgc3VwcGxlbWVudCA6IG1fc3VwcGxlbWVudHMu
dmFsdWVzKCkpCisgICAgICAgIHN1cHBsZW1lbnQtPnByb2Nlc3NEaWRDbG9zZShwYXltZW50UHJv
Y2Vzc1Byb3h5KTsKKworICAgIG1fY2xpZW50LnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2godGhpcyk7
CisKKyAgICBpZiAobV9hdXRvbWF0aW9uU2Vzc2lvbikKKyAgICAgICAgbV9hdXRvbWF0aW9uU2Vz
c2lvbi0+dGVybWluYXRlKCk7CisKKyAgICBtX3BheW1lbnRQcm9jZXNzID0gbnVsbHB0cjsKK30K
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5l
Y3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmIHByb3h5LCBTZWN1cml0
eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25J
RD4gc2Vzc2lvbklEKQogewpAQCAtNjkzLDYgKzczMCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2
YXRlCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWRk
V2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25QYXJhbWV0ZXJzKCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBuZXR3b3JrUHJv
Y2VzcygpLT5yZW1vdmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIHNlbmRUb1BheW1l
bnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vz
czo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSkpOwogICAgIH0KIH0KQEAgLTEzNTEsNiArMTM5MSwxNSBAQCBWZWN0b3I8U3RyaW5nPiBXZWJQ
cm9jZXNzUG9vbDo6YWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9j
ZXNzSQogICAgIH0KICAgICByZXR1cm4geyB9OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCitQcm9jZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigp
Cit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOworfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFs
d2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7
CkBAIC0xNjIyLDYgKzE2NzEsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDYWNoZWRD
cmVkZW50aWFscygpCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIG1fbmV0d29y
a1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhckNhY2hlZENyZWRl
bnRpYWxzKCksIDApOwogfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lk
IFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKQorewor
ICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYXlt
ZW50UHJvY2Vzcy0+dGVybWluYXRlRm9yVGVzdGluZygpOworICAgIG1fcGF5bWVudFByb2Nlc3Mg
PSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGQyODQzZmY2NjgyOGY5NTU2ZmMyM2I3
MTMwY2I4NDZhYWE3YTZkN2EuLjMxMTZiZWRiYTk3MzU0YzBhY2I2N2I0ZjE2Nzc0NWU1N2E0N2Y5
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNDAsNiAr
NDAsOSBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc1JlcXVlc3QuaCIKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHku
aCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlZpc2l0ZWRM
aW5rU3RvcmUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
Q29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKQEAgLTE3Myw2ICsxNzYsMTIgQEAgcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHZvaWQgc2VuZFN5bmNUb05ldHdv
cmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlLCBVJiYgcmVwbHkpOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5
KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgLy8gU2Vu
ZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJvY2VzcyBvciBQYXltZW50UHJvY2VzcyBhcyBhcHByb3Bv
cmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2Fy
eShUJiYgbWVzc2FnZSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAg
IHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkqKTsKIAogICAg
IC8vIERpc2Nvbm5lY3QgdGhlIHByb2Nlc3MgZnJvbSB0aGUgY29udGV4dC4KQEAgLTIxNyw2ICsy
MjYsOSBAQCBwdWJsaWM6CiAgICAgUHJvY2Vzc0lEIG5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigp
OwogICAgIFZlY3RvcjxTdHJpbmc+IGFjdGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRl
c3RpbmcoUHJvY2Vzc0lEKTsKICAgICBib29sIG5ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRG
b3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgUHJvY2Vzc0lEIHBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQYWdlR3JvdXAmIGRlZmF1bHRQYWdlR3JvdXAo
KSB7IHJldHVybiBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCk7IH0KIApAQCAtMjc2LDYgKzI4OCw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29j
a2V0KGJvb2wpOwogCiAgICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9y
VGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9pZCB0
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtl
clByb2Nlc3NlcygpOwogICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWlu
YXRpb25EZWxheSgpOwpAQCAtMzQ0LDYgKzM1OSwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
KTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBlbnN1cmVQYXltZW50
UHJvY2VzcygpOworICAgIFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzKCkgeyBy
ZXR1cm4gbV9wYXltZW50UHJvY2Vzcy5nZXQoKTsgfQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNz
aW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NDcmFzaGVkKFBh
eW1lbnRQcm9jZXNzUHJveHkqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsK
ICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
RnJvbVBhZ2VJRCh1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwpAQCAtNjQzLDYgKzY2NCw5IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9kaWROZXR3b3JrUHJvY2Vzc0NyYXNoIHsgZmFsc2UgfTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50
UHJvY2Vzc1Byb3h5PiBtX3BheW1lbnRQcm9jZXNzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxi
YWNrPj4gbV9kaWN0aW9uYXJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxTdGF0aXN0aWNzUmVxdWVzdD4+IG1fc3RhdGlzdGljc1JlcXVlc3RzOwpAQCAtNzQ0LDYgKzc2
OCwyMiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1
bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2Vu
ZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5k
VG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAobV9wYXltZW50UHJvY2Vz
cyAmJiBtX3BheW1lbnRQcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICBtX3BheW1l
bnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vz
c1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCit7CisgICAgZW5zdXJlUGF5bWVu
dFByb2Nlc3MoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPiht
ZXNzYWdlKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogdGVt
cGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb0FsbFByb2Nlc3Nl
cyhjb25zdCBUJiBtZXNzYWdlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggN2I2MWVmMjUyM2QyYzliMTIwYWNjNjFjNWU0OWJhMTk1NTQzYTQy
YS4uNzc5MmFmMTRmNjNjYTJhZWI0NjBmZjhlMTUzYjJjNjYyMmU4ZTIyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02MjgsNiArNjI4LDEyIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0CiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKK3sKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKnRoaXMsIGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUocmVwbHkpKTsKK30KKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogYm9vbCBX
ZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZGJjMjJhNWE5YzlhMjFiYWMz
ZGRjMmZhMmY0YmY4YzAwZDRiYjVkMS4uOTJhNmRmOGU4M2YxM2ZmYzY0Y2M0MGI0YzA0ZWY0MTdl
N2JmMTViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAg
LTI4Nyw2ICsyODcsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBnZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklE
IGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAgICAgYm9vbCBwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0Owog
ICAgIGJvb2wgc2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggNmE5OGY0ZTk2MDQ3ZGFiZjE2NGE3NjEwYTg3ZjJhOWY2ODYwYjQ4YS4uOGY1ZTFkNjY2
MGIxNTBkNzU3MzBhNjNlMWYwOTNkNDNmNmEzNmQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsOSBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQ
Qzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3Vz
SW5pdGlhbGl6YXRpb24pIERlbGF5ZWQKICNlbmRpZgogICAgIEdldE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgR2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpIC0+IChJUEM6OkF0dGFjaG1lbnQg
Y29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5jZWxQcm9jZXNzU3Vz
cGVuc2lvbigpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYjkwYzE0MjQxNzZjNjUxNWU3ZWU0YTU2
MjJiOGVjNmViZTI2YzM4MS4uOGE3OWQ0ZmQ4OWJiNGMyNDYyYTAyZDcyZWI0NzdlNmQxNzhjZDlm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSAiTW9ja0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCkBAIC0xMzUs
NiArMTM5LDkgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogICAgICAg
ICBBU1NFUlQobm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMp
OwogICAgICAgICBub25EZWZhdWx0RGF0YVN0b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAg
ICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vz
c1Bvb2xzKCkpIHsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICAgICAgZGVz
dHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbihwcm9jZXNzUG9vbCk7CisjZW5kaWYKICAgICAgICAg
ICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vz
cygpKQogICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5yZW1vdmVTZXNzaW9uKG1fc2Vz
c2lvbklEKTsKICAgICAgICAgfQpAQCAtMTMyMiw2ICsxMzI5LDEzIEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmCiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRlc3Ryb3lQYXlt
ZW50UHJvY2Vzc1Nlc3Npb24oV2ViUHJvY2Vzc1Bvb2wqIHBvb2wpCit7CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICBwb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6
UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKyAgICAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucykKIHsK
ICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCkBAIC0xNjI2LDYg
KzE2NDAsMTkgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbGVhclJlc291cmNlTG9hZFN0YXRp
c3RpY3NJbldlYlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGwKICAgICBjYWxsYmFjaygpOwogfQog
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpCit7Cisg
ICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKKworICAgIFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisKKyAgICBwYXJhbWV0ZXJzLnNlc3Npb25J
RCA9IG1fc2Vzc2lvbklEOworCisgICAgcmV0dXJuIHBhcmFtZXRlcnM7Cit9CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gV2Vic2l0
ZURhdGFTdG9yZTo6cGVuZGluZ0Nvb2tpZXMoKSBjb25zdAogewogICAgIHJldHVybiBjb3B5VG9W
ZWN0b3IobV9wZW5kaW5nQ29va2llcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggODUyYjZiYjVkMzZmYmI2
ZTk1OTkyZTg4MjQ2OGIyNmJkZDkwNzE1OS4uNWE2MzYzOTQ5YjZlZjA2M2M5MDI1NGU2YWE4ZDlm
NGI0Yzk5ODZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjYsNiArNjYsOSBAQCBjbGFzcyBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhRmV0Y2hPcHRp
b247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitzdHJ1Y3Qg
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29yZDsKIHN0cnVjdCBXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVyczsKIApAQCAtMTcxLDYgKzE3NCwxMCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0Fzc29jaWF0ZWRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAg
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycygpOworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGF5bWVu
dFByb2Nlc3NQYXJhbWV0ZXJzKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICB2b2lkIGRlc3Ryb3lQYXltZW50UHJvY2Vzc1Nlc3Npb24oV2ViUHJvY2Vzc1Bvb2wqKTsK
IAogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAg
ICAgdm9pZCBhZGRQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjgxOTA2
OTNkM2EzZmVmZmViMGVlY2I2NWI2ZjM0YTJiODk0OTRiMy4uMmZmY2I3Mzc2MTc3MzUxNmNiMTQ4
MzBkYzg2Y2U1ZTQ4MWQ5YWFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDYsNiArODQ2LDcgQEAKIAkJMzdGOTBERTMxMzc2NTYw
RTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBI
VFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0
NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0
NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4
Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcg
LyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CisJCTM5MTM2MDI1MjE5
M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1
NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsKIAkJM0Y0MThFRjkx
ODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThF
RjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3
QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CkBAIC05MDQsNiArOTA1LDEwIEBACiAJCTUxMEY1
OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTc5MURERDc4NTQwMDMy
Q0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRl
bURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFi
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEw
QUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5
RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QTkxRjI5
NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CisJCTUxMThFOUFBMUYyOTU5NzcwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJ
NTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTIx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovOyB9Owog
CQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQw
MUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9Owog
CQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5
MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CiAJCTUxMUY4QTgxMTM4QjQ4
NUQwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2Vj
SXRlbVNoaW1MaWJyYXJ5Lm1tICovOyB9OwpAQCAtOTU1LDYgKzk2MCw3IEBACiAJCTUxN0NGMEUz
MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3
Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0
b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNz
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
N0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi87IH07CiAJ
CTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNUExMjdDQjg5RDAwRjc2
MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi87IH07CiAJCTUxOEFDQUVBMTJBRUU2QkIwMEIwNEI4
MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0
aW9uU3BhY2VUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUxOEFDRjExMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNGMTAx
MkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk4Miw2ICs5ODgsOCBAQAogCQk1MURE
OUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3
OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1
NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJ
CTUxRTM1MUNCMTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JF
OSAvKiBJREJVdGlsaXRpZXMuaCAqLzsgfTsKKwkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8q
IFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAg
Ki87IH07CisJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwICovOyB9OwogCQk1MUU2QzE2NDFGMjkzNUREMDBGRDM0MzcgLyogUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi87IH07CiAJCTUxRUZDMUNGMTUy
NEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFC
QTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8q
IFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJj
ZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CkBAIC0xNTY3LDYgKzE1NzUsNyBAQAogCQlEM0I5NDg0
NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
UG9wdXBNZW51LmggKi87IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFy
Y2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsg
fTsKIAkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAw
OEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovOyB9OworCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1
MTYgLyogUGF5bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nl
c3NJT1MubW0gKi87IH07CiAJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
ICovOyB9OwogCQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oICovOyB9OwogCQlFMTUxM0M2NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQ
cm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oICovOyB9
OwpAQCAtMjk3OSw2ICsyOTg4LDExIEBACiAJCTNGNDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzOTEzNjAyNDIxOTND
MTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzOTEzNjAyQjIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTEz
NjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5
NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBX
ZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5
QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTAxLDYgKzMxMTUsNyBAQAogCQk0RjYwMTQzMDE1NUM1
QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVk
Lm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5
bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2
Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTA0RjVBMTFGMTlEN0NGMDA0Q0Y4MjEgLyogQ29va2llU3RvcmFnZVV0aWxzQ0YubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29raWVTdG9yYWdlVXRp
bHNDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzExQzczRDIyQjAw
Nzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzcyMUM3M0QzN0IwMDc5OTNDQiAvKiBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKQEAgLTMxMjQsMTEgKzMxMzksMTUgQEAKIAkJNTExMEFFMEExMzNDMTZDQjAwNzI3MTdB
IC8qIFdLSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLSWNvbkRhdGFiYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEx
MEFFMEIxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLSWNvbkRhdGFiYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTE4RTlBMjFGMjk1
OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE0MUYy
OTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4
RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE2MUYy
OTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMThFOUE2
MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDNGMUVC
MUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY3RDQwMUVCMUJDRUUwMEU0N0I4
MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJy
YXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNlY0l0ZW1TaGltTGlicmFy
eS5oOyBwYXRoID0gLi4vLi4vV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTQ2LDYgKzMxNjUsNyBAQAogCQk1MTI5MzVE
NjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEUxMkE4ODM4ODAwNjI5NTMw
IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhGMTJBODgzODgwMDYyOTUzMCAvKiBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEyRjU4OTAxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNp
b25MaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRo
ZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzIxNiw2ICszMjM2LDggQEAKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5l
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nl
c3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50
UHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQx
ODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBTaGltLnhjY29uZmlnOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4
dE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4
dE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlE
MDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMy
MzUsNiArMzI1Nyw3IEBACiAJCTUxQTU1NjAwMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRN
ZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4
dE1lbnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0Ux
RDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJJREJSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MUE1ODc3RjFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQlJlc3VsdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZp
Y2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUGF5bWVudFNlcnZpY2UueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTcyOERDMUIxQkFEMkQwMDEwMkVFRSAvKiBXS0J1
bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MUE3RjJGNDEyNUJGOEQ0MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnaW5nLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyOTQsNiArMzMxNywxMSBAQAogCQk1MUREOUYyNzE2MzY3
REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJNTFFMzUxQzgxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJVdGlsaXRpZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyog
SURCVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQlV0aWxp
dGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQTE4MEY1RDBCMDBF
NTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFBy
b2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQjE4MEY1RDBC
MDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nl
c3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkMxODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGRDE4MEY1RDBC
MDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzk5MDUxRDZGNTRD
NTAwOUM4ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE1RjFGMjkzNTUxMDBGRDM0MzcgLyogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBwYXRo
ID0gaW9zL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQ0NDYsNiArNDQ3NCw3IEBACiAJCUUxRTU1MkMzMTZBRTA2NUUwMDRF
RDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50UHJvY2Vz
c0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUIxQUMxQURCNjAw
MzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0MTNGNTlFMUFDMUFGOUQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBO
ZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmV0d29ya0NhY2hlSU9DaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
NjIwLDYgKzQ2NDksNyBAQAogCQkJCTFBMUQyMTE2MTkxRDk5NUMwMDAxNjE5RiAvKiBwb3N0cHJv
Y2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaCAqLywKIAkJCQlCQzJFNkU3NDExNDE5NkYwMDBBNjNC
MUUgLyogUGxhdGZvcm0gKi8sCiAJCQkJMUFBRERGNEIxMEQ4MkFGMDAwRDNENjNEIC8qIFNoYXJl
ZCAqLywKKwkJCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8s
CiAJCQkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAqLywKIAkJCQlCQzAz
MkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2MTM4
RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCkBAIC00ODI1LDYgKzQ4NTUsNyBAQAog
CQkJCTQxRDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAvKiBOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0
bGVtZW50cyAqLywKIAkJCQk1QzdBQ0ZEMTIxOEREOEJEMDA0Q0JCNTkgLyogTmV0d29yay1PU1gu
ZW50aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3Jr
U2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5
bWVudFNlcnZpY2UueGNjb25maWcgKi8sCiAJCQkJQTFFREQyREIxODg0Qjk2NDAwQkJGRTk4IC8q
IFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnICovLAogCQkJCUJDODI4M0YyMTZCNEZDNTMwMEEy
NzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnICovLAogCQkJCUJDODI4M0Y0MTZCNEZD
NTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnICovLApAQCAtNDk4Miw2ICs1
MDEzLDcgQEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0MDBERDdDNjggLyogR2FtZXBhZCAqLywKIAkJ
CQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJDMTExQjVBMTEyRjYy
ODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJMzkxMzYwMkEyMTk1MTRCRDAwNTY0OTJBIC8qIFBh
eW1lbnQgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAwODUyNDE4IC8qIFBsdWdpbnMgKi8sCiAJ
CQkJMkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkx
QUJGNDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0ZURhdGEgKi8sCkBAIC02MjYzLDYgKzYy
OTUsMjQgQEAKIAkJCXBhdGggPSBSZXNvdXJjZXMvbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJMzkxMzYwMkEyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnQgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5MTM2MDJCMjE5NTE0
QkQwMDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCisJ
CQkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnQ7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OworCQkzOTJFOTQyQTIxOUEyRTg1MDA1MEY5ODIgLyogUGF5bWVudHMg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5MkU5NDJE
MjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8s
CisJCQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmggKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9
ICI8dW5rbm93bj4iOworCQl9OwogCQk0MTMwNzU5NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRj
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY1ODIsNiAr
NjYzMiwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE3REQ1QkMxODBEQTdEMzAwODE2
NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuY3BwICovLAorCQkJCTUxN0RENUJEMTgwREE3RDMw
MDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8sCisJCQkJNTEyQTk3NjYxODBFMDVE
MjAwMzlBMTQ5IC8qIFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkpOwor
CQkJcGF0aCA9IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NTE4RThFRjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY2MzgsNiArNjY5OCwyMCBAQAogCQkJ
cGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBB
MTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlv
cyAqLywKKwkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3Bw
ICovLAorCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICov
LAorCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdl
cy5pbiAqLywKKwkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwICovLAorCQkJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgwRjc0RjEw
MDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywK
KwkJCSk7CisJCQlwYXRoID0gUGF5bWVudFByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk1MzlCRDVCMjFEQURCMEJBMDBGMkU0RTEgLyogY2FwdHVyZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03MDYxLDYgKzcxMzUsNyBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNzhDQ0REODE5M0FD
OUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiICovLAorCQkJCTM5
MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICov
LAogCQkJCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3Jh
Z2Uuc2IgKi8sCiAJCQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5zYiAqLywKIAkJCSk7CkBAIC03MTA5LDYgKzcxODQsNyBAQAogCQkJCTRB
NDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJCQk1MTA1QjBEMjE2
MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURF
QjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCisJCQkJMzkyRTk0MkEyMTlBMkU4NTAwNTBG
OTgyIC8qIFBheW1lbnRzICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVn
aW5zICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJ
CTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywKQEAgLTcyNzEsNiAr
NzM0Nyw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1hYyAqLywKIAkJCQk1
MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkzMUEyRUM0MDE0ODk5
NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKKwkJCQk1MTdERDVCQjE4MERBN0M0MDA4
MTY2MEIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUFFRkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBs
dWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0MjAwMDZFM0ZFIC8qIFJlbW90ZUxheWVyVHJl
ZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBA
IC04MzcwLDYgKzg0NDcsMTAgQEAKIAkJCQk1QzBCMTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0
d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVC
OTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNz
YWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8q
IFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5
RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTEx
OEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICov
LAogCQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREEyOUEyNTFDQkVCNjdBMDA5MDFDQ0YgLyog
UGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjYxQ0JFQjY3
QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCkBAIC04Njg5LDYgKzg3NzAsMTQgQEAKIAkJCW5hbWUgPSBQREY7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZFRjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9z
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUZFRjM5
QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8sCisJCQkpOworCQkJ
cGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUU0ODlEMjgy
MUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC04ODc1LDcgKzg5NjQsNiBAQAogCQkJCTdBOEE5RDVBMUVGMTMwMjkw
MDk4MDFBRSAvKiBBUElJbmplY3RlZEJ1bmRsZUJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0E4QTlENTgxRUYxMTlCMDAwOTgwMUFFIC8qIEFQSUluamVjdGVkQnVuZGxlQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzc1MTIzMTFERjBERUUyMDA4QTM1MUMgLyogQVBJSW5q
ZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0RTU3RjZCMjFB
ODNCMTIwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzNzY5MDc5RTE4RjM0MEEyMDAxREZGMDQgLyogQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTNBQ0UxQjFFRUVGNzlCMDBBODY0QTQgLyogQVBJSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QThBOUQ1
QzFFRjE0NTk4MDA5ODAxQUUgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTkxNTksNiArOTI0Nyw5IEBACiAJCQkJMUFDNzUzN0Mx
ODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
OEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdERDVCRjE4MERBN0QzMDA4
MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5
QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0
SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGQjAyMTg5MTI2NDAwMjVBODhEIC8q
IFBlbmNpbEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MjE3LDYgKzkzMDgsNyBAQAogCQkJ
CTFBQjE2QUUyMTY0ODY1NkQwMDI5MEQ2MiAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYyNEEyRTE4NzlFNEJDMDAzQUJGMEMgLyogUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUEzRDc1QzE2NTFCNDRGMDA4NzEzRDAgLyogUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTRFNTdGNkIyMUE4M0IxMjAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJl
ZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEREUwQUZBMTgyOThDQzkwMEY5N0VBQSAvKiBS
ZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjI2
NEEwMUExRkY5Q0MwMDFGRTc1OSAvKiBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5j
ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjFBQzZDMTY1MTc1OUUwMEMxN0Q3RiAvKiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDE1Miw2ICsx
MDI0NCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAo
CiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDky
QSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlF
MTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVz
b3VyY2VzICovLAogCQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBjb20uY2lzY28ud2Vi
ZXgucGx1Z2luLmdwYzY0LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFFNTRENDUy
MDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApAQCAtMTA3
NTcsNiArMTA4NTAsMTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50
aW1lT2JqZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5RjAwMDEy
OEFGRCAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3
OTQyMTJCNkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lP
Uy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlB
QTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMjgx
Q0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXlt
ZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZkMGE3
YjU2OTJiMTE5ZmM2N2Y0MjdkZDQ3OWVlMThkMzgxNjNjMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
KworCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRl
eHRNYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMp
KQoreworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS53ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDE3N2Y4ZjJlYzdjNTUzODc3ZDFmYjkw
NDI2ZDEyM2MxNmE2MjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1NXU2VydmVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHBy
aXZhdGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNz
YWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIo
KTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcAppbmRleCBiMGQ3
MDNjNTM3ZjAwNzkwYzRmZmNhOWYzYjFkOWI0MWRkMDhhNDNlLi43YjVkMDAxNjBkZTM1OTk4ZjVk
NTc3YTRiZjM1NThiMTk2NTFjNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRy
b2xsZXIuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENv
bnRyb2xsZXI6OnJlbW92ZVRhcmdldChJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldCYKIAogdm9p
ZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVjdEluc3BlY3Rvcihjb25z
dCBTdHJpbmcmIHRhcmdldElkLCBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlv
blR5cGUgY29ubmVjdGlvblR5cGUpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBt
X3RhcmdldHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0
KHRhcmdldElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCkBAIC03OCw3
ICs3OCw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmNvbm5lY3RJ
bnNwZWN0b3IoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9y
VGFyZ2V0Q29udHJvbGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdl
dElkKQogewotICAgIEluc3BlY3RvclRhcmdldCogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJn
ZXRJZCk7CisgICAgYXV0byogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CiAgICAg
aWYgKCF0YXJnZXQpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFdl
YlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9yKGNvbnN0
IFN0cmluZyYgdGFyZ2V0SQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVy
OjpzZW5kTWVzc2FnZVRvVGFyZ2V0QmFja2VuZChjb25zdCBTdHJpbmcmIHRhcmdldElkLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3Rh
cmdldHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRh
cmdldElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzFlMDE4ZjRjMTgyODM5ZjA3NjEzMjAz
NjAyZGQyODE5YTU5MjA4MS4uNzQzZjY0NGQ2ZWI2OTg0OGNiMTQwMjc3NWMxYmU5NDkwN2EzNWVl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiArNDMs
OSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMu
aCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlVzZXJEYXRh
LmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldl
YkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAjaW5jbHVkZSAiV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIldl
YnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTEyMzIsNiArMTIzOCwzMSBAQCBXZWJMb2Fk
ZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAgIHJldHVy
biBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2
b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVChtX3dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFM
OjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25u
ZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklkZW50
aWZpZXIpLCAwKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgaWYg
KCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVy
KSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVj
dGlvbklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2
b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBjZGUwYjU1YTM4YjlhNDYwMGJl
MzcyNmUyZDhlN2YzMjFiYTcxMDk4Li5hMWIzNzY5MjFiYWYyYzE0ZGY1OGVkNzM3NjFhMTY2YjY0
N2ZlN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4LDYgKzk4
LDkgQEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2Vi
UGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFU
eXBlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdy
b3VwRGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2ViUlRDTmV0
d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24m
IGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRp
YWxTZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2
b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2
YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDM3LDYgKzQ0NSwxMCBA
QCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk+IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBh
NzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZj
NDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkwLDYgKzI5MCw3
IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklH
QVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklD
QVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4
ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxF
X1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFN
RSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDRjNTFkZTA0MWUxOGMyN2M5MmQwZGZlOGYxNWRiYTM3MjUxODBlNWIuLjBiODI1YzhjMmY0YTc0
NWU5NjdmZGVjZjk5YmJlMjg2ZjllMjc1OGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMS0xNCAgWmFtaXVs
IEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1
YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3Mp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE4LTEx
LTI1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgaXQgcG9zc2libGUgdG8gaW5zZXJ0IGVkaXRhYmxlIGltYWdlcyB3aXRoIGEgZ2VzdHVyZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKaW5kZXggZjU4OGYzMmM0MjRmZTgwYTc0ZDYxZGM0Yjc4MDY4MTQx
YjhlYzQzZS4uODdiYTU2YjllNjk0N2M4ZTkzZjVhYTYwYmVmNTJmYzQ2YWNjYjU0MSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCkBAIC0yOTAsNiArMjkwLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFO
REFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1F
KSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsK
IAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxF
X1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MubW0KaW5kZXggM2YxYTYyODg2ODIxMDJhNTg5MmEwZWVmMzJhOTQ0MmEwY2FmNTA4NC4u
YzM0NmFiZmQ2MjBmOTM1NTVmZDgwMDVjOGExYjQwZDhhOWMwNDdiMSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5tbQpAQCAtMTQ0LDYgKzE0NCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKICAgICAvLyBFbnN1cmUgdGhlIHNo
YXJlZCBwcm9jZXNzIHBvb2wgZXhpc3RzIHNvIHRoZSBkYXRhIHN0b3JlIG9wZXJhdGlvbnMgd2Un
cmUgYWJvdXQgdG8gZG8gd29yayB3aXRoIGl0LgogICAgIFdLUHJvY2Vzc1Bvb2wgKnNoYXJlZFBy
b2Nlc3NQb29sID0gW1dLUHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQb29sXTsKIAorICAgIEVY
UEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50
aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3Bs
dWdpblByb2Nlc3NDb3VudF0pOwogCiAgICAgYXV0byAqZGF0YVN0b3JlID0gW1dLV2Vic2l0ZURh
dGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsKQEAgLTE2OCw2ICsxNjksNyBAQCBURVNUKFJlc291
cmNlTG9hZFN0YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAKICAgICBFWFBF
Q1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6
dGFyZ2V0VVJMLnBhdGhdKTsKIAorICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nl
c3NQb29sIF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfRVEoKHNpemVf
dCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BsdWdpblByb2Nlc3NDb3VudF0pOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tCmluZGV4IDYxZGRiYzNkNjNhOWVhODdjMjZlY2EwZDFiZmQ2Njc3NjU3
MzA5MTYuLjI2OWU4NmVkNjVhOWQ0NmVmMzA3M2NiOWRhYTUxMGQxZjk5ZTRmOTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJh
c2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tCkBAIC0xMTMwLDYgKzExMzAsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJz
LCBIYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hvdWxk
IGJlIG5vIHBheW1lbnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJWaWV3
LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRpZmll
cik7CisKICAgICAvLyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBoYXMg
c2VydmljZSB3b3JrZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24uZ2V0
KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA1YjI2NDY3ZDQ0OTViOGEzMjcwYzQ0YjUz
NDk4YzdhMWE3NjM4M2IzLi4yMWMyNDNkNGZlMzE0ZGQwMTk3YjkwYjdiMGEzNDAwZjcwN2ZmZjk3
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMzNSw2ICszMzUsNyBAQCBpbnRlcmZh
Y2UgVGVzdFJ1bm5lciB7CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAg
ICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIHZvaWQgdGVybWlu
YXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRp
ZENhbmNlbENsaWVudFJlZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAxOTAyMWQ4ODRkMTU4MTE1Mzg0
ZjExNTAxMmI2ZGYwZjE4ZWFkMTY0Li5lNDlhOTU4NTAwZDg4YzE3ODc0ODY5ZDk0YjAyMzdjM2M0
YzE0NjBiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTMsNiArMTI5MywxMiBAQCB2b2lkIFRlc3RSdW5uZXI6
OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1bmRsZVBhZ2VQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFn
ZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAor
dm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBXS0J1bmRsZVBh
Z2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBudWxscHRy
KTsKK30KKwogc3RhdGljIHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAg
IHN0YXRpYyB1bnNpZ25lZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CmluZGV4IDdjZDQ3NmU4NzUxZDRkYzU2MDUxNmEzYmU2NjkyOWFhZjE1ZTFkNGYuLjU3ZGE3OTEz
NjMxYWNiYzQ4YWQ2NTJlOTc4NWE3ZmI1MWU1ZmM2MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDgsNiArNDQ4LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZv
aWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhK
U1ZhbHVlUmVmKTsKICAgICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHND
YWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCA1NjM3NGY3MGNjMGY4ZTMwMzNmMjEyOWRkZWEwZjgyNWY3NzU2ZWQ1Li43ZWY3NmE5N2JkZmIx
MDU3YzQ4MDMxMmJmYzBhY2U5ODNiZDM3YmNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMTA3Myw2ICsxMDczLDE1IEBAIGNvbnN0IGNoYXIqIFRlc3RD
b250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKK2NvbnN0IGNoYXIq
IFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc05hbWUoKQoreworI2lmIFBMQVRGT1JNKEZB
TUlMWV9JT1MpCisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKKyNlbHNl
CisgICAgcmV0dXJuICJQYXltZW50IHByb2Nlc3Mgbm90IGF2YWlsYWJsZSBvbiBhbnl0aGluZyBi
dXQgaU9TIjsKKyNlbmRpZgorfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlT
U0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykKIHsKICAgICBXS0NvbnRleHRTZXRBbGxvd3NBbnlT
U0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcocGxhdGZvcm1Db250ZXh0KCksIGFsbG93
cyk7CkBAIC0xNTA3LDYgKzE1MTYsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1By
b2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2wKICAgICBz
dGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KS0+bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpw
YXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5wYXltZW50UHJvY2Vzc0RpZENyYXNoKCk7Cit9CisKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVLZXlEb3duTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZShXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBib29sIHN5bmNocm9u
b3VzKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlLZXkgPSBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJLZXkiKSk7CkBAIC0xODQwLDYgKzE4NTQsMTMg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiAgICAgZXhp
dCgxKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgp
Cit7CisgICAgcGlkX3QgcGlkID0gV0tDb250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVy
KG1fY29udGV4dC5nZXQoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChw
aWQgJWxkKVxuIiwgcGF5bWVudFByb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkp
OworICAgIGV4aXQoMSk7Cit9CisKIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKIAogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZp
Z2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
QEAgLTI2MzksNiArMjY2MCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVTZXJ2
aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclBy
b2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJt
aW5hdGVQYXltZW50UHJvY2VzcygpCit7CisgICAgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFBy
b2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBUZXN0SW52b2NhdGlv
biYpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNjI1YTVi
NTQ2NTkyMmM3YmFmZDk0YjdhY2M4MTI3NjU3YjhiYzkxZi4uN2YwZjc1YjRkYmFmNWQ5MWNmNDUw
Njc5MTU2NTQzNWZjMzVmODQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaApAQCAtMTgxLDYgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciog
d2ViUHJvY2Vzc05hbWUoKTsKICAgICBzdGF0aWMgY29uc3QgY2hhciogbmV0d29ya1Byb2Nlc3NO
YW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRhdGFiYXNlUHJvY2Vzc05hbWUoKTsKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogcGF5bWVudFByb2Nlc3NOYW1lKCk7CiAKICAgICBXb3JrUXVl
dWVNYW5hZ2VyJiB3b3JrUXVldWVNYW5hZ2VyKCkgeyByZXR1cm4gbV93b3JrUXVldWVNYW5hZ2Vy
OyB9CiAKQEAgLTI1Miw2ICsyNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5l
dHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcygp
OworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVtb3Zl
QWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7CiAKQEAgLTM1Nyw2ICszNTksOCBAQCBwcml2YXRlOgog
ICAgIC8vIFdLQ29udGV4dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNzRGlk
Q3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vz
c0RpZENyYXNoKCk7CisgICAgc3RhdGljIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXS0Nv
bnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2go
KTsKIAogICAgIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKICAgICBzdGF0aWMgdm9pZCBkaWRD
b21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKaW5kZXggYjhmY2Q1N2I4NzU5YWFkZjNjZDczZDk5NjFmNTA3YmI4ZWU0NGI4Yi4uMGM0
ZjZhOWNlYzM3YjM3MDU4MzMxNGZmYzgwOTJlZTg0MDVhMTNmYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0NTMsNiArMTQ1MywxMiBAQCBXS1JldGFp
blB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CisgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIikpIHsK
ICAgICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355679</attachid>
            <date>2018-11-26 14:57:03 -0800</date>
            <delta_ts>2018-11-27 18:49:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181126145702.patch</filename>
            <type>text/plain</type>
            <size>138204</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MDFjYWZmYmEyOGE4MDM5YjQwN2VhZTY5ZDgyNmRkODU4YWU3MWNiLi42NmQwYTcwNDY0NGFhMWE3
ZjRkNzgyODNjZTRjMzM3MDYyZDZiMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yNiAgU2FhbSBiYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBJblBsYWNlQWJzdHJhY3RTdGF0ZTo6ZW5kQmFz
aWNCbG9jayBydWxlIGZvciBTZXRMb2NhbCBzaG91bGQgZmlsdGVyIHRoZSB2YWx1ZSBiYXNlZCBv
biB0aGUgZmx1c2ggZm9ybWF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRkMDFkMDllYTA4M2IxYmIyYmVkOGJk
MGQ1ZWYyNTg0NWU2MThkZC4uM2RkNWQ4MTFjZjFlMDFkMzQ4MWVhZDYyODUxNGZkYzlhZWEyMjA5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUg
IDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGgg
ZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAq
IGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMTgtMTEtMjQgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU1ZHIHVzZSBlbGVtZW50IGluc2lkZSBh
IHNoYWRvdyB0cmVlIGNhbm5vdCByZWZlcmVuY2UgYW4gZWxlbWVudCBpbiB0aGUgc2FtZSB0cmVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAwZWU4M2JjZWZmMGQ5NzRmNjBmODc2MmU5YTQwNGMzYmZk
MzNlYzFmLi5mMmJhYjFhMjVlYzI0OTA3OWJjNDhkY2RlYjgyMzA5NjhhY2I5OTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0y
NiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNYWtl
IGl0IGVhc2llciB0byBlbmNvZGUgTlNPYmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiZTIwYWVhZmQwY2Q1
OWI4NzdmYjM0Zjk1NzQ0NGI3ZjcwNTU3MzEuLjg1YzUxN2I1ODUyMmJmOGU1YmIxN2Y1YTVmNDNh
MGFiZTQ1ZjM0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY1IEBACisyMDE4LTExLTE0ICBaYW1p
dWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBz
dHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0Jhc2VUYXJnZXQueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2Uu
eGNjb25maWc6IEFkZGVkLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzOjpQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjp+
UGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlh
bGl6ZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6c2hvdWxk
VGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50
UHJvY2Vzcy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
U3VwcGxlbWVudC5oLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1l
c3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246On5QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1Bh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBQYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW06IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgKiBSZXNvdXJj
ZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiOiBBZGRl
ZC4KKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QYXltZW50
L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oLgorICAgICAgICAqIFNoYXJlZC9Q
cm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwOgorICAgICAgICAoV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAg
ICAoV0tDb250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfdGVybWlu
YXRlUGF5bWVudFByb2Nlc3NdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfcGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1
bmNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6c2VydmljZU5hbWUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmdlbmVyYXRlUGF5bWVudFByb2Nlc3NDYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3du
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojpk
aWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6
OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0U3VwcGxlbWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0U3VwcGxl
bWVudDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNz
dXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlUGF5bWVu
dFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1l
bnRQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRB
bnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0ZvclRlc3Rp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFRvUGF5bWVudFByb2Nlc3NSZWxhdW5jaGluZ0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6fldl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9z
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudHMvV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzdGFydE1lbW9yeVNhbXBsZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzdG9wTWVtb3J5U2FtcGxlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFRleHRDaGVja2VyU3RhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWxlYXNlUGFnZUNhY2hlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0SGlk
ZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3Mp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmdldEFjdGl2ZVBhZ2Vz
T3JpZ2luc0ZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Ojp1cGRhdGVDUFVMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnVwZGF0ZUNQVU1vbml0b3JTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBhZ2VBY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcmVw
YXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2Fu
Y2VsUHJlcGFyZVRvU3VzcGVuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmNhbmNlbE1hcmtBbGxMYXllcnNWb2xhdGlsZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZW5kUHJld2FybUluZm9ybWF0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFnZURpZEVudGVyV2lu
ZG93KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFnZVdpbGxMZWF2
ZVdpbmRvdyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Om5vblZpc2li
bGVQcm9jZXNzQ2xlYW51cFRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybUhhbmRsZXNU
b09iamVjdHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp0cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0TWVtb3J5Q2FjaGVEaXNhYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnNldEVuYWJsZWRTZXJ2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZXN0cm95QXV0b21hdGlvblNlc3Npb25Qcm94eSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZWZldGNoRE5TKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzVmlzaWJsZVdlYlBhZ2UgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpsaWJXZWJSVENOZXR3
b3JrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29y
a2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFNjcmVlblByb3BlcnRpZXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphZGRNb2NrTWVkaWFEZXZpY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjbGVhck1vY2tNZWRpYURl
dmljZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZW1vdmVNb2Nr
TWVkaWFEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNl
dE1vY2tNZWRpYURldmljZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oOgorCiAyMDE4LTExLTI2ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ29jb2FdIE1ha2UgaXQgZWFzaWVyIHRvIGVuY29kZSBOU09iamVjdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ZGFjNjA5YTA3NmFmNmExMWU5ZjA4MjZlNTUxODg1
ZThjYjM5NzM1Li4xYzE1MDgwMWUxNzRiNWIwNjIzYzRmYTRkNWI3ZTdmNDdiOTA3MTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMTEtMTQgIFph
bWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNz
IHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6
CisKIDIwMTgtMTEtMjUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBpbnNlcnQgZWRpdGFibGUgaW1hZ2VzIHdpdGgg
YSBnZXN0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZjU4OGYzMmM0MjRmZTgwYTc0
ZDYxZGM0Yjc4MDY4MTQxYjhlYzQzZS4uODdiYTU2YjllNjk0N2M4ZTkzZjVhYTYwYmVmNTJmYzQ2
YWNjYjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkwLDYgKzI5MCw3IEBAIEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9T
VEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
XyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5B
QkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVf
UEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJ
VF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44
N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAt
MjkwLDYgKzI5MCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0g
RU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVO
QUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNB
VElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BS
T0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tf
UExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4MGE3
NGQ2MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUyZmM0
NmFjY2I1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsyOTAsNyBAQCBFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRB
TE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdL
X1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9O
T1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gOwogRU5BQkxFX1BBWU1F
TlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExV
R0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDgzMTBkZDAwNDRj
ZGRkMmQ4YTJhNmNhYmIyMjcxNGE3M2Q0OTY5OWMuLjFkMDZmY2M3NjYzZTg4MDRlOGI4YTlhNWI2
ZWYwMTk5NmRkNzU0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncwpAQCAtNDMsNiArNDMsOSBAQAogLyogVmlzaWJsZSBuYW1lIG9mIFNlcnZpY2UgV29y
a2VyIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIl
QCBTZXJ2aWNlIFdvcmtlciAoJUApIiA9ICIlQCBTZXJ2aWNlIFdvcmtlciAoJUApIjsKIAorLyog
dmlzaWJsZSBuYW1lIG9mIHRoZSBwYXltZW50IHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUg
YXBwbGljYXRpb24gbmFtZS4gKi8KKyIlQCBQYXltZW50cyIgPSAiJUAgUGF5bWVudHMiOworCiAv
KiBWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFw
cGxpY2F0aW9uIG5hbWUuICovCiAiJUAgV2ViIENvbnRlbnQiID0gIiVAIFdlYiBDb250ZW50IjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKaW5kZXggZjE2MTU0MjczMjZkODhiYWFkYjVlOTNjMjNkY2E3NTQz
YjE4MDRjNS4uZDE0NTFhMDQ4OGJhOTRlYTM4ODZiNWQ0OGI2NmQzMWYwMzhkNDAwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CkBAIC0xNSw2ICsxNSw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RP
UklFUwogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUiCiAgICAgIiR7
V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2F0Y2hvcyIKICAgICAiJHtXRUJLSVRfRElSfS9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMiCisgICAgIiR7V0VCS0lUX0RJUn0vUGF5bWVudFByb2Nlc3Mi
CiAgICAgIiR7V0VCS0lUX0RJUn0vUGxhdGZvcm0iCiAgICAgIiR7V0VCS0lUX0RJUn0vUGxhdGZv
cm0vSVBDIgogICAgICIke1dFQktJVF9ESVJ9L1BsdWdpblByb2Nlc3MiCkBAIC0yNyw2ICsyOCw3
IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1No
YXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9GaWxl
QVBJIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9HYW1lcGFkIgorICAgICIke1dFQktJVF9E
SVJ9L1NoYXJlZC9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zIgog
ICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJ
VF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMSIKQEAgLTQ1LDYgKzQ3LDcgQEAgc2V0
KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L05ldHdvcmsiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJv
dG9jb2xzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgorICAg
ICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1VzZXJDb250ZW50IgpAQCAtMTIx
LDYgKzEyNCw5IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQubWVzc2FnZXMuaW4KIAorICAgIFBheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAgUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMTUxLDYgKzE1Nyw4IEBAIHNldChXZWJLaXRfTUVTU0FH
RVNfSU5fRklMRVMKIAogICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIxLDYgKzIyOSwxMCBAQCBzZXQoTmV0d29y
a1Byb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCiAKK3NldChQYXltZW50UHJvY2Vzc19M
SUJSQVJJRVMKKyAgICBXZWJLaXQKKykKKwogc2V0KFBsdWdpblByb2Nlc3NfTElCUkFSSUVTCiAg
ICAgV2ViS2l0CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jh
c2VUYXJnZXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJn
ZXQueGNjb25maWcKaW5kZXggNDA1ZDYzYmJiMDEyYTM5ZTY1ZGE4YmE4Yjg5MDgzNThhMjU4YmQ2
Yy4uZWViN2EyNmFkYTE0NjNkMmFkNWE4ZGNmZGIyMDZhNGQ2M2NmM2UyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwpAQCAtMTExLDYg
KzExMSw4IEBAIFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OW3Nkaz1tYWNvc3gqXVthcmNoPWkzODZd
ID0gTk87CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FUyA9ICQoV0tfQ09SRV9QUkVESUNUSU9O
X0RFRklORVNfJChXS19IQVZFX0NPUkVfUFJFRElDVElPTikpOwogV0tfQ09SRV9QUkVESUNUSU9O
X0RFRklORVNfWUVTID0gSEFWRV9DT1JFX1BSRURJQ1RJT047CiAKK1dLX1BBWU1FTlRfU0VSVklD
RV9QUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzOworCiBXS19TVE9SQUdF
X1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gJChXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1F
XyQoV0tfVVNFX0xFR0FDWV9TVE9SQUdFX1NFUlZJQ0VfTkFNRSkpOwogV0tfU1RPUkFHRV9TRVJW
SUNFX1BST0RVQ1RfTkFNRV8gPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfTk8p
OwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyA9IGNvbS5hcHBsZS5XZWJLaXQu
U3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4MGE3NGQ2MWRjNGI3ODA2ODE0MWI4
ZWM0M2UuLjg3YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUyZmM0NmFjY2I1NDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtMjkwLDYgKzI5MCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRv
dWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMg
PSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05P
VElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlN
RU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
XyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJh
dGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y3YjE4OWI0MjYyNDk0
MDEyNTg5YmEwMTcxODVhOTM4MTQ2ZjRjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcKQEAgLTAsMCArMSwzMyBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8vIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisvLyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8gUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorLy8g
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJCYXNlWFBD
U2VydmljZS54Y2NvbmZpZyIKKworV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF9O
TyA9IDsKKworQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VDSF9OTyA9ICQoV0tfUEFZ
TUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF8kKFdLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVN
RU5UUykpOworT1RIRVJfQ09ERV9TSUdOX0ZMQUdTID0gJChXS19MSUJSQVJZX1ZBTElEQVRJT05f
Q09ERV9TSUdOX0ZMQUdTKTsKKworUFJPRFVDVF9OQU1FID0gJChXS19QQVlNRU5UX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FKTsKK1BST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFN
RSk7CitJTkZPUExJU1RfRklMRSA9IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBk
NjdkNDhjNjRkNzI5YmNmZWU4MGY1YWM0MGY0ZTdjM2ViYzc3MzI0Li5kMzE3NWFkOGIwYjMyYzdm
NTY2NmE2YjNiZDI3ZTNkOTI2NTIyYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0zMCw2ICszMCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQiBcCiAgICAg
JChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyIFwKKyAgICAkKFdlYktpdDIp
L1BheW1lbnRQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MgXAogICAgICQo
V2ViS2l0MikvUGx1Z2luUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1BsdWdp
bnMgXApAQCAtNzMsNiArNzQsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vz
cy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvUGF5bWVudHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1Bs
dWdpbnMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSBcCiAgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvU3RvcmFnZSBcCkBAIC0xMjEsNiArMTIzLDEwIEBAIE1FU1NB
R0VfUkVDRUlWRVJTID0gXAogICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0gXAogICAgIFBsYXliYWNr
U2Vzc2lvbk1hbmFnZXIgXAogICAgIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSBcCisgICAg
TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgXAorICAgIFBheW1lbnRQcm9jZXNzIFwKKyAg
ICBQYXltZW50UHJvY2Vzc1Byb3h5IFwKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
biBcCiAgICAgUGx1Z2luQ29udHJvbGxlclByb3h5IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAg
ICBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZmFjZjRmYmIxNDcyYWNmYmUw
ZjQ2MTc1MDgwZmUyOTY3NDBhMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9jZXNzJiBQYXltZW50UHJvY2Vzczo6
c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+
IHByb2Nlc3M7CisgICAgcmV0dXJuIHByb2Nlc3M7Cit9CisKK1BheW1lbnRQcm9jZXNzOjpQYXlt
ZW50UHJvY2VzcygpCit7Cit9CisKK1BheW1lbnRQcm9jZXNzOjp+UGF5bWVudFByb2Nlc3MoKQor
eworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplQ29u
bmVjdGlvbihjb25uZWN0aW9uKTsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzczo6c2hvdWxkVGVy
bWluYXRlKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIpCit7CisgICAgaWYgKG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vz
c01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNoaWxk
UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIENoaWxkUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NmIzYTE3MzU4MzU0NDQyMzRmNTljYzZhNTQ0OTRlN2Y3N2E4MzIyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHBhbC9TZXNz
aW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjsKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czsKKworY2xhc3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVyRGVz
dHJveWVkPFBheW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFByb2Nl
c3MmIHNpbmdsZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vz
c1R5cGUgPSBQcm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2VzcygpOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNzKCk7CisK
KyAgICAvLyBDaGlsZFByb2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJp
ZGU7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmKTsKKyAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
OGI5MTRmYzRhOGY0NDcxOGNmYTEyNTc2ZDMzOGRhZTU5MmFhMGUzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBQYXltZW50UHJv
Y2VzcyB7CisgICAgCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQzNjJkZjY0ODAwOGUyMjBhOTU3YmY4
NDc3YWQ2OGJmZGRmYzY3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsOTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1JlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKworUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6
IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29u
bmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICAvLyBOT1RFOiB3ZSBtdXN0IHNldCB0
aGlzIHRvIHRydWUgYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIG1heSByZS1lbnRlciB3
aGVuIHNlbmRpbmcKKyAgICAvLyBhIHN5bmMgSVBDIGFuZCB0aGlzIGlzIGEgaHVnZSBzb3VyY2Ug
b2Ygc2VjdXJpdHkgYnVncworICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0Fz
RGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdl
KHRydWUpCisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIG1f
Y29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpIHsKKyAgICAgICAgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVQYXlt
ZW50UHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwor
fQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKG1lc3Nh
Z2VSZWNlaXZlck5hbWUpOworICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlTmFtZSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ5YTllYjRhMTM3NjQ0MTE2Y2Fj
ZWQwMzgzMDdhYjM0MDgxY2ZmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBw
cml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgflBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworCisg
ICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRSZWNlaXZlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKworICAgIC8vIElQQzo6
TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRf
dCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTdmMGQ4Njg5
OTU4MzgzYWE4MWRjYzgyZDNjYjdkNWM0NDRkODg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24geworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFhNWUzNzBmNTQ4NTQyNzNkMzM4NGFmZGRiNTZlNjFjNjgzOTU2NjIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5t
bQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgIlBh
eW1lbnRQcm9jZXNzLmgiCisKKyNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaCIKKworI2RlZmluZSBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcgMAorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nl
c3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwor
dm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKK3sKKyNpZiBFTkFCTEVfTUFOVUFMX0RBVEFCQVNF
X1NBTkRCT1hJTkcKKyAgICAvLyBOZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNl
IHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1bmRsZSBJRC4KKyAgICBOU0J1bmRsZSAqd2Via2l0
MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldL
V2ViVmlldyIpXTsKKyAgICBzYW5kYm94UGFyYW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9m
aWxlUGF0aChbd2Via2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0
LlBheW1lbnRzIiBvZlR5cGU6QCJzYiJdKTsKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVT
YW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKKyNlbmRpZgorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKworI2VuZGlmIC8v
IFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGIv
U291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzLnNiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwNjcyYzY4NmIxNjY3YWQ5N2Y1ZGZkNzVhNGIz
YTdiZGMwNjA3YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKQEAgLTAsMCAr
MSwzMiBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorOworOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKzsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorOworOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCis7IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Cis7IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCis7IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworKHZlcnNpb24g
MSkKKyhkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhhbGxvdyBz
eXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQorCisoaW1wb3J0ICJjb21tb24uc2IiKQor
CisoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQorCisoZGVu
eSBsc29wZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IGE3MmJjOTI5ZGJk
N2M3NGMyMjY2OWI4MjMxN2E2MWZmYWJkZjM3NjkuLjVkMGNjNmUyZjU0ZDM2ODMyZGQyNWY4N2Mw
ODI3NzA5M2JkYzNhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC00OSw2
ICs0OSw5IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQ29udGVudCwKICAgICAgICAgTmV0d29yaywK
ICAgICAgICAgUGx1Z2luCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5
bWVudAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHZv
aWQgaW5pdGlhbGl6ZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA4MzMxMmNm
ODhmN2RmOTY0OWIyZDM2MmJkNzQ2MTExMDBmODMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5zZXNzaW9uSUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQv
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MGEwOWFiN2VmZDdmMjA5NGZlNmQ2N2VmNDViOWYzODQ2NzM3YWUxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKgorICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworc3RydWN0IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpOworCisgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYs
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQ
QVlNRU5UKFBBWU1FTlRfUFJPQ0VTUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhl
Y3V0YWJsZVBhdGguaAppbmRleCAyY2U3MTZlNGM3MmU1ODJhYmUzMGY0ODc5ZDJjNmViOWU0OTlh
OTdiLi42MmI1NDc0ZWZhYTcyNGVhYjUyOGI0ZjY3MDE3OTFmMGNlOWFhZGUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaApAQCAtMzIsNSArMzIsOCBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2Vzcygp
OwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0
YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGF5bWVudFByb2Nlc3MoKTsKKyNlbmRpZiAvLyAhRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggODc2NmRmZDMwMjA5NjMx
ZDM5OGE1Mzk4MzhjZWE5ZmMwNGE4NzdmYS4uZWFhMmMzZTY3NTNlM2I5OGE4NGJmYzUzZWJiMDgz
ODUxYWRjNjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC03OSw2ICs3OSw5IEBAIE5ldHdvcmtQcm9jZXNz
L2NhcHR1cmUvTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcAogCiBOZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya01ETlNSZWdpc3Rlci5jcHAKIAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuY3BwCitQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
KwogLy8gVE9ETzogV2Ugc2hvdWxkIHVuaWZ5IHRoZXNlIGZpbGVzIG9uY2UgR1RLJ3MgUGx1Z2lu
UHJvY2VzczIgaXMgcmVtb3ZlZC4KIFBsYXRmb3JtL0xvZ2dpbmcuY3BwIEBuby11bmlmeQogUGxh
dGZvcm0vTW9kdWxlLmNwcCBAbm8tdW5pZnkKQEAgLTIwNyw2ICsyMTAsOCBAQCBTaGFyZWQvRGF0
YWJhc2VzL0luZGV4ZWREQi9XZWJJREJSZXN1bHQuY3BwCiAKIFNoYXJlZC9HYW1lcGFkL0dhbWVw
YWREYXRhLmNwcAogCitTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKKwogLy8gVE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBH
VEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgogU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlm
aWVyRGF0YS5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNl
aXZlci5jcHAgQG5vLXVuaWZ5CkBAIC0zODAsNiArMzg1LDggQEAgVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vz
c1Byb3h5LmNwcAorCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5j
cHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtNDgwLDYgKzQ4Nyw4IEBAIFdlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCitXZWJQcm9jZXNzL1Bh
eW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiAvLyBUT0RPOiBUaGVz
ZSBmaWxlcyBzaG91bGQgYmUgdW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJl
bW92ZWQuCiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggODY0M2RhZTZiZTQzNmI4ZWZjZjc5YzEwMTUwOGYyNTY1YjQyYTMx
Yy4uNWNkZGNkZjVhMTYzZjZlNGI4N2Y4MjkwOTk3OGM4NzFjMmZiMDU3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dApAQCAtMTgzLDYgKzE4Myw4IEBAIFNoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50
LmNwcAogU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQogU2hhcmVkL21hYy9XZWJN
ZW1vcnlTYW1wbGVyLm1hYy5tbQogCitQYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJ
T1MubW0KKwogU2hhcmVkL1BsdWdpbnMvbWFjL1BsdWdpblNhbmRib3hQcm9maWxlLm1tCiAKIFNo
YXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggODcwMTZhYjc1
OGViYzEyZDM5OGRmZmQzYzA1YjhmMjFhYjUwNTI2OC4uZmE3MTg5MTM1YmUzYTljMTBlYTg3Yjgw
OWNhZDFkYmIzMjkwNWNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwCkBAIC02MjEsMTEgKzYyMSwyNyBAQCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHRvSW1wbChjb250
ZXh0KS0+dGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcygpOwogfQogCit2b2lkIFdLQ29u
dGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQoreworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVQ
YXltZW50UHJvY2Vzc0ZvclRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorfQorCiBQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJl
ZiktPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCitQcm9jZXNzSUQgV0tDb250ZXh0
R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQorewor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVm
KS0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIHZvaWQgV0tDb250ZXh0QWRkU3Vw
cG9ydGVkUGx1Z2luKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkb21haW5S
ZWYsIFdLU3RyaW5nUmVmIG5hbWVSZWYsIFdLQXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5
UmVmIGV4dGVuc2lvbnNSZWYpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5k
ZXggNDZkMzdlMWU4YTE1ODk1ODBhMzU1MzhlZTVmNmY5YmMyZDgwZTIyYy4uNDBkYWNlYjU3Yzkx
YzI2NDM1NWJhYmQ2YWUzNWQyOGE0MjdlNjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTMsNiArOTMsOCBAQCBXS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29s
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKFdLQ29u
dGV4dFJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5h
dGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYpOworCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcoV0tDb250ZXh0
UmVmLCBib29sKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yU2VydmljZVdvcmtlclRlc3RpbmcoV0tDb250ZXh0UmVmLCBib29sKTsKIApAQCAt
MTEyLDYgKzExNCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxpc3Qo
V0tDb250ZXh0UmVmLCBXS0FycmF5UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFByZWNv
bm5lY3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJMKTsK
IAogV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250
ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAog
V0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJlZiBj
b250ZXh0LCBXS1N0cmluZ1JlZiBkb21haW4sIFdLU3RyaW5nUmVmIG5hbWUsIFdLQXJyYXlSZWYg
bWltZVR5cGVzLCBXS0FycmF5UmVmIGV4dGVuc2lvbnMpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250
ZXh0Q2xlYXJTdXBwb3J0ZWRQbHVnaW5zKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXgg
Y2Q5MDI1ZTdlYmE4ZTZjMmFkYjJiZmY1MDdjYThkYzQ0Mzg2ZTdiMS4uOTIzZTkyMjBlNzQzMmQ1
YTMyZDAwYmUzYjcwODBkNzI2Mjg3NTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQyNCw2ICs0MjQsMTMgQEAgLSAo
dm9pZClfY2xlYXJTdXBwb3J0ZWRQbHVnaW5zCiAgICAgX3Byb2Nlc3NQb29sLT5jbGVhclN1cHBv
cnRlZFBsdWdpbnMoKTsKIH0KIAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3MKK3sK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIF9wcm9jZXNzUG9vbC0+dGVybWluYXRl
UGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKK30KKwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKIHsKICAgICBfcHJv
Y2Vzc1Bvb2wtPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC00NDQsNiArNDUxLDE1IEBA
IC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIKICAgICByZXR1cm4gX3Byb2Nlc3NQ
b29sLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorLSAocGlkX3QpX3BheW1lbnRQ
cm9jZXNzSWRlbnRpZmllcgoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcmV0
dXJuIF9wcm9jZXNzUG9vbC0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAg
IHJldHVybiAwOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZv
aWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnN5bmNO
ZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggNGQzYTE5MTIwYWJk
NDllZWUwNDkyNzk0YTc3ZjRhZmIwNmNkZTkwYy4uM2U2YTkxMjg4NmM2ZGE4NmU4MmU0YTUxNmQ0
MTZjMzE2NzU4Y2MyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTg0LDEyICs4NCwxNCBAQAogLSAo
X1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0
YSBwYXRoOihOU1N0cmluZyAqKXBhdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBv
bmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KKy0gKHZvaWQp
X3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3M7
CiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZvaWQpX2Rpc2FibGVTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQp
LCBpb3MoMTIuMCkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJ
ZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0g
KHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHNpemVf
dClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDEx
LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xh
dW5jaGVyLmgKaW5kZXggZTA3ZGJhMjcyYTJlMTViZTgyOWRlMjM0YzVkZDUwZDU3MzhlMWEwYy4u
MTRhMzlmYThjZTc1YTU5YzMxYTE4NjgzZGNhZDA2NTE4MGRmM2Q4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTU4LDYg
KzU4LDkgQEAgcHVibGljOgogICAgICAgICBQbHVnaW42NCwKICNlbmRpZgogICAgICAgICBOZXR3
b3JrLAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1lbnQsCisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB9OwogCiAgICAgc3RydWN0IExhdW5j
aE9wdGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggNmNiYWMyNWQ3ODRjMGVlZWE1OGE2
ODRhYjQ2ODQ0NWFlMmUzOTI2Mi4uODQ2NzY0NTc5ZTYxOTZmNzBmZDA0N2Y0M2RhZmI5YzZkOTRk
MTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1By
b2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC02Miw2ICs2MiwxMCBAQCBzdGF0aWMgY29u
c3QgY2hhciogc2VydmljZU5hbWUoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPcHRpbwogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1
Z2luNjQ6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQiOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hl
cjo6UHJvY2Vzc1R5cGU6OlBheW1lbnQ6CisgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktp
dC5QYXltZW50cyI7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVu
dFByb2Nlc3NQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZlMzI1ODliOWJiYzU4OTU1ZGQ2OGFhNzNj
NjJmM2JkYjQ5Mzk1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCkBAIC0wLDAgKzEsMTM1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisKKyNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9j
ZXNzUG9vbCkKKyAgICA6IENoaWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNB
dEJhY2tncm91bmRQcmlvcml0eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkK
KyAgICAsIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQoreworICAgIGNvbm5lY3Qo
KTsKK30KKworUGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQorewor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQorewor
ICAgIHRlcm1pbmF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBl
bmQoV1RGTW92ZShyZXBseSkpOworICAgIAorICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpMYXVu
Y2hpbmcpIHsKKyAgICAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKys7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNz
ID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOworICAgIAor
ICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBzZWN1cml0eU9yaWdpbiksIDAs
IElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KTsKK30KKyAgICAKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9u
cyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCit7CisgICAg
bGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6
OlBheW1lbnQ7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMobGF1bmNo
T3B0aW9ucyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0
RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJUX1VOVVNFRChj
b25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24m
KQoreworICAgIGF1dG8gcHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bv
b2wpOworCisgICAgLy8gVGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBl
eGl0ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisg
ICAgd2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOwor
ICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKyAgICAvLyBUZWxsIFByb2Nlc3NQb29s
IHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMg
dG8gYmUgZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCgq
dGhpcyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit2b2lk
IGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKQoreworfQorICAgIAordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRD
cmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQm
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hl
ciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllcikKK3sKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5j
aGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6
aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIEZJ
WE1FOiBEbyBiZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0
czsgKytpKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAgIAorICAgIG1f
bnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTAzMWM3YzY3YjRmMGU5NDI2YjExZDEwZjFlNTU0NTk1Nzg0ZjA1YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNz
UHJveHkuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5Lmgi
CisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5E
YXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Citj
bGFzcyBXZWJQcm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVj
dCBXZWJzaXRlRGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1Ymxp
YyBDaGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7Cisg
ICAgCisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBnZXRQYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisKK3By
aXZhdGU6CisgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlv
bnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBw
cm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8g
SVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2Uo
SVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9p
ZCBkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFj
aG1lbnQmKTsKKworICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRG
aW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyKSBvdmVycmlkZTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQb29sOworCisg
ICAgdW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAgIERlcXVlPE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjBkNTE3NzJhYWVlYzcwZWJjNjBmMzU0
NmI4ZTEyNzZmODA2NDZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4
IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94eSB7CisgICAg
RGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNv
bm5lY3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKaW5kZXgg
ZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uYmVjNzliNTRjYmY2YzZl
YzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQgKzQ2LDExIEBAIHZvaWQgV2ViQ29udGV4dENs
aWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wp
CiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShwcm9jZXNzUG9vbCks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdlYlBy
b2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2ZDRlZThkNzc4ZDU2
NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFiOWVkY2M4NDUzOTE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCkBAIC00NSw2
ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdL
Q29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2Vu
ZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVu
dC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5MzRmYTYuLjJjNmFj
YmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiArMjksMTAgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5OworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3Mg
V2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikKICAgICB7CiAgICAg
fQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmlydHVhbCB2b2lkIHBy
b2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7CisgICAgfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNzUG9vbCogcHJvY2Vz
c1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAgdm9pZCBjbGVhclBy
b2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IDU4OWJiY2U3NjYyYzhiYzUy
ZDZmZWQyYmZiNzZiY2M1ODViYTJkZGIuLmFlN2M5OWZhOGQwOWIyMzVhNDBmZmRkNTI0YjkyZTQ0
YTZiOTc5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5jcHAKQEAgLTYzMSw3ICs2MzEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShj
b25zdCBDZXJ0aWZpY2F0ZUluZm8mKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
aG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCmluZGV4IDdkNGFjMzcyNjNiNWQzODI4MDg3Y2VjODNkMjA4M2M3NDNkNjA1YzUuLjk4
OGZiYzYxYWJhNTkzMGMxMjZmN2Y4OWEyOTMwMTgzNmI5ZjBlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBACiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBh
ZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC00NDIsNiArNDQ2LDkgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRp
Y2FsKQogewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQcm9jZXNzOjpE
aWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CiAgICAgc2VuZFRvTmV0
d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVBy
ZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2
ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2lu
UHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3Jp
dGljYWwpOwogI2VuZGlmCkBAIC02MTcsNiArNjI0LDM2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQ
cm94CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHdl
YlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKK3sK
KyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MgPSBz
dGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+KCp0aGlzKTsKK30KKyAgICAKK3Zv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNz
UHJveHkmIHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwg
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAg
IG1fcGF5bWVudFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNz
UHJveHksIFdURk1vdmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVu
dFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkmIHBheW1lbnRQcm9jZXNzUHJveHkp
Cit7CisgICAgQVNTRVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJv
Y2Vzc1Byb3h5ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBz
dXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+
cHJvY2Vzc0RpZENsb3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5
bWVudFByb2Nlc3NEaWRDcmFzaCh0aGlzKTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9u
KQorICAgICAgICBtX2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5
bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpl
c3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1By
b2Nlc3NQcm94eSYgcHJveHksIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBz
dGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQpCiB7CkBAIC02OTMsNiArNzMw
LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGUKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9j
ZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgfQogfQpAQCAtMTM1MSw2ICsxMzkx
LDE1IEBAIFZlY3RvcjxTdHJpbmc+IFdlYlByb2Nlc3NQb29sOjphY3RpdmVQYWdlc09yaWdpbnNJ
bldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJCiAgICAgfQogICAgIHJldHVybiB7IH07CiB9
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9jZXNzUG9vbDo6
cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3Mp
CisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAog
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9v
bCBhbHdheXNVc2VDb21wbGV4VGV4dCkKIHsKQEAgLTE2MjIsNiArMTY3MSwxNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKICAgICBpZiAobV9uZXR3b3Jr
UHJvY2VzcykKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKSwgMCk7CiB9CisgICAgCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1l
bnRQcm9jZXNzRm9yVGVzdGluZygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3BheW1lbnRQcm9jZXNzLT50ZXJtaW5hdGVGb3JUZXN0aW5n
KCk7CisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlTmV0d29y
a1Byb2Nlc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5k
ZXggZDI4NDNmZjY2ODI4Zjk1NTZmYzIzYjcxMzBjYjg0NmFhYTdhNmQ3YS4uMzExNmJlZGJhOTcz
NTRjMGFjYjY3YjRmMTY3NzQ1ZTU3YTQ3Zjk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90
dGxlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRl
ICJTdGF0aXN0aWNzUmVxdWVzdC5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5j
bHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgpAQCAt
MTczLDYgKzE3NiwxMiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4gdm9pZCBzZW5kU3luY1RvTmV0d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiBy
ZXBseSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJv
Y2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICAvLyBTZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9y
IFBheW1lbnRQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVs
LgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFByb2Nlc3MoVCYm
IG1lc3NhZ2UpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvUGF5bWVudFBy
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCiAgICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5n
KFdlYlByb2Nlc3NQcm94eSopOwogCiAgICAgLy8gRGlzY29ubmVjdCB0aGUgcHJvY2VzcyBmcm9t
IHRoZSBjb250ZXh0LgpAQCAtMjE3LDYgKzIyNiw5IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzSUQg
bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gYWN0aXZlUGFn
ZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZyhQcm9jZXNzSUQpOwogICAgIGJvb2wgbmV0
d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQcm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVu
dGlmaWVyKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBh
Z2VHcm91cCYgZGVmYXVsdFBhZ2VHcm91cCgpIHsgcmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5n
ZXQoKTsgfQogCkBAIC0yNzYsNiArMjg4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dz
QW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2Fj
aGVkQ3JlZGVudGlhbHMoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQg
dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAg
dm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxl
U2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCk7CkBAIC0zNDQsNiArMzU5LDEy
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICB2b2lkIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQ
cm94eSogcGF5bWVudFByb2Nlc3MoKSB7IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9
CisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5Jiwg
UEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9p
ZCBwYXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAg
IHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5l
dHdvcmtQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpv
cHRpb25hbDxQQUw6OlNlc3Npb25JRD4pOwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkq
IHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29u
c3Q7CkBAIC02NDMsNiArNjY0LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRU
UFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQ
cm9jZXNzQ3Jhc2ggeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vz
c1Byb3h5PiBtX25ldHdvcmtQcm9jZXNzOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0
aWNzUmVxdWVzdHM7CkBAIC03NDQsNiArNzY4LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNl
bmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkK
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7
CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4K
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQor
eworICAgIGlmIChtX3BheW1lbnRQcm9jZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRN
ZXNzYWdlKCkpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+
KG1lc3NhZ2UpLCAwKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVz
c2FnZSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nl
c3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA3YjYxZWYyNTIzZDJj
OWIxMjBhY2M2MWM1ZTQ5YmExOTU1NDNhNDJhLi43NzkyYWYxNGY2M2NhMmFlYjQ2MGZmOGUxNTNi
MmM2NjIyZThlMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKQEAgLTYyOCw2ICs2MjgsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAg
ICBtX3Byb2Nlc3NQb29sLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1v
dmUocmVwbHkpKTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0
aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIG1fcHJvY2Vzc1Bvb2wt
PmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RG
TW92ZShyZXBseSkpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5n
RGVidWdnZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAppbmRleCBkYmMyMmE1YTljOWEyMWJhYzNkZGMyZmEyZjRiZjhjMDBkNGJiNWQxLi45MmE2ZGY4
ZTgzZjEzZmZjNjRjYzQwYjRjMDRlZjQxN2U3YmYxNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjg3LDYgKzI4Nyw5IEBAIHByaXZhdGU6CiAjZW5k
aWYKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsK
IAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkm
Jik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3Jt
SXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5q
ZWN0ZWRDb2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2YTk4ZjRlOTYwNDdkYWJmMTY0YTc2MTBh
ODdmMmE5ZjY4NjBiNDhhLi44ZjVlMWQ2NjYwYjE1MGQ3NTczMGE2M2UxZjA5M2Q0M2Y2YTM2ZDI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCkBAIC0zNyw2ICszNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3Qg
cGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUs
IGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlm
CiAgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICBHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Np
b25JRCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQo
KQogICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRl
eCBiOTBjMTQyNDE3NmM2NTE1ZTdlZTRhNTYyMmI4ZWM2ZWJlMjZjMzgxLi44YTc5ZDRmZDg5YmI0
YzI0NjJhMDJkNzJlYjQ3N2U2ZDE3OGNkOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzQsNiAr
MzQsMTAgQEAKICNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViQ29va2llTWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Bvb2wuaCIKQEAgLTEzNSw2ICsxMzksOSBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+
V2Vic2l0ZURhdGFTdG9yZSgpCiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0RGF0YVN0b3Jlcygp
LmdldChtX3Nlc3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1bHREYXRhU3RvcmVz
KCkucmVtb3ZlKG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6
IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgeworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgICAgICAgICBkZXN0cm95UGF5bWVudFByb2Nlc3NTZXNzaW9uKHByb2Nl
c3NQb29sKTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0g
cHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAgICAgICAgICAgbmV0d29ya1By
b2Nlc3MtPnJlbW92ZVNlc3Npb24obV9zZXNzaW9uSUQpOwogICAgICAgICB9CkBAIC0xMzIyLDYg
KzEzMjksMTMgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNz
SGFuZGxlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYKICAgICB9CiB9CiAKK3ZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6ZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbihXZWJQcm9jZXNzUG9v
bCogcG9vbCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHBvb2wtPnNlbmRU
b1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24o
bV9zZXNzaW9uSUQpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorICAg
IAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBkb21haW5zKQogewogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBw
cm9jZXNzUG9vbHMoKSkKQEAgLTE2MjYsNiArMTY0MCwxOSBAQCB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25I
YW5kbAogICAgIGNhbGxiYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGF5bWVu
dFByb2Nlc3NQYXJhbWV0ZXJzKCkKK3sKKyAgICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2Fy
eSgpOworCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsK
KworICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7CisKKyAgICByZXR1cm4g
cGFyYW1ldGVyczsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBXZWJzaXRlRGF0YVN0b3JlOjpwZW5kaW5nQ29va2llcygpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGNvcHlUb1ZlY3RvcihtX3BlbmRpbmdDb29raWVzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAppbmRleCA4NTJiNmJiNWQzNmZiYjZlOTU5OTJlODgyNDY4YjI2YmRkOTA3MTU5Li41YTYz
NjM5NDliNmVmMDYzYzkwMjU0ZTZhYThkOWY0YjRjOTk4NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02
Niw2ICs2Niw5IEBAIGNsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGVudW0g
Y2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBl
Owogc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogc3RydWN0IFdlYnNpdGVEYXRh
UmVjb3JkOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xNzEsNiAr
MTc0LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlBy
b2Nlc3NQb29sJikgY29uc3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJh
bWV0ZXJzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgZGVzdHJveVBheW1lbnRQcm9jZXNz
U2Vzc2lvbihXZWJQcm9jZXNzUG9vbCopOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4g
cGVuZGluZ0Nvb2tpZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3Qg
V2ViQ29yZTo6Q29va2llJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2MWQ5NDgxZjUzMmNlNzk0M2NjOWU2NzQ2MGIyYmI4MDIyYzM3
NmY4Li4wZDc5YjQyODcxNDljOTYwNDBkYjE5ODEwMDdjNzBlNDQ0OTA4ZTVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0Niw2ICs4
NDYsNyBAQAogCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYz
ODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsK
IAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVn
YXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVn
YXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCAqLzsgfTsKKwkJMzkxMzYwMjUyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJL
aXQuUGF5bWVudHMuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1l
bnRzLnNiICovOyB9OwogCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxs
c2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNGNDE4RUZCMTg4N0JE
OTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThF
RjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xv
ckNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKQEAg
LTkwNCw2ICs5MDUsMTAgQEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJ
Y29uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZC
QjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBB
RkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0Mx
NkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25E
YXRhYmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OworCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLzsg
fTsKKwkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUwMEU0N0I4MyAvKiBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBT
ZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnku
aCAqLzsgfTsKIAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFy
eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4
QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CkBAIC05
NTUsNiArOTYwLDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMx
NjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTdERDVCRjE4MERBN0Qz
MDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1l
bnRQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdl
YkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsK
IAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxOEFDQUU5MTJB
RUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNGMTExMkIwMTVGODAwQjA0
QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFs
VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtOTgyLDYgKzk4OCw4IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8qIElE
QlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9OworCQk1
MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLzsgfTsKKwkJNTFFMzUyMDAxODBGNUQwRjAwRTUz
QkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAv
KiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZDMTY0MUYy
OTM1REQwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYx
MUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2lu
ZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUxNjU0
MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTE1
NjgsNiArMTU3Niw3IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1l
bnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0
ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTgg
LyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07
CisJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5
MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2
M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkg
LyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4
REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgy
IC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3
MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8q
IENoaWxkUHJvY2Vzc1Byb3h5LmggKi87IH07CkBAIC0yOTgwLDYgKzI5ODksMTEgQEAKIAkJM0Y0
MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThF
RjgxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CisJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0
LlBheW1lbnRzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudHMuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDJCMjE5NTE0QkQw
MDU2NDkyQSAvKiBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MTM2MDJDMjE5NTE0QkQwMDU2NDkyQSAvKiBQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTJF
OTQyQjIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4
N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JD
aG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZG
NjIgLyogV2ViQ29sb3JQaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29sb3JQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMDIsNiAr
MzExNiw3IEBACiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNl
TWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VN
YXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhE
RkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNs
aWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNv
bnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAz
MkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDRGNUExMUYxOUQ3Q0YwMDRDRjgyMSAv
KiBDb29raWVTdG9yYWdlVXRpbHNDRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTA1MjM3MTFDNzNEMjJCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIz
NzIxQzczRDM3QjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMzEyNSwxMSArMzE0MCwxNSBAQAog
CQk1MTEwQUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29u
RGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJh
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExOEU5QTIxRjI5NTk2MzAwM0VG
OUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9y
YWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CisJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlG
NSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNTExOEU5QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdl
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0
b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNz
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlG
NSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExRjdEM0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkw
MEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21h
Yy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMx
NDcsNiArMzE2Niw3IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0
TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1l
bnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5Nzgw
MEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0
TWVudUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4
OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0
TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUw
NUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTJGNTg4RTEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4
OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjE3LDYgKzMyMzcsOCBAQAogCQk1MTdD
RjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMy
OTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBF
IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxN0RENUJDMTgwREE3
RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nl
c3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vz
c1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODNCMzkzMTM3OUY4NUMw
MEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IFNoaW0ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjU5MTI3
Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzIzNiw2ICszMjU4LDcgQEAKIAkJNTFBNTU2MDAxMjhD
NkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUE1ODc3RTFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQlJlc3VsdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdGMUQxQzRDQjkwMDRCQTlB
RiAvKiBXZWJJREJSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
SURCUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTYwQjI5MTgwQ0NE
OTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQYXlt
ZW50U2VydmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNzI4
REMxQjFCQUQyRDAwMTAyRUVFIC8qIFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9u
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGMjEyNUJGODIw
MDA4QUVCMUQgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQw
MDhBRUIxRCAvKiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IExvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI5NSw2ICsz
MzE4LDExIEBACiAJCTUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MUUzNTFDODE4MEYyQ0NDMDBF
NTNCRTkgLyogSURCVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElEQlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSURCVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBh
ZFByb3ZpZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTVG
MUYyOTM1NTEwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVy
c2lzdGVudFN0b3JhZ2VJT1MubW07IHBhdGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bl
cnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2
QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50
U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQ0OSw2ICs0NDc3LDcg
QEAKIAkJRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRp
YWxpemF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVF
NTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZC
MDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRkVGMzlDMTkwRjc5MUMwMDcz
MTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5l
dHdvcmtDYWNoZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ldHdvcmtDYWNoZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQy
RTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2MjMsNiArNDY1Miw3IEBACiAJCQkJMUExRDIxMTYx
OTFEOTk1QzAwMDE2MTlGIC8qIHBvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoICovLAog
CQkJCUJDMkU2RTc0MTE0MTk2RjAwMEE2M0IxRSAvKiBQbGF0Zm9ybSAqLywKIAkJCQkxQUFEREY0
QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLAorCQkJCTUxRjdEQzBBMTgwQ0M0MTEwMDIx
MkNBMyAvKiBQYXltZW50UHJvY2VzcyAqLywKIAkJCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEg
LyogVUlQcm9jZXNzICovLAogCQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9j
ZXNzICovLAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAq
LywKQEAgLTQ4MjgsNiArNDg1OCw3IEBACiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8q
IE5ldHdvcmstT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAogCQkJCTVDN0FDRkQxMjE4REQ4
QkQwMDRDQkI1OSAvKiBOZXR3b3JrLU9TWC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJQkM4MjgzQUIx
NkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlLnhjY29uZmlnICovLAorCQkJCTUxQTYw
QjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlB
MUVERDJEQjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8s
CiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25m
aWcgKi8sCiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQu
eGNjb25maWcgKi8sCkBAIC00OTg1LDYgKzUwMTYsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQw
MEREN0M2OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBp
b3MgKi8sCiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQkzOTEz
NjAyQTIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0
MDA4NTI0MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyog
UmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJz
aXRlRGF0YSAqLywKQEAgLTYyNjgsNiArNjMwMCwyNCBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9t
YWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEzNjAyQTIxOTUxNEJE
MDA1NjQ5MkEgLyogUGF5bWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzkxMzYwMkIyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKKwkJCQkzOTEzNjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyog
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKKwkJCSk7CisJCQlwYXRoID0g
UGF5bWVudDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTM5MkU5NDJBMjE5
QTJFODUwMDUwRjk4MiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOTJFOTQyQjIxOUEzOTlBMDA1MEY5ODIg
LyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCSk7CisJCQlwYXRoID0g
UGF5bWVudHM7CisJCQlzb3VyY2VUcmVlID0gIjx1bmtub3duPiI7CisJCX07CiAJCTQxMzA3NTk3
MURFODRFRDcwMDM5RUM2OSAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtNjU4Nyw2ICs2NjM3LDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBC
IC8qIFBheW1lbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAg
Ki8sCisJCQkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHku
aCAqLywKKwkJCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudHM7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0
aGVudGljYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtNjY0Myw2ICs2NzAzLDIwIEBACiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9j
ZXNzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUZF
RjM5QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovLAorCQkJCTUxRTM1MUZBMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8sCisJCQkJNTFFMzUxRkIxODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8sCisJCQkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5
IC8qIFBheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluICovLAorCQkJCTUxRTM1MUZEMTgwRjVEMEIw
MEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTFF
MzUxRkUxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgg
Ki8sCisJCQkJNTEwMzJGMUExODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50UHJvY2Vz
czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUzOUJENUIyMURBREIwQkEw
MEYyRTRFMSAvKiBjYXB0dXJlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTcwNjYsNiArNzE0MCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0
Lk5ldHdvcmtpbmcuc2IgKi8sCisJCQkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8sCiAJCQkJQTc4Q0NERDcxOTNBQzlFMzAwNUVDQzI1
IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLywKIAkJCQlBNzhDQ0REOTE5M0FDOUUz
MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiICovLAogCQkJKTsKQEAg
LTcxMTQsNiArNzE4OSw3IEBACiAJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlh
U3RyZWFtICovLAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAog
CQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywK
KwkJCQkzOTJFOTQyQTIxOUEyRTg1MDA1MEY5ODIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUE2RkI3
QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAw
M0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVz
ZXJDb250ZW50ICovLApAQCAtNzI3Niw2ICs3MzUyLDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1
MDBDNjUwQzUgLyogbWFjICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3
b3JrICovLAogCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICov
LAorCQkJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAqLywKIAkJCQkxQUVG
Q0MwNTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5QjQy
MDAwNkUzRkUgLyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2
MzkwQyAvKiBVc2VyQ29udGVudCAqLywKQEAgLTgzNzUsNiArODQ1MiwxMCBAQAogCQkJCTVDMEIx
Nzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLywK
IAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBO
UE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1
MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovLAor
CQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NG
IC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNE
QTI5QTI1MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMu
aCAqLywKIAkJCQlDREEyOUEyNjFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg2OTQsNiArODc3NSwxNCBAQAog
CQkJbmFtZSA9IFBERjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxRkVG
MzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJv
Y2Vzc0lPUy5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJRTQ4OUQyODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxNjQsNiArOTI1Myw5
IEBACiAJCQkJMUFDNzUzN0MxODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBOEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQYWdlTG9hZFN0YXRl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAv
KiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUE5MUYyOTU5Nzcw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0
IC8qIFBERkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3
MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGQjAy
MTg5MTI2NDAwMjVBODhEIC8qIFBlbmNpbEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDE1
OCw2ICsxMDI1MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmls
ZXMgPSAoCiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQu
TmV0d29ya1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI1MjE5M0MxNDMw
MDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLywK
IAkJCQlFMTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2Ig
aW4gUmVzb3VyY2VzICovLAogCQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBjb20uY2lz
Y28ud2ViZXgucGx1Z2luLmdwYzY0LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFF
NTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApA
QCAtMTA3NjMsNiArMTA4NTYsMTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyog
TlBSdW50aW1lT2JqZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5
RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ5MkE3OTQyMTJCNkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJv
Y2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1
MTE4RTlBQTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyog
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RB
MjlBMjgxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAxQ0NGIC8q
IFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTZkMGE3YjU2OTJiMTE5ZmM2N2Y0MjdkZDQ3OWVlMThkMzgxNjNjMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKKworCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9T
V0NvbnRleHRNYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNl
IFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwg
KnRoaXMpKQoreworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgYXV0
byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30KKwor
dm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDE3N2Y4ZjJlYzdjNTUzODc3
ZDFmYjkwNDI2ZDEyM2MxNmE2MjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAs
MCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisg
Ki8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NXU2VydmVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklE
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bj4sIHByaXZhdGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdl
U2VuZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6
CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92
ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9u
KiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlv
bi5wdHIoKTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3Zl
cnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcAppbmRl
eCBiMGQ3MDNjNTM3ZjAwNzkwYzRmZmNhOWYzYjFkOWI0MWRkMDhhNDNlLi43YjVkMDAxNjBkZTM1
OTk4ZjVkNTc3YTRiZjM1NThiMTk2NTFjNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdl
dENvbnRyb2xsZXIuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRh
cmdldENvbnRyb2xsZXI6OnJlbW92ZVRhcmdldChJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldCYK
IAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVjdEluc3BlY3Rv
cihjb25zdCBTdHJpbmcmIHRhcmdldElkLCBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29u
bmVjdGlvblR5cGUgY29ubmVjdGlvblR5cGUpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJn
ZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3Rhcmdl
dHMuZ2V0KHRhcmdldElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCkBA
IC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmNv
bm5lY3RJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwKIAogdm9pZCBXZWJQYWdlSW5z
cGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcm
IHRhcmdldElkKQogewotICAgIEluc3BlY3RvclRhcmdldCogdGFyZ2V0ID0gbV90YXJnZXRzLmdl
dCh0YXJnZXRJZCk7CisgICAgYXV0byogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7
CiAgICAgaWYgKCF0YXJnZXQpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTEsNyArOTEsNyBAQCB2
b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9y
KGNvbnN0IFN0cmluZyYgdGFyZ2V0SQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250
cm9sbGVyOjpzZW5kTWVzc2FnZVRvVGFyZ2V0QmFja2VuZChjb25zdCBTdHJpbmcmIHRhcmdldElk
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQg
PSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMu
Z2V0KHRhcmdldElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZjQ0ZTY1MzdlZTExMjBkY2Nl
NzZhMTRiMmFkOGMyYzBlMjI1Zjg5MS4uZjg1ODQwOTg4Yjk1NDgzYTJkNzE5ZDhlMWFjMTc2NjFj
MDYwNjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMs
NiArNDMsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgog
I2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVz
c2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlVz
ZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1
ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCkBAIC02OSw2ICs3Miw5IEBACiAjaW5jbHVk
ZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1
ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKQEAgLTEyMzIsNiArMTIzOCwzMSBAQCBX
ZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAg
IHJldHVybiBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCit2b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2Vk
KFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VS
VChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29k
ZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXIpLCAwKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUo
Y29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlYmI4NDhhNTNlN2I1
MWMwYjQxYTJhYjBiZWVjYjI5OTdhN2JhNmU1Li43MTgwNDVjMjkyZWViMjYxMzE0Njk0Y2Q3NGFj
ZjY3NzE5Y2FlNmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4
LDYgKzk4LDkgQEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xh
c3MgV2ViUGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0
ZURhdGFUeXBlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2Vi
UGFnZUdyb3VwRGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2Vi
UlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24mIGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklE
IGluaXRpYWxTZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICAgICB2b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdh
Y3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDQwLDYgKzQ0
OCwxMCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk+IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQy
NGZlODBhNzRkNjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBi
ZWY1MmZjNDZhY2NiNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkwLDYg
KzI5MCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxF
X05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNf
bWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1Mg
PSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAog
RU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZP
Uk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDFhZjM3NTQ3YTdhYTJjZjAzYTNmNjU3NjE1YTU4MDg5YTMxMzJmZDIuLmUwYWE1N2Rh
MTgzYjAzYjJjYzFjOWVhOTA5MDc2MjViMTlhM2NlYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMS0xNCAg
WmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nl
c3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFBy
b2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAy
MDE4LTExLTI2ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbZXdzLWFwcF0gU2V0IEZvcmVpZ24gS2V5cyBpbiBFV1MgRGphbmdvIGFwcCBtb2RlbHMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4MGE3NGQ2MWRjNGI3ODA2ODE0MWI4
ZWM0M2UuLjg3YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUyZmM0NmFjY2I1NDEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwpAQCAtMjkwLDYgKzI5MCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRB
TE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05P
VElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkp
OwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAK
K0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5B
QkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9Q
REZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLm1tCmluZGV4IDNmMWE2Mjg4NjgyMTAyYTU4OTJhMGVlZjMyYTk0NDJhMGNhZjUwODQuLmMz
NDZhYmZkNjIwZjkzNTU1ZmQ4MDA1YzhhMWI0MGQ4YTljMDQ3YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MubW0KQEAgLTE0NCw2ICsxNDQsNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRp
c3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCiAgICAgLy8gRW5zdXJlIHRoZSBzaGFy
ZWQgcHJvY2VzcyBwb29sIGV4aXN0cyBzbyB0aGUgZGF0YSBzdG9yZSBvcGVyYXRpb25zIHdlJ3Jl
IGFib3V0IHRvIGRvIHdvcmsgd2l0aCBpdC4KICAgICBXS1Byb2Nlc3NQb29sICpzaGFyZWRQcm9j
ZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNzUG9vbF07CiAKKyAgICBFWFBF
Q1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlm
aWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVn
aW5Qcm9jZXNzQ291bnRdKTsKIAogICAgIGF1dG8gKmRhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRh
U3RvcmUgZGVmYXVsdERhdGFTdG9yZV07CkBAIC0xNjgsNiArMTY5LDcgQEAgVEVTVChSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogCiAgICAgRVhQRUNU
X1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOnRh
cmdldFVSTC5wYXRoXSk7CiAKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQcm9jZXNz
UG9vbCBfcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3Qp
MCwgW3NoYXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VX
b3JrZXJCYXNpYy5tbQppbmRleCA2MWRkYmMzZDYzYTllYTg3YzI2ZWNhMGQxYmZkNjY3NzY1NzMw
OTE2Li4yNjllODZlZDY1YTlkNDZlZjMwNzNjYjlkYWE1MTBkMWY5OWU0Zjk3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VX
b3JrZXJCYXNpYy5tbQpAQCAtMTEzMCw2ICsxMTMwLDkgQEAgVEVTVChTZXJ2aWNlV29ya2Vycywg
SGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAorICAgIC8vIFRoZXJlIHNob3VsZCBi
ZSBubyBwYXltZW50IHByb2Nlc3MgY3JlYXRlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIp
OworCiAgICAgLy8gTGV0J3MgdXNlIHRoZSB3ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNl
cnZpY2Ugd29ya2VyIGFuZCBsb2FkIGEgcGFnZS4KICAgICBuZXdDb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgPSBbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZGEwMjJjNGYwYzc2OTJlN2M2ZGY0ZDYyZTQ1
OTZmMTg5ZWFkYmM1ZS4uNjc2OTE2ZjkwNzIzMjY5MzNjNDY3ZDc0MzVkYjdlZGIxMWY3NDIyYSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMzUsNiArMzM1LDcgQEAgaW50ZXJmYWNl
IFRlc3RSdW5uZXIgewogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAg
IHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0
ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggYmQ2OGFkMTU4OTM5YTFmZTAyMjMw
YWVkNzliM2E3NTllZGFiZDMzNi4uMmQ3ZWFjYTAwN2EwZmZjZDEyMzM1NzBjNzU1MWNlYjE4ZThm
MjZlOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjkzLDYgKzEyOTMsMTIgQEAgdm9pZCBUZXN0UnVubmVyOjp0
ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNo
cm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2Uo
KS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3Zv
aWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiVGVybWluYXRlUGF5bWVudFByb2Nlc3MiKSk7CisgICAgV0tCdW5kbGVQYWdl
UG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7
Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBuZXh0VUlTY3JpcHRDYWxsYmFja0lEKCkKIHsKICAgICBz
dGF0aWMgdW5zaWduZWQgY2FsbGJhY2tJRCA9IEZpcnN0VUlTY3JpcHRDYWxsYmFja0lEOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApp
bmRleCAxMjBlZmM4MjYzZWM3NzI0OWIzYjBkN2RhNjE0NzZhM2M4YTdhZjE3Li40ZDVmOTg2YzMw
MWNmYTA3MzE3MzM2ZjBmZWQ2ZjQ0NDMwYjNjZGE3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDQ4LDYgKzQ0OCw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lk
IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcygpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoSlNW
YWx1ZVJlZik7CiAgICAgdm9pZCBjYWxsRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2Fs
bGJhY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
NTYzNzRmNzBjYzBmOGUzMDMzZjIxMjlkZGVhMGY4MjVmNzc1NmVkNS4uN2VmNzZhOTdiZGZiMTA1
N2M0ODAzMTJiZmMwYWNlOTgzYmQzN2JjYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKQEAgLTEwNzMsNiArMTA3MywxNSBAQCBjb25zdCBjaGFyKiBUZXN0Q29u
dHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NOYW1lKCkKICNlbmRpZgogfQogCitjb25zdCBjaGFyKiBU
ZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKCkKK3sKKyNpZiBQTEFURk9STShGQU1J
TFlfSU9TKQorICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QYXltZW50cyI7CisjZWxzZQor
ICAgIHJldHVybiAiUGF5bWVudCBwcm9jZXNzIG5vdCBhdmFpbGFibGUgb24gYW55dGhpbmcgYnV0
IGlPUyI7CisjZW5kaWYKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGUoYm9vbCBhbGxvd3MpCiB7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3Mp
OwpAQCAtMTUwNyw2ICsxNTE2LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9j
ZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsCiAgICAgc3Rh
dGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSkt
Pm5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGF5
bWVudFByb2Nlc3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGNsaWVudEluZm8pKS0+cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOworfQorCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91
cykKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5IikpOwpAQCAtMTg0MCw2ICsxODU0LDEzIEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQo
MSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKQor
eworICAgIHBpZF90IHBpZCA9IFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllciht
X2NvbnRleHQuZ2V0KCkpOworICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlk
ICVsZClcbiIsIHBheW1lbnRQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsK
KyAgICBleGl0KDEpOworfQorCiAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAKIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdh
dGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBA
IC0yNjM5LDYgKzI2NjAsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlU2Vydmlj
ZVdvcmtlclByb2Nlc3MoKQogICAgIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWlu
YXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24m
KQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGIzNzY0ZTZj
ZTRiMDI5MzU4NDFhODNmYTZjMGEwODhmNjhlZGVlNTUuLjUwZjVkYzRmNzY0NDE0NDcxNzUwZDUy
OTliMGZmNDc5OTFhZjc3Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKQEAgLTE4MSw2ICsxODEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHdl
YlByb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5ldHdvcmtQcm9jZXNzTmFt
ZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkYXRhYmFzZVByb2Nlc3NOYW1lKCk7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHBheW1lbnRQcm9jZXNzTmFtZSgpOwogCiAgICAgV29ya1F1ZXVl
TWFuYWdlciYgd29ya1F1ZXVlTWFuYWdlcigpIHsgcmV0dXJuIG1fd29ya1F1ZXVlTWFuYWdlcjsg
fQogCkBAIC0yNTIsNiArMjUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3
b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsK
KyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFs
bFNlc3Npb25DcmVkZW50aWFscygpOwogCkBAIC0zNTUsNiArMzU3LDggQEAgcHJpdmF0ZToKICAg
ICAvLyBXS0NvbnRleHRDbGllbnQKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENy
YXNoKFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NE
aWRDcmFzaCgpOworICAgIHN0YXRpYyB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250
ZXh0UmVmLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKCk7
CiAKICAgICAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAgICAgc3RhdGljIHZvaWQgZGlkQ29t
bWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IDFhOTFlYjI4NDM0ZDRlZDdkMWI5NjEyMjAwNjM4NTA1NDBhZDc4MmIuLjBkY2Y1
ODJjN2E0OGNhNjYyYTg4ZTk3OWFiZDE5MzljYTY4NDI1NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDUzLDYgKzE0NTMsMTIgQEAgV0tSZXRhaW5Q
dHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCisgICAgaWYg
KFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyIpKSB7CisgICAgICAgIEFTU0VSVCghbWVzc2FnZUJvZHkpOworICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKSB7CiAg
ICAgICAgIEFTU0VSVCghbWVzc2FnZUJvZHkpOwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355837</attachid>
            <date>2018-11-27 18:49:20 -0800</date>
            <delta_ts>2018-12-19 17:00:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181127184918.patch</filename>
            <type>text/plain</type>
            <size>146690</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MDFjYWZmYmEyOGE4MDM5YjQwN2VhZTY5ZDgyNmRkODU4YWU3MWNiLi5mZjRmNDlkMjljNDRkMjYw
ZmNmNTllYjhhY2Y5NWFjNTQzZjNhYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yNiAgU2FhbSBiYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBJblBsYWNlQWJzdHJhY3RTdGF0ZTo6ZW5kQmFz
aWNCbG9jayBydWxlIGZvciBTZXRMb2NhbCBzaG91bGQgZmlsdGVyIHRoZSB2YWx1ZSBiYXNlZCBv
biB0aGUgZmx1c2ggZm9ybWF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRkMDFkMDllYTA4M2IxYmIyYmVkOGJk
MGQ1ZWYyNTg0NWU2MThkZC4uOTE3MmUwMGY1MDhkMzNlM2Q1ODQxYjE5ZGUzZmI1NTMyZjY5ZWY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTExLTI3ICBaYW1pdWwgSGFxdWUg
IDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGgg
ZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAq
IGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMTgtMTEtMjQgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU1ZHIHVzZSBlbGVtZW50IGluc2lkZSBh
IHNoYWRvdyB0cmVlIGNhbm5vdCByZWZlcmVuY2UgYW4gZWxlbWVudCBpbiB0aGUgc2FtZSB0cmVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAwZWU4M2JjZWZmMGQ5NzRmNjBmODc2MmU5YTQwNGMzYmZk
MzNlYzFmLi5lODc5ZGRlOWQ2NTQxYjBmYTg1M2Q5YWU1Y2ViZDRkMmJlNDRlN2QwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0y
NiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNYWtl
IGl0IGVhc2llciB0byBlbmNvZGUgTlNPYmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiZTIwYWVhZmQwY2Q1
OWI4NzdmYjM0Zjk1NzQ0NGI3ZjcwNTU3MzEuLmJjYTg1MWYyM2UxODgyNGU4NzYwZTRlMzE1N2Jl
Y2YyZTNhYTExZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc5IEBACisyMDE4LTExLTI3ICBaYW1p
dWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBz
dHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0Jhc2VUYXJnZXQueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2Uu
eGNjb25maWc6IEFkZGVkLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2Vydmlj
ZS9JbmZvLWlPUy5wbGlzdDogQWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvRW50cnlQ
b2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2VydmljZUVudHJ5UG9pbnQubW06IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmguCisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6UGF5bWVudFNl
cnZpY2VJbml0aWFsaXplckRlbGVnYXRlKToKKyAgICAgICAgKFBheW1lbnRTZXJ2aWNlSW5pdGlh
bGl6ZXIpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9j
ZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
OjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaC4KKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nl
c3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOjp+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBQ
YXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1t
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNw
cC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6Cisg
ICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5Q
YXltZW50cy5zYjogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAg
ICAgICAqIFNoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5j
cHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaC4KKyAg
ICAgICAgKiBTaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmg6CisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKToKKyAgICAgICAgKFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5h
dGVQYXltZW50UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVu
Y2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVy
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6dGVybWluYXRlRm9yVGVzdGluZyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldExh
dW5jaE9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9j
ZXNzV2lsbFNodXREb3duKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5
OjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OmRpZFJlY2VpdmVQYXltZW50
UHJvY2Vzc1Byb3h5TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJDb250ZXh0U3VwcGxlbWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0U3Vw
cGxlbWVudDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1TaG93Q2VydGlmaWNhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVF
dmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFBy
b2Nlc3NDcmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBh
Z2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nh
cnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OmRlc3Ryb3lQYXltZW50UHJvY2Vzc1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZSk6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50
cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpk
aWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVu
dHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmNv
bm5lY3RJbnNwZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0
Q29udHJvbGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpzZW5kTWVzc2FnZVRvVGFyZ2V0QmFja2VuZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2Ft
cGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlT
YW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENo
ZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVh
c2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRj
aFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpk
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVT
YW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQVUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BVTW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFnZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVy
bWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQ
cmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZnJlZXplQWxsTGF5ZXJUcmVl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuZnJlZXplQWxsTGF5
ZXJUcmVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByb2Nlc3NE
aWRSZXN1bWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZW5kUHJl
d2FybUluZm9ybWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
cGFnZURpZEVudGVyV2luZG93KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGFnZVdpbGxMZWF2ZVdpbmRvdyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6Om5vblZpc2libGVQcm9jZXNzQ2xlYW51cFRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRy
YW5zZm9ybUhhbmRsZXNUb09iamVjdHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6c2V0TWVtb3J5Q2FjaGVEaXNhYmxlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuYWJsZWRTZXJ2aWNlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZXN0cm95QXV0b21hdGlv
blNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBy
ZWZldGNoRE5TKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzVmlz
aWJsZVdlYlBhZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpsaWJXZWJSVENOZXR3b3JrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFNjcmVl
blByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphZGRN
b2NrTWVkaWFEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpj
bGVhck1vY2tNZWRpYURldmljZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpyZW1vdmVNb2NrTWVkaWFEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZXNldE1vY2tNZWRpYURldmljZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDE4LTExLTI2ICBBbmR5IEVzdGVzICA8YWVzdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIE1ha2UgaXQgZWFzaWVyIHRvIGVuY29kZSBO
U09iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ZGFjNjA5YTA3NmFmNmEx
MWU5ZjA4MjZlNTUxODg1ZThjYjM5NzM1Li4yMWFjOTY4MjA1MDg2NTFiYzc4NzdiZWViNDRiODVm
ODUwOGI3MzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTgtMTEtMjcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAg
UGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMjUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBpbnNlcnQgZWRpdGFi
bGUgaW1hZ2VzIHdpdGggYSBnZXN0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZjU4
OGYzMmM0MjRmZTgwYTc0ZDYxZGM0Yjc4MDY4MTQxYjhlYzQzZS4uODdiYTU2YjllNjk0N2M4ZTkz
ZjVhYTYwYmVmNTJmYzQ2YWNjYjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkw
LDYgKzI5MCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5B
QkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJM
RV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElP
TlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NF
U1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsK
IAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExB
VEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBhNzRkNjFkYzRiNzgw
NjgxNDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZjNDZhY2NiNTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwpAQCAtMjkwLDYgKzI5MCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9O
RV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElG
SUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwog
RU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VO
QUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGY1
ODhmMzJjNDI0ZmU4MGE3NGQ2MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3YmE1NmI5ZTY5NDdjOGU5
M2Y1YWE2MGJlZjUyZmM0NmFjY2I1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5MCw2ICsy
OTAsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9O
QVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9U
SUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21h
Y29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0g
OwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVO
QUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JN
X05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmlu
ZGV4IDgzMTBkZDAwNDRjZGRkMmQ4YTJhNmNhYmIyMjcxNGE3M2Q0OTY5OWMuLjFkMDZmY2M3NjYz
ZTg4MDRlOGI4YTlhNWI2ZWYwMTk5NmRkNzU0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtNDMsNiArNDMsOSBAQAogLyogVmlzaWJsZSBuYW1l
IG9mIFNlcnZpY2UgV29ya2VyIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRp
b24gbmFtZS4gKi8KICIlQCBTZXJ2aWNlIFdvcmtlciAoJUApIiA9ICIlQCBTZXJ2aWNlIFdvcmtl
ciAoJUApIjsKIAorLyogdmlzaWJsZSBuYW1lIG9mIHRoZSBwYXltZW50IHByb2Nlc3MuIFRoZSBh
cmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KKyIlQCBQYXltZW50cyIgPSAiJUAg
UGF5bWVudHMiOworCiAvKiBWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBwcm9jZXNzLiBUaGUgYXJn
dW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgV2ViIENvbnRlbnQiID0gIiVA
IFdlYiBDb250ZW50IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggZjE2MTU0MjczMjZkODhiYWFk
YjVlOTNjMjNkY2E3NTQzYjE4MDRjNS4uZDE0NTFhMDQ4OGJhOTRlYTM4ODZiNWQ0OGI2NmQzMWYw
MzhkNDAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xNSw2ICsxNSw3IEBAIHNldChXZWJLaXRf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL2Nh
cHR1cmUiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2F0Y2hvcyIKICAgICAi
JHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMiCisgICAgIiR7V0VCS0lUX0RJUn0v
UGF5bWVudFByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vUGxhdGZvcm0iCiAgICAgIiR7V0VC
S0lUX0RJUn0vUGxhdGZvcm0vSVBDIgogICAgICIke1dFQktJVF9ESVJ9L1BsdWdpblByb2Nlc3Mi
CkBAIC0yNyw2ICsyOCw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQktJVF9ESVJ9L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCIgogICAgICIke1dFQktJVF9E
SVJ9L1NoYXJlZC9GaWxlQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9HYW1lcGFkIgor
ICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9L1No
YXJlZC9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBl
IgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMSIKQEAgLTQ1
LDYgKzQ3LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zIgorICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QYXltZW50IgogICAgICIk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1VzZXJD
b250ZW50IgpAQCAtMTIxLDYgKzEyNCw5IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmlu
CiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQubWVzc2FnZXMuaW4K
IAorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAgUGF5
bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKwog
ICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAg
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMTUxLDYgKzE1Nyw4IEBAIHNl
dChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9QYXltZW50cy9QYXlt
ZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIxLDYgKzIyOSwx
MCBAQCBzZXQoTmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCiAKK3NldChQ
YXltZW50UHJvY2Vzc19MSUJSQVJJRVMKKyAgICBXZWJLaXQKKykKKwogc2V0KFBsdWdpblByb2Nl
c3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKaW5kZXggNDA1ZDYzYmJiMDEyYTM5ZTY1ZGE4YmE4
Yjg5MDgzNThhMjU4YmQ2Yy4uZWViN2EyNmFkYTE0NjNkMmFkNWE4ZGNmZGIyMDZhNGQ2M2NmM2Uy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0Lnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2Nv
bmZpZwpAQCAtMTExLDYgKzExMSw4IEBAIFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OW3Nkaz1tYWNv
c3gqXVthcmNoPWkzODZdID0gTk87CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FUyA9ICQoV0tf
Q09SRV9QUkVESUNUSU9OX0RFRklORVNfJChXS19IQVZFX0NPUkVfUFJFRElDVElPTikpOwogV0tf
Q09SRV9QUkVESUNUSU9OX0RFRklORVNfWUVTID0gSEFWRV9DT1JFX1BSRURJQ1RJT047CiAKK1dL
X1BBWU1FTlRfU0VSVklDRV9QUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRz
OworCiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gJChXS19TVE9SQUdFX1NFUlZJ
Q0VfUFJPRFVDVF9OQU1FXyQoV0tfVVNFX0xFR0FDWV9TVE9SQUdFX1NFUlZJQ0VfTkFNRSkpOwog
V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV8gPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9Q
Uk9EVUNUX05BTUVfTk8pOwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyA9IGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGY1ODhmMzJjNDI0ZmU4MGE3NGQ2
MWRjNGI3ODA2ODE0MWI4ZWM0M2UuLjg3YmE1NmI5ZTY5NDdjOGU5M2Y1YWE2MGJlZjUyZmM0NmFj
Y2I1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkwLDYgKzI5MCw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxF
X05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7
CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0g
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZyBiL1NvdXJjZS9X
ZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzRkMzg4OGM4ZGYwYmRhYmQzYTMyNzE0ZTYxMGNiMmVmZTU3NDM4ZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcK
QEAgLTAsMCArMSwzMyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1l
dDoKKy8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorLy8gICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKy8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisvLyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8g
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorLy8gT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNp
bmNsdWRlICJCYXNlWFBDU2VydmljZS54Y2NvbmZpZyIKKworV0tfUEFZTUVOVF9FTlRJVExFTUVO
VFNfUkVTVFJJQ1RFRF9OTyA9IDsKKworQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VD
SF9OTyA9ICQoV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF8kKFdLX1VTRV9SRVNU
UklDVEVEX0VOVElUTEVNRU5UUykpOworT1RIRVJfQ09ERV9TSUdOX0ZMQUdTID0gJChXS19MSUJS
QVJZX1ZBTElEQVRJT05fQ09ERV9TSUdOX0ZMQUdTKTsKKworUFJPRFVDVF9OQU1FID0gJChXS19Q
QVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FKTsKK1BST0RVQ1RfQlVORExFX0lERU5USUZJRVIg
PSAkKFBST0RVQ1RfTkFNRSk7CitJTkZPUExJU1RfRklMRVtzZGs9aXBob25lKl0gPSBQYXltZW50
UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlL0luZm8taU9T
LnBsaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ2N2Q0OGM2NGQ3MjliY2Zl
ZTgwZjVhYzQwZjRlN2MzZWJjNzczMjQuLjdjNTUxZDdhZDkwNmQxYjlkZTFiY2Q4OGEzMTgzNDA5
MTFkMWU2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMwLDYgKzMwLDcgQEAg
VlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMgXAogICAgICQo
V2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCIFwKICAgICAkKFdlYktpdDIpL05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIgXAorICAgICQoV2ViS2l0MikvUGF5bWVudFByb2Nlc3Mg
XAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Q
cm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCkBAIC03Myw2ICs3
NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAg
ICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdl
YktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vz
cy9QYXltZW50cyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlIFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9TdG9yYWdlIFwKQEAgLTEyMSw2ICsxMjMsOSBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
ICAgICBOZXR3b3JrU29ja2V0U3RyZWFtIFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyIFwK
ICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAorICAgIFBheW1lbnRQcm9jZXNzIFwK
KyAgICBQYXltZW50UHJvY2Vzc1Byb3h5IFwKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbiBcCiAgICAgUGx1Z2luQ29udHJvbGxlclByb3h5IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwK
ICAgICBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2Uv
SW5mby1pT1MucGxpc3QgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQv
aW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5mby1pT1MucGxpc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzY2OWE2MzU5YmE0ZTBmMzFmMjgyZWZlZWM2MDI0MTY3NDQ0NTg4MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2Vydmlj
ZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdApAQCAtMCwwICsxLDQzIEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAi
LS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Q
cm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxr
ZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9O
fSwgQ29weXJpZ2h0IDIwMDMtMjAxOCBBcHBsZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRs
ZURldmVsb3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+CisJPGtl
eT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwv
c3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz4ke1BST0RV
Q1RfQlVORExFX0lERU5USUZJRVJ9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9u
YXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5h
bWU8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5k
bGVQYWNrYWdlVHlwZTwva2V5PgorCTxzdHJpbmc+WFBDITwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5k
bGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJ
Tkd9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+Pz8/
Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke0JVTkRM
RV9WRVJTSU9OfTwvc3RyaW5nPgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4K
Kwk8dHJ1ZS8+CisJPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5OU0FwcGxp
Y2F0aW9uPC9zdHJpbmc+CisJPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+CisJPHN0cmluZz5Q
YXltZW50U2VydmljZUluaXRpYWxpemVyPC9zdHJpbmc+CisJPGtleT5MU1VJRWxlbWVudDwva2V5
PgorCTx0cnVlLz4KKwk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KKwk8ZGljdD4KKwkJPGtleT5TZXJ2
aWNlVHlwZTwva2V5PgorCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+CisJCTxrZXk+UnVu
TG9vcFR5cGU8L2tleT4KKwkJPHN0cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KKwkJPGtleT5fTXVs
dGlwbGVJbnN0YW5jZXM8L2tleT4KKwkJPHRydWUvPgorCTwvZGljdD4KKzwvZGljdD4KKzwvcGxp
c3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQv
aW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNl
RW50cnlQb2ludC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzkyNWVkM2MyODVlZDY3MWU4MDg1YjY0NmE5NjQ3
YzQ1OWUyZTU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlRW50cnlQb2ludC5tbQpA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBv
cnQgIkVudmlyb25tZW50VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzcy5oIgor
I2ltcG9ydCAiV0tCYXNlLmgiCisjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFNlcnZpY2VJbml0aWFsaXplckRlbGVn
YXRlIDogcHVibGljIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlIHsKK3B1YmxpYzoKKyAg
ICBQYXltZW50U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUoT1NPYmplY3RQdHI8eHBjX2Nvbm5l
Y3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSkKKyAg
ICAgICAgOiBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShXVEZNb3ZlKGNvbm5lY3Rpb24p
LCBpbml0aWFsaXplck1lc3NhZ2UpCisgICAgeworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitleHRlcm4gIkMiIFdLX0VYUE9S
VCB2b2lkIFBheW1lbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0
aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3Jp
dHlCb29zdE1lc3NhZ2UpOworCit2b2lkIFBheW1lbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nv
bm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4
cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpCit7CisgICAgLy8gUmVtb3ZlIHRoZSBT
ZWNJdGVtU2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQgdmFy
aWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3bmVkIGJ5CisgICAgLy8gdGhlIHRoaXMgcHJvY2Vz
cyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KKyAgICBFbnZpcm9ubWVu
dFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJS
QVJJRVMiLCAiL1NlY0l0ZW1TaGltLmR5bGliIik7CisgICAgWFBDU2VydmljZUluaXRpYWxpemVy
PFBheW1lbnRQcm9jZXNzLCBQYXltZW50U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGFkb3B0
T1NPYmplY3QoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSwgcHJpb3JpdHlCb29zdE1l
c3NhZ2UpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMmEzNDEyMTAyOTg1Mjk3M2M2ODUxOGJhMGNiNTZhZTRjYmRm
MWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzcy5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitQYXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAgIHJl
dHVybiBwcm9jZXNzOworfQorCitQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQorewor
fQorCitQYXltZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQoreworICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlv
bik7Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2RlcikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgeworICAgICAgICBDaGlsZFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29s
IGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNl
Y3VyaXR5T3JpZ2luKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZi
M2ExNzM1ODM1NDQ0MjM0ZjU5Y2M2YTU0NDk0ZTdmNzdhODMyMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247
CitzdHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisKK2NsYXNzIFBheW1l
bnRQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGF5bWVudFByb2Nlc3MpOworICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxQYXltZW50UHJv
Y2Vzcz47CitwdWJsaWM6CisgICAgc3RhdGljIFBheW1lbnRQcm9jZXNzJiBzaW5nbGV0b24oKTsK
KyAgICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5
cGU6OlBheW1lbnQ7CisKKyAgICB+UGF5bWVudFByb2Nlc3MoKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKKworcHJpdmF0ZToKKyAgICBQYXltZW50UHJvY2VzcygpOworCisgICAgLy8gQ2hpbGRQcm9j
ZXNzCisgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBvdmVy
cmlkZTsKKyAgICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOworCisgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gTWVzc2FnZSBIYW5k
bGVycworICAgIHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7Cisg
ICAgCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThiOTE0ZmM0YThmNDQ3MThj
ZmExMjU3NmQzMzhkYWU1OTJhYTBlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgeworICAgIAorfQor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMzMWM0MDg4YTJkNmJjZDk0MWJjNzc3YzllYTM5NTFhOTE5OWU3OGUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmgiCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCit1c2luZyBuYW1lc3BhY2UgUEFM
OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlm
aWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
LCAqdGhpcykpCit7CisgICAgLy8gTk9URTogd2UgbXVzdCBzZXQgdGhpcyB0byB0cnVlIGJlY2F1
c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBtYXkgcmUtZW50ZXIgd2hlbiBzZW5kaW5nCisgICAg
Ly8gYSBzeW5jIElQQyBhbmQgdGhpcyBpcyBhIGh1Z2Ugc291cmNlIG9mIHNlY3VyaXR5IGJ1Z3MK
KyAgICBtX2Nvbm5lY3Rpb24tPnNldE9ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZSh0cnVlKQorICAgIG1fY29u
bmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFs
aWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBh
eW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5
RW5jb2RlcikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7CisgICAgVU5VU0VEX1BB
UkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsK
KyAgICBVTlVTRURfUEFSQU0obWVzc2FnZU5hbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg0OWE5ZWI0YTEzNzY0NDExNmNhY2VkMDM4MzA3YWIzNDA4MWNm
ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8cGFs
L1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bigpOworCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25u
ZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAg
ICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKKyAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE3ZjBkODY4OTk1ODM4M2FhODFkY2M4MmQz
Y2I3ZDVjNDQ0ZDg4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCAr
MSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uIHsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTQwM2EyZGFmNTFhZTM0
Mjg0NzVlNmMwOTIwYWU5NjAxNmYzM2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KQEAgLTAsMCArMSw2MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKworI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgi
CisKKyNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKworI2RlZmlu
ZSBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcgMAorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6
aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94
UGFyYW1ldGVycykKK3sKKyNpZiBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcKKyAg
ICAvLyBOZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEg
ZGlmZmVyZW50IGJ1bmRsZSBJRC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1
bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKKyAg
ICBzYW5kYm94UGFyYW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0
MkJ1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIiBvZlR5
cGU6QCJzYiJdKTsKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRl
cnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKworI2VuZGlmIC8vIFBBWU1FTlQoUEFZTUVO
VF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFBy
b2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGIvU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNi
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEwNjcyYzY4NmIxNjY3YWQ5N2Y1ZGZkNzVhNGIzYTdiZGMwNjA3YjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMv
aW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKQEAgLTAsMCArMSwzMiBAQAorOyBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorOworOyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzsg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorOworOyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCis7IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCis7IFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
OyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCis7IFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworKHZlcnNpb24gMSkKKyhkZW55IGRlZmF1
bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhhbGxvdyBzeXN0ZW0tYXVkaXQgZmls
ZS1yZWFkLW1ldGFkYXRhKQorCisoaW1wb3J0ICJjb21tb24uc2IiKQorCisoZGVueSBtYWNoLWxv
b2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQorCisoZGVueSBsc29wZW4pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IGE3MmJjOTI5ZGJkN2M3NGMyMjY2OWI4MjMx
N2E2MWZmYWJkZjM3NjkuLjVkMGNjNmUyZjU0ZDM2ODMyZGQyNWY4N2MwODI3NzA5M2JkYzNhNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC00OSw2ICs0OSw5IEBAIHB1Ymxp
YzoKICAgICAgICAgV2ViQ29udGVudCwKICAgICAgICAgTmV0d29yaywKICAgICAgICAgUGx1Z2lu
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudAorI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA4MzMxMmNmODhmN2RmOTY0OWIyZDM2
MmJkNzQ2MTExMDBmODMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEs
NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IHNlc3Npb25JRDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zZXNz
aW9uSUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMGEwOWFiN2VmZDdmMjA5
NGZlNmQ2N2VmNDViOWYzODQ2NzM3YWUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgor
ICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERl
Y29kZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0
IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycygpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRf
UFJPQ0VTUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaApp
bmRleCAyY2U3MTZlNGM3MmU1ODJhYmUzMGY0ODc5ZDJjNmViOWU0OTlhOTdiLi42MmI1NDc0ZWZh
YTcyNGVhYjUyOGI0ZjY3MDE3OTFmMGNlOWFhZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaApAQCAtMzIsNSArMzIsOCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1
dGFibGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdv
cmtQcm9jZXNzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRh
YmxlUGF0aE9mUGF5bWVudFByb2Nlc3MoKTsKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggODc2NmRmZDMwMjA5NjMxZDM5OGE1Mzk4MzhjZWE5
ZmMwNGE4NzdmYS4uZWFhMmMzZTY3NTNlM2I5OGE4NGJmYzUzZWJiMDgzODUxYWRjNjliNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CkBAIC03OSw2ICs3OSw5IEBAIE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29y
a0RhdGFUYXNrUmVwbGF5LmNwcAogCiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNS
ZWdpc3Rlci5jcHAKIAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCitQYXltZW50
UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKwogLy8gVE9ETzogV2Ug
c2hvdWxkIHVuaWZ5IHRoZXNlIGZpbGVzIG9uY2UgR1RLJ3MgUGx1Z2luUHJvY2VzczIgaXMgcmVt
b3ZlZC4KIFBsYXRmb3JtL0xvZ2dpbmcuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vTW9kdWxlLmNw
cCBAbm8tdW5pZnkKQEAgLTIwNyw2ICsyMTAsOCBAQCBTaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJSZXN1bHQuY3BwCiAKIFNoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAogCitT
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKwogLy8g
VE9ETzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9j
ZXNzMiBpcyByZW1vdmVkLgogU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAgQG5v
LXVuaWZ5CiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAgQG5vLXVu
aWZ5CkBAIC0zODAsNiArMzg1LDggQEAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcAorCiBV
SVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NNYW5hZ2VyLmNwcApAQCAtNDgwLDYgKzQ4Nyw4IEBAIFdlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCitXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiAvLyBUT0RPOiBUaGVzZSBmaWxlcyBzaG91bGQg
YmUgdW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggODY0M2RhZTZiZTQzNmI4ZWZjZjc5YzEwMTUwOGYyNTY1YjQyYTMxYy4uNWNkZGNkZjVhMTYz
ZjZlNGI4N2Y4MjkwOTk3OGM4NzFjMmZiMDU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
MTgzLDYgKzE4Myw4IEBAIFNoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmNwcAogU2hhcmVkL21h
Yy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQogU2hhcmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1h
Yy5tbQogCitQYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KKwogU2hhcmVk
L1BsdWdpbnMvbWFjL1BsdWdpblNhbmRib3hQcm9maWxlLm1tCiAKIFNoYXJlZC9QbHVnaW5zL05l
dHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggODcwMTZhYjc1OGViYzEyZDM5OGRmZmQz
YzA1YjhmMjFhYjUwNTI2OC4uZmE3MTg5MTM1YmUzYTljMTBlYTg3YjgwOWNhZDFkYmIzMjkwNWNm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC02
MjEsMTEgKzYyMSwyNyBAQCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRl
U2VydmljZVdvcmtlclByb2Nlc3NlcygpOwogfQogCit2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQoreworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgdG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0Zv
clRlc3RpbmcoKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorCiBQcm9j
ZXNzSUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPm5ldHdvcmtQcm9j
ZXNzSWRlbnRpZmllcigpOwogfQogCitQcm9jZXNzSUQgV0tDb250ZXh0R2V0UGF5bWVudFByb2Nl
c3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+cGF5bWVudFByb2Nl
c3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCit9CisKIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkb21haW5SZWYsIFdLU3RyaW5nUmVm
IG5hbWVSZWYsIFdLQXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5UmVmIGV4dGVuc2lvbnNS
ZWYpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCmluZGV4IGMyZGUzYWZiYzNlODljYTY0OWM0ZmExMzhj
NTk1MTE1ZjMzY2I4OWQuLjQwYzZjMDg3NmRiN2RhZWNhMTQ2ODk3YmExNmQ2Yjg5ZmYzY2FjZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBAIC01MCw2ICs1
MCw3IEBAIHR5cGVkZWYgV0tEYXRhUmVmICgqV0tDb250ZXh0Q29weVdlYkNyeXB0b01hc3Rlcktl
eUNhbGxiYWNrKShXS0NvbnRleHRSZWYgY29udGV4CiAKIHR5cGVkZWYgdm9pZCAoKldLQ29udGV4
dENoaWxkUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2spKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgV0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jh
c2hDYWxsYmFjayBXS0NvbnRleHROZXR3b3JrUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2s7Cit0eXBl
ZGVmIFdLQ29udGV4dENoaWxkUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2sgV0tDb250ZXh0UGF5bWVu
dFByb2Nlc3NEaWRDcmFzaENhbGxiYWNrOwogCiB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGll
bnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC02Miw2ICs2Myw3IEBAIHR5cGVk
ZWYgc3RydWN0IFdLQ29udGV4dENsaWVudFYwIHsKICAgICAvLyBWZXJzaW9uIDAuCiAgICAgV0tD
b250ZXh0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZENhbGxiYWNrICAgICAgICAg
ICAgICAgICBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkOwogICAgIFdLQ29udGV4
dE5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaDsKKyAgICBXS0NvbnRleHRQYXltZW50UHJvY2Vzc0Rp
ZENyYXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRQcm9jZXNz
RGlkQ3Jhc2g7CiAgICAgV0tDb250ZXh0UGx1Z0luSW5mb3JtYXRpb25CZWNhbWVBdmFpbGFibGVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICBwbHVnSW5JbmZvcm1hdGlvbkJlY2FtZUF2YWlsYWJs
ZTsKIH0gV0tDb250ZXh0Q2xpZW50VjA7CiAKQEAgLTcxLDYgKzczLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgV0tDb250ZXh0Q2xpZW50VjEgewogICAgIC8vIFZlcnNpb24gMC4KICAgICBXS0NvbnRleHRQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAg
IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQ7CiAgICAgV0tDb250ZXh0TmV0d29y
a1Byb2Nlc3NEaWRDcmFzaENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3
b3JrUHJvY2Vzc0RpZENyYXNoOworICAgIFdLQ29udGV4dFBheW1lbnRQcm9jZXNzRGlkQ3Jhc2hD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudFByb2Nlc3NEaWRDcmFz
aDsKICAgICBXS0NvbnRleHRQbHVnSW5JbmZvcm1hdGlvbkJlY2FtZUF2YWlsYWJsZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgIHBsdWdJbkluZm9ybWF0aW9uQmVjYW1lQXZhaWxhYmxlOwogCiAg
ICAgLy8gVmVyc2lvbiAxLgpAQCAtODMsNiArODYsNyBAQCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRl
eHRDbGllbnRWMiB7CiAgICAgLy8gVmVyc2lvbiAwLgogICAgIFdLQ29udGV4dFBsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2hlc0NoYW5nZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgcGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZDsKICAgICBXS0NvbnRleHROZXR3b3JrUHJvY2Vzc0Rp
ZENyYXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNz
RGlkQ3Jhc2g7CisgICAgV0tDb250ZXh0UGF5bWVudFByb2Nlc3NEaWRDcmFzaENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50UHJvY2Vzc0RpZENyYXNoOwogICAgIFdL
Q29udGV4dFBsdWdJbkluZm9ybWF0aW9uQmVjYW1lQXZhaWxhYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgcGx1Z0luSW5mb3JtYXRpb25CZWNhbWVBdmFpbGFibGU7CiAKICAgICAvLyBWZXJz
aW9uIDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2
YXRlLmgKaW5kZXggNDZkMzdlMWU4YTE1ODk1ODBhMzU1MzhlZTVmNmY5YmMyZDgwZTIyYy4uNDBk
YWNlYjU3YzkxYzI2NDM1NWJhYmQ2YWUzNWQyOGE0MjdlNjI2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTMsNiArOTMsOCBA
QCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0
UmVmLCBib29sKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZU5ldHdvcmtQcm9j
ZXNzKFdLQ29udGV4dFJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2
aWNlV29ya2VyUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYpOworCiBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3Rpbmco
V0tDb250ZXh0UmVmLCBib29sKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlclRlc3RpbmcoV0tDb250ZXh0UmVmLCBib29s
KTsKIApAQCAtMTEyLDYgKzExNCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRX
aGl0ZWxpc3QoV0tDb250ZXh0UmVmLCBXS0FycmF5UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFByZWNvbm5lY3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2Vy
dmVyVVJMKTsKIAogV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9j
ZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tQcm9jZXNz
SUQgV0tDb250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250
ZXh0KTsKIAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29u
dGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBkb21haW4sIFdLU3RyaW5nUmVmIG5hbWUsIFdL
QXJyYXlSZWYgbWltZVR5cGVzLCBXS0FycmF5UmVmIGV4dGVuc2lvbnMpOwogV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0Q2xlYXJTdXBwb3J0ZWRQbHVnaW5zKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wu
bW0KaW5kZXggY2Q5MDI1ZTdlYmE4ZTZjMmFkYjJiZmY1MDdjYThkYzQ0Mzg2ZTdiMS4uOTIzZTky
MjBlNzQzMmQ1YTMyZDAwYmUzYjcwODBkNzI2Mjg3NTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQyNCw2ICs0MjQs
MTMgQEAgLSAodm9pZClfY2xlYXJTdXBwb3J0ZWRQbHVnaW5zCiAgICAgX3Byb2Nlc3NQb29sLT5j
bGVhclN1cHBvcnRlZFBsdWdpbnMoKTsKIH0KIAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFBy
b2Nlc3MKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIF9wcm9jZXNzUG9vbC0+
dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK30KKwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKIHsK
ICAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC00NDQsNiAr
NDUxLDE1IEBAIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIKICAgICByZXR1cm4g
X3Byb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorLSAocGlkX3Qp
X3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcgoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7Cisj
ZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9
CisKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bv
b2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggNGQz
YTE5MTIwYWJkNDllZWUwNDkyNzk0YTc3ZjRhZmIwNmNkZTkwYy4uM2U2YTkxMjg4NmM2ZGE4NmU4
MmU0YTUxNmQ0MTZjMzE2NzU4Y2MyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTg0LDEyICs4NCwx
NCBAQAogLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICop
cmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJl
IGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4K
Ky0gKHZvaWQpX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfdGVybWluYXRlTmV0d29y
a1Byb2Nlc3M7CiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZvaWQpX2Rpc2FibGVT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChwaWRfdClfbmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDEx
LjApKTsKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4K
IC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
UHJvY2Vzc0xhdW5jaGVyLmgKaW5kZXggZTA3ZGJhMjcyYTJlMTViZTgyOWRlMjM0YzVkZDUwZDU3
MzhlMWEwYy4uMTRhMzlmYThjZTc1YTU5YzMxYTE4NjgzZGNhZDA2NTE4MGRmM2Q4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgK
QEAgLTU4LDYgKzU4LDkgQEAgcHVibGljOgogICAgICAgICBQbHVnaW42NCwKICNlbmRpZgogICAg
ICAgICBOZXR3b3JrLAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1l
bnQsCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB9OwogCiAgICAgc3Ry
dWN0IExhdW5jaE9wdGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggNmNiYWMyNWQ3ODRj
MGVlZWE1OGE2ODRhYjQ2ODQ0NWFlMmUzOTI2Mi4uODQ2NzY0NTc5ZTYxOTZmNzBmZDA0N2Y0M2Rh
ZmI5YzZkOTRkMTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC02Miw2ICs2MiwxMCBAQCBz
dGF0aWMgY29uc3QgY2hhciogc2VydmljZU5hbWUoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVu
Y2hPcHRpb25zJiBsYXVuY2hPcHRpbwogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNz
VHlwZTo6UGx1Z2luNjQ6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
NjQiOwogI2VuZGlmCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBjYXNlIFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBheW1lbnQ6CisgICAgICAgIHJldHVybiAiY29tLmFw
cGxlLldlYktpdC5QYXltZW50cyI7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRz
L1BheW1lbnRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZlMzI1ODliOWJiYzU4OTU1
ZGQ2OGFhNzNjNjJmM2JkYjQ5Mzk1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCkBAIC0wLDAgKzEsMTM1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisKKyNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bC5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCitQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQ
b29sJiBwcm9jZXNzUG9vbCkKKyAgICA6IENoaWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFs
d2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQorICAgICwgbV9wcm9jZXNzUG9vbChwcm9j
ZXNzUG9vbCkKKyAgICAsIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQoreworICAg
IGNvbm5lY3QoKTsKK30KKworUGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJv
eHkoKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3Rp
bmcoKQoreworICAgIHRlcm1pbmF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6
OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQ
cm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVw
bGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOworICAgIAorICAgIGlmIChzdGF0ZSgpID09IFN0
YXRlOjpMYXVuY2hpbmcpIHsKKyAgICAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3Rz
Kys7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzID0gZmFsc2U7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2lu
OworICAgIAorICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBzZWN1cml0eU9y
aWdpbiksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KTsKK30KKyAgICAKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1
bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMp
Cit7CisgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9IFByb2Nlc3NMYXVuY2hlcjo6UHJv
Y2Vzc1R5cGU6OlBheW1lbnQ7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlv
bnMobGF1bmNoT3B0aW9ucyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6cHJvY2Vz
c1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgQVNTRVJU
X1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRpZFJlY2VpdmVQYXltZW50
UHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKQoreworICAgIGF1dG8gcHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVmKG1f
cHJvY2Vzc1Bvb2wpOworCisgICAgLy8gVGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUgY3Jh
c2hlZCBvciBleGl0ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0
IGhhdmUuCisgICAgd2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VG
aXJzdCgpOworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKyAgICAvLyBUZWxsIFBy
b2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBtYXkg
Y2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNz
Q3Jhc2hlZCgqdGhpcyk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQorewor
fQorCit2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKQoreworfQorICAgIAordm9pZCBQYXltZW50UHJvY2Vzc1By
b3h5OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0
dGFjaG1lbnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nl
c3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcikKK3sKKyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNo
aW5nKGxhdW5jaGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBpZiAoIUlQQzo6Q29u
bmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBEbyBiZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rp
b25SZXF1ZXN0czsgKytpKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6
Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oZmFsc2UsIHsgfSksIDApOworICAg
IAorICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTAzMWM3YzY3YjRmMGU5NDI2YjExZDEwZjFlNTU0NTk1Nzg0ZjA1Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1l
bnRQcm9jZXNzUHJveHkuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vz
c1Byb3h5LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJp
dHlPcmlnaW5EYXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vz
c1Bvb2w7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlw
ZTsKK3N0cnVjdCBXZWJzaXRlRGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5h
bCA6IHB1YmxpYyBDaGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5
bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1By
b3h5KCk7CisgICAgCisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBn
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkm
Jik7CisKK3ByaXZhdGU6CisgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExh
dW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwor
CisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJy
aWRlOworCisgICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJz
CisgICAgdm9pZCBkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJ
UEM6OkF0dGFjaG1lbnQmKTsKKworICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CisgICAg
dm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKSBvdmVycmlkZTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3Byb2Nlc3NQ
b29sOworCisgICAgdW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOworICAg
IERlcXVlPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjBkNTE3NzJhYWVlYzcw
ZWJjNjBmMzU0NmI4ZTEyNzZmODA2NDZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NQcm94
eSB7CisgICAgRGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRh
Y2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRl
eHRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5j
cHAKaW5kZXggZmE0NTc2MmVjZWJhMDEzYTZhY2E0Zjk2NGRhODU2NjM5NzQxZDU3NS4uYmVjNzli
NTRjYmY2YzZlYzVlZmVmZjRhOTc1NzBmNjk5YjU1M2YxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKQEAgLTQ2LDQgKzQ2LDExIEBAIHZvaWQgV2Vi
Q29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJv
Y2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFzaCh0b0FQSShwcm9j
ZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKK3sKKyAgICAKK30KKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaAppbmRleCA4MGMzMTEyMmMwNzc2ZDRl
ZThkNzc4ZDU2NjgyMTAxNTIyMTYzN2Q2Li41OWIzYTQwNzkxMDhmMjM4ZjFkNmY4YWJmMWFiOWVk
Y2M4NDUzOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5o
CkBAIC00NSw2ICs0NSwxMCBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6
Q2xpZW50PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lkIG5l
dHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9v
bCopOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
U3VwcGxlbWVudC5oCmluZGV4IGVkNTViNDAzZGIyOWY5NDAwNDM4YmEzMmE2MGM3NTgyNzQ5MzRm
YTYuLjJjNmFjYmIwNWNiMDI2YWNkYTc1YzA2N2QxZjBkOWQ0NTlhMTI3ZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaApAQCAtMjksNiArMjks
MTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5Owor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjbGFzcyBQYXltZW50UHJvY2Vzc1Byb3h5Owor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIGNsYXNzIFdlYlByb2Nlc3NQb29s
OwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogCkBAIC01NCw2ICs1OCwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vzc1Byb3h5KikKICAg
ICB7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEaWRDbG9zZShQYXltZW50UHJvY2Vzc1Byb3h5KikKKyAgICB7CisgICAg
fQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQcm9jZXNzUG9v
bCogcHJvY2Vzc1Bvb2woKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NQb29sOyB9CiAgICAgdm9p
ZCBjbGVhclByb2Nlc3NQb29sKCkgeyBtX3Byb2Nlc3NQb29sID0gbnVsbHB0cjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IDU4OWJiY2U3
NjYyYzhiYzUyZDZmZWQyYmZiNzZiY2M1ODViYTJkZGIuLmFlN2M5OWZhOGQwOWIyMzVhNDBmZmRk
NTI0YjkyZTQ0YTZiOTc5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
Ykluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5jcHAKQEAgLTYzMSw3ICs2MzEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0
aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDdkNGFjMzcyNjNiNWQzODI4MDg3Y2VjODNkMjA4M2M3NDNk
NjA1YzUuLjk4OGZiYzYxYWJhNTkzMGMxMjZmN2Y4OWEyOTMwMTgzNmI5ZjBlMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU0LDYgKzU0LDEwIEBA
CiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUg
IlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC00NDIsNiAr
NDQ2LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNzdXJlRXZlbnQoYm9v
bCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6Q2hpbGRQ
cm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKSk7CiAgICAg
c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2
ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6
RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAg
ICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRNZW1vcnlQcmVzc3VyZUV2
ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MTcsNiArNjI0LDM2IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwogfQogCisjaWYgRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVBheW1lbnRQcm9j
ZXNzKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAgIG1fcGF5bWVudFBy
b2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+KCp0aGlzKTsKK30K
KyAgICAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihX
ZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNl
c3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2Vz
cygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3
ZWJQcm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkmIHBheW1lbnRQcm9j
ZXNzUHJveHkpCit7CisgICAgQVNTRVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAgIEFTU0VSVChw
YXltZW50UHJvY2Vzc1Byb3h5ID09IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOworCisgICAgZm9y
IChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAgICAgICAgc3Vw
cGxlbWVudC0+cHJvY2Vzc0RpZENsb3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOworCisgICAgbV9j
bGllbnQucGF5bWVudFByb2Nlc3NEaWRDcmFzaCh0aGlzKTsKKworICAgIGlmIChtX2F1dG9tYXRp
b25TZXNzaW9uKQorICAgICAgICBtX2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5hdGUoKTsKKwor
ICAgIG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nl
c3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3Mo
TmV0d29ya1Byb2Nlc3NQcm94eSYgcHJveHksIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5
T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQpCiB7CkBAIC02
OTMsNiArNzMwLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRI
YXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGUKICAgICAgICAgc2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24o
UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgfQogfQpAQCAtMTM1
MSw2ICsxMzkxLDE1IEBAIFZlY3RvcjxTdHJpbmc+IFdlYlByb2Nlc3NQb29sOjphY3RpdmVQYWdl
c09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJCiAgICAgfQogICAgIHJldHVy
biB7IH07CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBXZWJQcm9j
ZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVu
dFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29k
ZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKIHsKQEAgLTE2MjIsNiArMTY3MSwxNyBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKICAgICBpZiAo
bV9uZXR3b3JrUHJvY2VzcykKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKSwgMCk7CiB9CisgICAg
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1p
bmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9j
ZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BheW1lbnRQcm9jZXNzLT50ZXJtaW5hdGVG
b3JUZXN0aW5nKCk7CisgICAgbV9wYXltZW50UHJvY2VzcyA9IG51bGxwdHI7Cit9CisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWlu
YXRlTmV0d29ya1Byb2Nlc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKaW5kZXggZDI4NDNmZjY2ODI4Zjk1NTZmYzIzYjcxMzBjYjg0NmFhYTdhNmQ3YS4uOTM1
YjBlYTEwMzc1YTg1M2MyZGU1NDUyMDgyMWM5MDkyMGVjODhmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiUHJv
Y2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlICJTdGF0aXN0aWNzUmVxdWVzdC5oIgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NQcm94eS5oIgorI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVu
dC5oIgpAQCAtMTczLDYgKzE3NiwxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVT4gdm9pZCBzZW5kU3luY1RvTmV0d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3Nh
Z2UsIFUmJiByZXBseSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3
b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogCisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNl
bmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVz
c2FnZSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogICAgIHZvaWQgcHJv
Y2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkqKTsKIAogICAgIC8vIERpc2Nv
bm5lY3QgdGhlIHByb2Nlc3MgZnJvbSB0aGUgY29udGV4dC4KQEAgLTIxNyw2ICsyMjUsOSBAQCBw
dWJsaWM6CiAgICAgUHJvY2Vzc0lEIG5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogICAgIFZl
Y3RvcjxTdHJpbmc+IGFjdGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3RpbmcoUHJv
Y2Vzc0lEKTsKICAgICBib29sIG5ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5n
KGNvbnN0IFN0cmluZyYpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgUHJvY2Vz
c0lEIHBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAKICAgICBXZWJQYWdlR3JvdXAmIGRlZmF1bHRQYWdlR3JvdXAoKSB7IHJldHVy
biBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCk7IH0KIApAQCAtMjc2LDYgKzI4Nyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wp
OwogCiAgICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygp
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9pZCB0ZXJtaW5hdGVO
ZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3Nl
cygpOwogICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxh
eSgpOwpAQCAtMzQ0LDYgKzM1OCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBlbnN1cmVQYXltZW50UHJvY2Vzcygp
OworICAgIFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzKCkgeyByZXR1cm4gbV9w
YXltZW50UHJvY2Vzcy5nZXQoKTsgfQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9j
ZXNzUHJveHkqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsKICAgICBTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJ
RCh1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwpAQCAtNjQzLDYgKzY2Myw5IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9kaWROZXR3b3JrUHJvY2Vzc0NyYXNoIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50UHJvY2Vzc1By
b3h5PiBtX3BheW1lbnRQcm9jZXNzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPj4gbV9k
aWN0aW9uYXJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0
aWNzUmVxdWVzdD4+IG1fc3RhdGlzdGljc1JlcXVlc3RzOwpAQCAtNzQ0LDYgKzc2NywyMiBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZO
ZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZv
cndhcmQ8VD4obWVzc2FnZSksIDApOwogfQogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50
UHJvY2VzcyhUJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAobV9wYXltZW50UHJvY2VzcyAmJiBtX3Bh
eW1lbnRQcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNz
LT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNo
aW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCit7CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3Mo
KTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwg
MCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25zdCBU
JiBtZXNzYWdlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKaW5kZXggN2I2MWVmMjUyM2QyYzliMTIwYWNjNjFjNWU0OWJhMTk1NTQzYTQyYS4uNzc5MmFm
MTRmNjNjYTJhZWI0NjBmZjhlMTUzYjJjNjYyMmU4ZTIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02MjgsNiArNjI4LDEyIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0CiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
K3sKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMs
IGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUocmVwbHkpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogYm9vbCBXZWJQcm9jZXNz
UHJveHk6OnBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZGJjMjJhNWE5YzlhMjFiYWMzZGRjMmZhMmY0
YmY4YzAwZDRiYjVkMS4uOTJhNmRmOGU4M2YxM2ZmYzY0Y2M0MGI0YzA0ZWY0MTdlN2JmMTViNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTI4Nyw2ICsy
ODcsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxT
ZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAgICAgYm9vbCBwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNvbnN0OwogICAgIGJvb2wg
c2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmE5
OGY0ZTk2MDQ3ZGFiZjE2NGE3NjEwYTg3ZjJhOWY2ODYwYjQ4YS4uOGY1ZTFkNjY2MGIxNTBkNzU3
MzBhNjNlMWYwOTNkNDNmNmEzNmQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiArMzcsOSBAQCBtZXNzYWdl
cyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNo
bWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6
YXRpb24pIERlbGF5ZWQKICNlbmRpZgogICAgIEdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
IC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgR2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6
U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkhhbmRsZSkgRGVsYXllZAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAg
UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYjkwYzE0MjQxNzZjNjUxNWU3ZWU0YTU2MjJiOGVjNmVi
ZTI2YzM4MS4uOGE3OWQ0ZmQ4OWJiNGMyNDYyYTAyZDcyZWI0NzdlNmQxNzhjZDlmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlN0b3JhZ2VNYW5hZ2VyLmgiCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyNpbmNs
dWRlICJQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCkBAIC0xMzUsNiArMTM5LDkg
QEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogICAgICAgICBBU1NFUlQo
bm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAgICAg
ICBub25EZWZhdWx0RGF0YVN0b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAgIGZv
ciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkp
IHsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICAgICAgZGVzdHJveVBheW1l
bnRQcm9jZXNzU2Vzc2lvbihwcm9jZXNzUG9vbCk7CisjZW5kaWYKICAgICAgICAgICAgIGlmIChh
dXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQogICAg
ICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5yZW1vdmVTZXNzaW9uKG1fc2Vzc2lvbklEKTsK
ICAgICAgICAgfQpAQCAtMTMyMiw2ICsxMzI5LDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
CiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRlc3Ryb3lQYXltZW50UHJvY2Vz
c1Nlc3Npb24oV2ViUHJvY2Vzc1Bvb2wqIHBvb2wpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICBwb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFBy
b2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK30KKyAgICAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlUHJl
dmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucykKIHsKICAgICBmb3Ig
KGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCkBAIC0xNjI2LDYgKzE2NDAsMTkg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldl
YlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGwKICAgICBjYWxsYmFjaygpOwogfQogCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIFdl
YnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycygpCit7CisgICAgcmVzb2x2
ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKKworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisKKyAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vz
c2lvbklEOworCisgICAgcmV0dXJuIHBhcmFtZXRlcnM7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKwogVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gV2Vic2l0ZURhdGFTdG9y
ZTo6cGVuZGluZ0Nvb2tpZXMoKSBjb25zdAogewogICAgIHJldHVybiBjb3B5VG9WZWN0b3IobV9w
ZW5kaW5nQ29va2llcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggODUyYjZiYjVkMzZmYmI2ZTk1OTkyZTg4
MjQ2OGIyNmJkZDkwNzE1OS4uNWE2MzYzOTQ5YjZlZjA2M2M5MDI1NGU2YWE4ZDlmNGI0Yzk5ODZm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtNjYsNiArNjYsOSBAQCBjbGFzcyBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhRmV0Y2hPcHRpb247CiBlbnVt
IGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitzdHJ1Y3QgUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29yZDsKIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVyczsKIApAQCAtMTcxLDYgKzE3NCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fzc29j
aWF0ZWRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAgV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGF5bWVudFByb2Nlc3NQ
YXJhbWV0ZXJzKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lk
IGRlc3Ryb3lQYXltZW50UHJvY2Vzc1Nlc3Npb24oV2ViUHJvY2Vzc1Bvb2wqKTsKIAogICAgIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAgICAgdm9pZCBh
ZGRQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKaW5kZXggOGRk
NWMxOTAzZDU5NjFhYzA3M2JmMDFlOGJlYWFiNWUxZTE5OWY1My4uZjA2NTdmNDEwN2Q5MmIzZmIz
MDAzMzE3OTA3MWQ0MDdjNmIyMjlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJp
bmcmKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtU2hvd0NlcnRpZmljYXRlKGNvbnN0IENlcnRpZmljYXRlSW5mbyYpCit2b2lkIFdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MWQ5NDgxZjUz
MmNlNzk0M2NjOWU2NzQ2MGIyYmI4MDIyYzM3NmY4Li4zMTc1NDZkZjYyOWI1ZjYwYjcxMjdiODJj
MGNjZDMzMDk5ODcyZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTg0Niw2ICs4NDYsNyBAQAogCQkzN0Y5MERFMzEzNzY1NjBFMDA1
MUNGNjggLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kuaCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8q
IFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8q
IFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0
NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBX
S05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKKwkJMzkxMzYwMjUyMTkzQzE0
MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5MTM2MDI0MjE5M0MxNDMwMDU2NDky
QSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiICovOyB9OwogCQkzRjQxOEVGOTE4ODdC
RDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4
ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNGODdCOUJF
MTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBX
ZWJDb2xvckNob29zZXIuaCAqLzsgfTsKQEAgLTkwNCw2ICs5MDUsMTAgQEAKIAkJNTEwRjU5MTEx
RERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5NzkxRERENzg1NDAwMzJDQUQz
IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTBBRTBC
MTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAv
KiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4RTlBOTFGMjk1OTc3
MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTE4
RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1
OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUx
MUY3RDQxMUVCMUJDRjUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIx
QkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUx
MUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5
NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLzsgfTsKIAkJNTExRjhBODExMzhCNDg1RDAw
QTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVt
U2hpbUxpYnJhcnkubW0gKi87IH07CkBAIC05NTUsNiArOTYwLDcgQEAKIAkJNTE3Q0YwRTMxNjNB
NDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBF
MTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFn
ZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENh
Y2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1
MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NG
MEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
ICovOyB9OworCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1
QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4
NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIg
LyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8q
IFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25T
cGFjZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTE4QUNGMTExMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAx
NUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTgyLDYgKzk4OCw4IEBACiAJCTUxREQ5RjI4
MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MUREOUYyOTE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlGMjcxNjM2N0RBMjAwMTU3OEU5
IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFF
MzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8q
IElEQlV0aWxpdGllcy5oICovOyB9OworCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogUGF5
bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLzsg
fTsKKwkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgKi87IH07CiAJCTUxRTZDMTY0MUYyOTM1REQwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLzsgfTsKIAkJNTFFRkMxQ0YxNTI0RTYy
NTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIg
LyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2Vi
UmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFGMDYwREUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9h
ZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTE1NjgsNiArMTU3Niw3IEBACiAJCUQzQjk0ODQ3MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1
cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovOyB9Owog
CQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1RkU1MzE4RDdCOURFMDA4RjU3
QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07CisJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAv
KiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lP
Uy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87
IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nl
c3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi87IH07CkBA
IC0yOTc2LDYgKzI5ODUsMTMgQEAKIAkJMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDgxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudHMuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50
cy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMkIyMTk1MTRCRDAwNTY0
OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMkMyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5NDJC
MjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOUJEMEFG
NTIxQUUyMDJFMDBFMzI0M0YgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJJbmZv
LWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5QkQwQUY2MjFBRTIw
MkUwMEUzMjQzRiAvKiBQYXltZW50U2VydmljZUVudHJ5UG9pbnQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQYXltZW50U2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThFRjYxODg3
QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY3
MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxMDIsNiArMzExOCw3
IEBACiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8q
IFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMkYxQTE4
MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDRGNUExMUYxOUQ3Q0YwMDRDRjgyMSAvKiBDb29r
aWVTdG9yYWdlVXRpbHNDRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTA1MjM3MTFDNzNEMjJCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzIxQzcz
RDM3QjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMzEyNSwxMSArMzE0MiwxNSBAQAogCQk1MTEw
QUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTExOEU5QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2MzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTExRjdEM0YxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEx
RjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0
NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21hYy9TZWNJ
dGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNDcsNiAr
MzE2OCw3IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5
NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5Nzgw
MEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUwNUQyMDAz
OUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJG
NTg4RTEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEYxMkE4
ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1MzAgLyog
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjE3LDYgKzMyMzksOCBAQAogCQk1MTdDRjBFMTE2
M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9DYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxN0RENUJDMTgwREE3RDMwMDgx
NjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODNCMzkzMTM3OUY4NUMwMEU4NzU0
RSAvKiBTaGltLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFNoaW0u
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjU5MTI3Q0I4OUQw
MEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb250ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzIzNiw2ICszMjYwLDcgQEAKIAkJNTFBNTU2MDAxMjhDNkQ5MjAw
OUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUE1ODc3RTFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQlJlc3VsdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdGMUQxQzRDQjkwMDRCQTlBRiAvKiBX
ZWJJREJSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSURCUmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTYwQjI5MTgwQ0NEOTAwMEYz
QkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQYXltZW50U2Vy
dmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNzI4REMxQjFC
QUQyRDAwMTAyRUVFIC8qIFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGMjEyNUJGODIwMDA4QUVC
MUQgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnaW5n
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIx
RCAvKiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Z2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI5NSw2ICszMzIwLDEx
IEBACiAJCTUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MUUzNTFDODE4MEYyQ0NDMDBFNTNCRTkg
LyogSURCVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IElEQlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM5
MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXltZW50UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3Zp
ZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTVGMUYyOTM1
NTEwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVu
dFN0b3JhZ2VJT1MubW07IHBhdGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3Rl
bnRTdG9yYWdlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE2MTFG
MjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQ0OSw2ICs0NDc5LDcgQEAKIAkJ
RTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzEx
RjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JF
RTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAv
KiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBheW1lbnRQcm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdv
cmtDYWNoZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIx
QUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2MjMsNiArNDY1NCw3IEBACiAJCQkJMUExRDIxMTYxOTFEOTk1
QzAwMDE2MTlGIC8qIHBvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoICovLAogCQkJCUJD
MkU2RTc0MTE0MTk2RjAwMEE2M0IxRSAvKiBQbGF0Zm9ybSAqLywKIAkJCQkxQUFEREY0QjEwRDgy
QUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLAorCQkJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAv
KiBQYXltZW50UHJvY2VzcyAqLywKIAkJCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQ
cm9jZXNzICovLAogCQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICov
LAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKQEAg
LTQ4MjgsNiArNDg2MCw3IEBACiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdv
cmstT1NYLXNhbmRib3guZW50aXRsZW1lbnRzICovLAogCQkJCTVDN0FDRkQxMjE4REQ4QkQwMDRD
QkI1OSAvKiBOZXR3b3JrLU9TWC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJQkM4MjgzQUIxNkI0QkVB
RDAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlLnhjY29uZmlnICovLAorCQkJCTUxQTYwQjI5MTgw
Q0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlBMUVERDJE
QjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8sCiAJCQkJ
QkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25maWcgKi8s
CiAJCQkJQkM4MjgzRjQxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQueGNjb25m
aWcgKi8sCkBAIC00OTg1LDYgKzUwMTgsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2
OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQkzOTEzNjAyQTIx
OTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVudCAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0
YSAqLywKQEAgLTYyNjgsNiArNjMwMiw1NyBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9tYWM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOTEzNjAyQTIxOTUxNEJEMDA1NjQ5
MkEgLyogUGF5bWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJMzkxMzYwMkIyMTk1MTRCRDAwNTY0OTJBIC8qIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCAqLywKKwkJCQkzOTEzNjAyQzIxOTUxNEJEMDA1NjQ5MkEgLyogUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVu
dDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTM5MkU5NDJBMjE5QTJFODUw
MDUwRjk4MiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOTJFOTQyQjIxOUEzOTlBMDA1MEY5ODIgLyogV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVu
dHM7CisJCQlzb3VyY2VUcmVlID0gIjx1bmtub3duPiI7CisJCX07CisJCTM5QkQwQUYxMjFBRTIw
MkUwMEUzMjQzRiAvKiBFbnRyeVBvaW50ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQkzOUJEMEFGMjIxQUUyMDJFMDBFMzI0M0YgLyogaW9zICovLAorCQkJ
KTsKKwkJCXBhdGggPSBFbnRyeVBvaW50OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKKwkJMzlCRDBBRjIyMUFFMjAyRTAwRTMyNDNGIC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzlCRDBBRjMyMUFFMjAyRTAwRTMyNDNGIC8q
IFhQQ1NlcnZpY2UgKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCTM5QkQwQUYzMjFBRTIwMkUwMEUzMjQzRiAvKiBYUENTZXJ2aWNl
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOUJEMEFG
NDIxQUUyMDJFMDBFMzI0M0YgLyogUGF5bWVudFNlcnZpY2UgKi8sCisJCQkJMzlCRDBBRjYyMUFF
MjAyRTAwRTMyNDNGIC8qIFBheW1lbnRTZXJ2aWNlRW50cnlQb2ludC5tbSAqLywKKwkJCSk7CisJ
CQlwYXRoID0gWFBDU2VydmljZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CTM5QkQwQUY0MjFBRTIwMkUwMEUzMjQzRiAvKiBQYXltZW50U2VydmljZSAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzlCRDBBRjUyMUFFMjAyRTAwRTMy
NDNGIC8qIEluZm8taU9TLnBsaXN0ICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50U2Vydmlj
ZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQxMzA3NTk3MURFODRFRDcw
MDM5RUM2OSAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtNjU4Nyw2ICs2NjcyLDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIFBheW1l
bnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdE
RDVCQzE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5jcHAgKi8sCisJCQkJ
NTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLywKKwkJ
CQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gUGF5bWVudHM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0aGVudGljYXRp
b24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjY0Myw2
ICs2NzM4LDIxIEBACiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNzICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOUJEMEFGMTIxQUUy
MDJFMDBFMzI0M0YgLyogRW50cnlQb2ludCAqLywKKwkJCQlFMUZFRjM5QjE5MEY3OTFDMDA3MzE2
NTggLyogaW9zICovLAorCQkJCTUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJv
Y2Vzcy5jcHAgKi8sCisJCQkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9j
ZXNzLmggKi8sCisJCQkJNTFFMzUxRkMxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNz
Lm1lc3NhZ2VzLmluICovLAorCQkJCTUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTFFMzUxRkUxODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggKi8sCisJCQkJNTEwMzJGMUEx
ODBGNzRGMTAwOTYxQkI3IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTUzOUJENUIyMURBREIwQkEwMEYyRTRFMSAvKiBjYXB0dXJl
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTcwNjYsNiAr
NzE3Niw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE3OEND
REQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgKi8s
CisJCQkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dHMuc2IgKi8sCiAJCQkJQTc4Q0NERDcxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZS5zYiAqLywKIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiICovLAogCQkJKTsKQEAgLTcxMTQsNiArNzIyNSw3IEBA
CiAJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1lZGlhU3RyZWFtICovLAogCQkJCTUx
MDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJCTMxMDk5OTc0MTQ2QzhB
QTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKKwkJCQkzOTJFOTQyQTIxOUEy
RTg1MDA1MEY5ODIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcx
IC8qIFBsdWdpbnMgKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2Ug
Ki8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLApAQCAt
NzI3Niw2ICs3Mzg4LDcgQEAKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBDNjUwQzUgLyogbWFjICov
LAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3b3JrICovLAogCQkJCTMxQTJF
QzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovLAorCQkJCTUxN0RENUJCMTgw
REE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAqLywKIAkJCQkxQUVGQ0MwNTExRDAxRjM0MDA4MjE5
RDMgLyogUGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5QjQyMDAwNkUzRkUgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2MzkwQyAvKiBVc2VyQ29udGVu
dCAqLywKQEAgLTgzNzUsNiArODQ4OCwxMCBAQAogCQkJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIz
QyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLywKIAkJCQkxQTJEODQzNzEyN0Y2
NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAogCQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNl
aXZlck1lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1l
bnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBNjFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE3MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
KwkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQTI5QTI1MUNCRUI2N0EwMDkw
MUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEy
NjFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKQEAgLTg2OTQsNiArODgxMSwxNCBAQAogCQkJbmFtZSA9IFBERjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1
OCAvKiBpb3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLywKKwkJ
CSk7CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
RTQ4OUQyODIxQTBBMkJFODAwNzhDMDZBIC8qIGNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxNjQsNiArOTI4OSw5IEBACiAJCQkJMUFDNzUzN0Mx
ODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
OEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdERDVCRjE4MERBN0QzMDA4
MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5
QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0
SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGQjAyMTg5MTI2NDAwMjVBODhEIC8q
IFBlbmNpbEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDE1OCw2ICsxMDI4Niw3IEBACiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJRTE3QUUy
QzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2Ig
aW4gUmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBw
bGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFMTFEMzVBRTE2QjYz
RDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAog
CQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBjb20uY2lzY28ud2ViZXgucGx1Z2luLmdw
YzY0LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0ODMgLyog
Y29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApAQCAtMTA3NjMsNiArMTA4OTIs
MTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lT2JqZWN0TWFw
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOUFJ1
bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3OTQyMTJCNkFENDAw
RjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUxRkYx
ODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBQTFGMjk1OTc3MDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMjgxQ0JFQjY3QTAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0
OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZkMGE3YjU2OTJiMTE5ZmM2
N2Y0MjdkZDQ3OWVlMThkMzgxNjNjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAg
LTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
CisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRl
Q2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIG1f
Y29ubmVjdGlvbi0+b3BlbigpOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmlu
dmFsaWRhdGUoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNDE3N2Y4ZjJlYzdjNTUzODc3ZDFmYjkwNDI2ZDEyM2MxNmE2
MjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRz
L1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVy
Lmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHByaXZhdGUgSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKworICAgIC8v
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpD
b25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgLy8g
SVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQorICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsg
fQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JU
YXJnZXRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcAppbmRleCBiMGQ3MDNjNTM3ZjAwNzkw
YzRmZmNhOWYzYjFkOWI0MWRkMDhhNDNlLi43YjVkMDAxNjBkZTM1OTk4ZjVkNTc3YTRiZjM1NThi
MTk2NTFjNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXIuY3BwCkBA
IC02Myw3ICs2Myw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OnJl
bW92ZVRhcmdldChJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldCYKIAogdm9pZCBXZWJQYWdlSW5z
cGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRh
cmdldElkLCBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5cGUgY29ubmVj
dGlvblR5cGUpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0
KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsK
ICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCkBAIC03OCw3ICs3OCw3IEBAIHZv
aWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmNvbm5lY3RJbnNwZWN0b3IoY29u
c3QgU3RyaW5nJiB0YXJnZXRJZCwKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJv
bGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdldElkKQogewotICAg
IEluc3BlY3RvclRhcmdldCogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CisgICAg
YXV0byogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CiAgICAgaWYgKCF0YXJnZXQp
CiAgICAgICAgIHJldHVybjsKIApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0
b3JUYXJnZXRDb250cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgdGFy
Z2V0SQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpzZW5kTWVzc2Fn
ZVRvVGFyZ2V0QmFja2VuZChjb25zdCBTdHJpbmcmIHRhcmdldElkLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRh
cmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKICAg
ICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggZjQ0ZTY1MzdlZTExMjBkY2NlNzZhMTRiMmFkOGMyYzBlMjI1
Zjg5MS4uMzZiZmY0NmZmMDNlNTIyNzk2Y2RlNTllNzRkNzM1YWEzMDMzODNmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTM1LDYgKzEzNSwxMSBAQAogI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQogI2luY2x1ZGUg
IlNlY0l0ZW1TaGltLmgiCiAjZW5kaWYKQEAgLTEyMzIsNiArMTIzNywzMSBAQCBXZWJMb2FkZXJT
dHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAgIHJldHVybiBt
X3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lk
IFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVChtX3dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
biYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0
aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZp
ZXIpLCAwKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgaWYgKCFJ
UEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkK
KyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlv
bklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiB2b2lk
IFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlYmI4NDhhNTNlN2I1MWMwYjQxYTJh
YjBiZWVjYjI5OTdhN2JhNmU1Li43MTgwNDVjMjkyZWViMjYxMzE0Njk0Y2Q3NGFjZjY3NzE5Y2Fl
NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4LDYgKzk4LDkg
QEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2ViUGFn
ZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb247CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBl
Owogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdyb3Vw
RGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2ViUlRDTmV0d29y
ayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIGVu
c3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxT
ZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lk
IHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDQwLDYgKzQ0OCwxMCBAQCBw
cml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk+
IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1Mp
CisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBmNTg4ZjMyYzQyNGZlODBhNzRk
NjFkYzRiNzgwNjgxNDFiOGVjNDNlLi44N2JhNTZiOWU2OTQ3YzhlOTNmNWFhNjBiZWY1MmZjNDZh
Y2NiNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkwLDYgKzI5MCw3IEBA
IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRP
Ul9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0g
RU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSA7CiBFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BE
RktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFh
ZjM3NTQ3YTdhYTJjZjAzYTNmNjU3NjE1YTU4MDg5YTMxMzJmZDIuLmYxYWQwOWZiNDcxZTM3Zjg0
ZWNlZmI2MTAxNjk1ZDNmZGM5MTU1OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOC0xMS0yNyAgWmFtaXVsIEhh
cXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3
aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVybWluYXRl
UGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmln
dXJhdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc05h
bWUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NEaWRDcmFz
aCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vz
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSk6CisKIDIwMTgtMTEtMjYgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtld3MtYXBwXSBTZXQgRm9yZWlnbiBLZXlzIGluIEVXUyBEamFuZ28gYXBw
IG1vZGVscwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZjU4OGYzMmM0MjRmZTgwYTc0ZDYxZGM0
Yjc4MDY4MTQxYjhlYzQzZS4uODdiYTU2YjllNjk0N2M4ZTkzZjVhYTYwYmVmNTJmYzQ2YWNjYjU0
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yOTAsNiArMjkwLDcgQEAgRU5BQkxFX05BVklH
QVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7
CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFU
Rk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJ
Q0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IDsKIEVOQUJMRV9QQVlNRU5UX1JF
UVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9
ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAppbmRleCBkYTAyMmM0ZjBjNzY5MmU3YzZkZjRkNjJlNDU5NmYxODllYWRi
YzVlLi4yMDhjMWU1ZWJhMjM5ODVjYmU3NDExZWIwMmJiYzM2MjQ0Y2E2Zjk3IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMzNSw2ICszMzUsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5l
ciB7CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJt
aW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOworICAgIFtDb25kaXRpb25hbD1QQVlNRU5UX1BS
T0NFU1NdIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuIGRpZENhbmNlbENsaWVudFJlZGlyZWN0OwogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBi
ZDY4YWQxNTg5MzlhMWZlMDIyMzBhZWQ3OWIzYTc1OWVkYWJkMzM2Li4wYTRkNTUzZTBmNGFhODg2
YjQwY2IyOWJjNmYwZThlMmQ1OWJkYjYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTIsNyArMTI5MiwxNCBA
QCB2b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIlRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIikpOwogICAg
IFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxw
dHIsIG51bGxwdHIpOwogfQotCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgVGVz
dFJ1bm5lcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVGVybWluYXRlUGF5bWVudFByb2Nlc3MiKSk7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5
bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBh
Z2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAKIHN0YXRpYyB1bnNpZ25lZCBu
ZXh0VUlTY3JpcHRDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMgdW5zaWduZWQgY2FsbGJhY2tJ
RCA9IEZpcnN0VUlTY3JpcHRDYWxsYmFja0lEOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAxMjBlZmM4MjYzZWM3NzI0OWIz
YjBkN2RhNjE0NzZhM2M4YTdhZjE3Li5iMmQzZThkY2FhMDlmN2YyZjI5N2YxMGRmMjBjZmNmZTM3
YmE2NGYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaApAQCAtNDQ4LDYgKzQ0OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVy
bWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0
ZVBheW1lbnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAog
ICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKEpTVmFsdWVSZWYpOwogICAgIHZv
aWQgY2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDU2Mzc0ZjcwY2MwZjhlMzAz
M2YyMTI5ZGRlYTBmODI1Zjc3NTZlZDUuLmNiYjEwMGVjODFjMjAyNmI5NjNlMGQ1MTlhMjcwMjQ4
ODI2ZDY2NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC01MDAsNiArNTAwLDcgQEAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gVGVz
dENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oV0sKICAgICAgICAgeyAyLCB0
aGlzIH0sCiAgICAgICAgIDAsIC8vIHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQK
ICAgICAgICAgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaCwKKyAgICAgICAgcGF5bWVudFByb2Nlc3NE
aWRDcmFzaCwKICAgICAgICAgMCwgLy8gcGx1Z0luSW5mb3JtYXRpb25CZWNhbWVBdmFpbGFibGUK
ICAgICAgICAgMCwgLy8gY29weVdlYkNyeXB0b01hc3RlcktleQogICAgIH07CkBAIC0xMDczLDYg
KzEwNzQsMTMgQEAgY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFt
ZSgpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjb25zdCBjaGFy
KiBUZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKCkKK3sKKyAgICByZXR1cm4gImNv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiOworfQorI2VuZGlmCisKIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29u
dGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9y
bUNvbnRleHQoKSwgYWxsb3dzKTsKQEAgLTE1MDcsNiArMTUxNSwxMSBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25z
dCB2b2lkICpjbAogICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRl
eHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRy
b2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlk
Q3Jhc2goKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURvd25NZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25h
cnksIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtl
eUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIpKTsKQEAg
LTE4NDAsNiArMTg1MywxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0Rp
ZENyYXNoKCkKICAgICBleGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50
UHJvY2Vzc0RpZENyYXNoKCkKK3sKKyAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXRQYXltZW50
UHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0LmdldCgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBwYXltZW50UHJvY2Vzc05hbWUoKSwgc3RhdGlj
X2Nhc3Q8bG9uZz4ocGlkKSk7CisgICAgZXhpdCgxKTsKK30KKwogLy8gV0tQYWdlTmF2aWdhdGlv
bkNsaWVudAogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFn
ZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQpAQCAtMjYzOSw2ICsyNjU5LDEzIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0NvbnRleHRUZXJtaW5h
dGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlUGF5bWVu
dFByb2Nlc3MoKQoreworICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKHBsYXRm
b3JtQ29udGV4dCgpKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYp
CiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggYjM3NjRlNmNl
NGIwMjkzNTg0MWE4M2ZhNmMwYTA4OGY2OGVkZWU1NS4uYzFiNGQxMTZhOTY1MTNlYTZkNjE3YmRk
MWQ4OTE3ZWMxOTRjODI3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aApAQCAtMTgxLDcgKzE4MSwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHdl
YlByb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5ldHdvcmtQcm9jZXNzTmFt
ZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkYXRhYmFzZVByb2Nlc3NOYW1lKCk7Ci0KKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwYXltZW50
UHJvY2Vzc05hbWUoKTsKKyNlbmRpZgorICAgIAogICAgIFdvcmtRdWV1ZU1hbmFnZXImIHdvcmtR
dWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1hbmFnZXI7IH0KIAogICAgIHZvaWQg
c2V0UmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VzKGJvb2wgdmFsdWUpIHsgbV9yZWplY3RzUHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVG
b3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgPSB2YWx1ZTsgfQpAQCAtMjUyLDcgKzI1NSwxMCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9p
ZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOwotCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CisjZW5kaWYKKyAg
ICAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygpOwogCiAgICAgdm9pZCBj
bGVhclNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zKCk7CkBAIC0zNTUsNiArMzYxLDggQEAgcHJp
dmF0ZToKICAgICAvLyBXS0NvbnRleHRDbGllbnQKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJv
Y2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgbmV0d29y
a1Byb2Nlc3NEaWRDcmFzaCgpOworICAgIHN0YXRpYyB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jh
c2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKCk7CiAKICAgICAvLyBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50CiAgICAgc3RhdGljIHZv
aWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCmluZGV4IDFhOTFlYjI4NDM0ZDRlZDdkMWI5NjEyMjAwNjM4NTA1NDBhZDc4
MmIuLjcyZmJiOWU4Y2IzZjAwZGQ5YTY3ZTVhNzFhOWY5MmNhN2JmOTg2Y2QgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDUzLDYgKzE0NTMsMTQgQEAg
V0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9u
b3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpIHsKKyAg
ICAgICAgQVNTRVJUKCFtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS50ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CisjZW5kaWYKKyAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIikpIHsKICAgICAgICAg
QVNTRVJUKCFtZXNzYWdlQm9keSk7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357759</attachid>
            <date>2018-12-19 17:00:17 -0800</date>
            <delta_ts>2020-09-28 09:46:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191298-20181219170017.patch</filename>
            <type>text/plain</type>
            <size>137173</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5Mzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NjFkOTBiZjdlYThlODUyNGYyNmU1ZDI0MTc4ZGI3MTIzZmVkN2JlLi4zNDQzYmIwOTg5ZWExZmNh
NzgzODdmMDQ5MGI3OTRkMzE5MGQxNmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMi0xOSAgQ2FpbyBMaW1hICA8dGlj
YWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gV2Ugc2hvdWxkIGVuYWJsZSBD
U0UgaW50byBhcml0aG1ldGljIG9wZXJhdGlvbnMgdGhhdCBzcGVjdWxhdGUgQmlnSW50VXNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZGQ5NGFiMTYxMjIyMjZmZDUyZjU4YjBjOTA2MjVkNDVlNmZkMWEwZC4uOGE0
ZDYxNzZjYzIxYTBlMTYzMGUzNTJmYTAzNTU2MjQ3YjBkMmQxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE4LTExLTI3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgor
CisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3M6CisKIDIwMTgtMTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgRm9yY2Ugc3luY2hyb25vdXMgZGVjb2RlIGluIFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlU3luYygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjYTdi
MDYyMzVmOTI2Yjk4NWFkMTRiYjdlMzEzYjg1ODY1NjJjODlhLi44MjM0Y2E2NzA3Y2UwYmNmZGFl
NTIwMDZlNDFlZGY1ODZkNDAyZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMi0xNyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgSFRUUCBhbmQgSFRUUFMgcHJveGllcyBvbiBpT1Mg
YW5kIG1ha2UgaXQgYSBwcm9wZXJ0eSBvZiB0aGUgTlNVUkxTZXNzaW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUx
MTZmNDdmOTk2MWY0YWE2MDZkNTkxMGNhMzRlNDBkZjYwZGY2YmUuLjJkOGY1Mjc4ZWU5ZjIzNjQ2
MGEwY2UzYWU4M2I2YzNhMWJhNjcwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc5IEBACisyMDE4
LTExLTI3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1l
bnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUGF5
bWVudFNlcnZpY2UueGNjb25maWc6IEFkZGVkLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9Q
YXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdDogQWRkZWQuCisgICAgICAgICogUGF5bWVudFBy
b2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2VydmljZUVudHJ5UG9pbnQu
bW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVt
ZW50LmguCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0
ZTo6UGF5bWVudFNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKToKKyAgICAgICAgKFBheW1lbnRT
ZXJ2aWNlSW5pdGlhbGl6ZXIpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENs
aWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24pOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6flBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaC4KKyAgICAgICAgKiBQYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICog
UGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjp+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgICogUGF5
bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToK
KyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQ
cm9jZXNzSU9TLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxp
emVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQ
cm9jZXNzTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXpl
U2FuZGJveCk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5QYXltZW50cy5zYjogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29u
dGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJs
ZVBhdGguaC4KKyAgICAgICAgKiBTaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmg6CisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dFRlcm1p
bmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNz
SWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQ
b29sIF90ZXJtaW5hdGVQYXltZW50UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29s
IF9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJv
Y2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vz
c1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6dGVybWluYXRl
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
UHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vz
c1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
UHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OmRpZFJl
Y2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5n
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Q2xpZW50OjpwYXltZW50UHJvY2Vzc0Rp
ZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0U3VwcGxlbWVudDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TaG93Q2VydGlmaWNhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVt
b3J5UHJlc3N1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1
cmVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGF5bWVudFByb2Nlc3NDcmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNz
Rm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNo
aW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OmRlc3Ryb3lQYXltZW50UHJvY2Vzc1Nlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZSk6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvclRhcmdldENv
bnRyb2xsZXI6OmNvbm5lY3RJbnNwZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5z
cGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpzZW5kTWVzc2FnZVRvVGFy
Z2V0QmFja2VuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9z
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuaGFuY2Vk
QWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnN0
YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5j
cmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQVUxpbWl0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BVTW9uaXRvclN0YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFnZUFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldEFsbEdl
b2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2FuY2VsTWFya0FsbExheWVy
c1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZnJlZXpl
QWxsTGF5ZXJUcmVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVu
ZnJlZXplQWxsTGF5ZXJUcmVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnByb2Nlc3NEaWRSZXN1bWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpzZW5kUHJld2FybUluZm9ybWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cGFnZURpZEVudGVyV2luZG93KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6cGFnZVdpbGxMZWF2ZVdpbmRvdyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6Om5vblZpc2libGVQcm9jZXNzQ2xlYW51cFRpbWVyRmlyZWQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNs
ZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0TWVtb3J5Q2FjaGVEaXNhYmxlZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEVuYWJsZWRTZXJ2aWNlcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZUF1dG9tYXRpb25T
ZXNzaW9uUHJveHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZXN0
cm95QXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnByZWZldGNoRE5TKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6aGFzVmlzaWJsZVdlYlBhZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpsaWJXZWJSVENOZXR3b3JrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnNldFNjcmVlblByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjphZGRNb2NrTWVkaWFEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpjbGVhck1vY2tNZWRpYURldmljZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpyZW1vdmVNb2NrTWVkaWFEZXZpY2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldE1vY2tNZWRpYURldmljZXMpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDE4LTEyLTE5ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgY2xpZW50
cyB0byBzZXQgdGhlIG5hdmlnYXRvciBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CmluZGV4IGFjYjEzMzQ0ZjVmMTE2YjY5OGU3MDZkYWFjOGMzNGNmZjg5ODU0NjUuLjBmMWFmZmU0
MjVkZjg3N2YyZTBkYzhlYzhlZjc1MGE5Y2JjMDUxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8emhhcXVl
QGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUg
ZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMi0xOSAgTWVn
YW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IGNs
aWVudHMgdG8gc2V0IHRoZSBuYXZpZ2F0b3IgcGxhdGZvcm0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwppbmRleCAyZTlhMDRkMDFiZGQxNDIxYzRiNDU3MTE0YmY4OWMzYzc4NGVmOWMwLi5hZDZiNWYz
ODllMzc0YWZkN2MwNTA4NDExMDc4NzllZmE4MmE3YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0yOTIsNiArMjkyLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29h
dG91Y2ggPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9O
UyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BB
WU1FTlRfUFJPQ0VTUyA9IEVOQUJMRV9QQVlNRU5UX1BST0NFU1M7CiBFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4g
PSAkKEVOQUJMRV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcg
Yi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpp
bmRleCAyZTlhMDRkMDFiZGQxNDIxYzRiNDU3MTE0YmY4OWMzYzc4NGVmOWMwLi5hZDZiNWYzODll
Mzc0YWZkN2MwNTA4NDExMDc4NzllZmE4MmE3YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkyLDYgKzI5
Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxFX05B
VklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNfbWFj
b3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1MgPSBF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9Q
QVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERGS0lU
X1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAyZTlh
MDRkMDFiZGQxNDIxYzRiNDU3MTE0YmY4OWMzYzc4NGVmOWMwLi5hZDZiNWYzODllMzc0YWZkN2Mw
NTA4NDExMDc4NzllZmE4MmE3YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yOTIsNiArMjky
LDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElG
SUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNv
c3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUyA9IEVO
QUJMRV9QQVlNRU5UX1BST0NFU1M7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJMRV9QREZLSVRf
UExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MKaW5kZXggNTUzZTU2MjBkZmVlNmY5YmRhZjAwOWJhZTBjMmZjYWUy
ZjJiYWE1ZC4uN2JkYWU5M2ZkYmYyMzA1YmFhYWZiN2Q1ODQzNWQ0YzdmM2ExMzZlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9T
b3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC00Myw2ICs0Myw5
IEBACiAvKiBWaXNpYmxlIG5hbWUgb2YgU2VydmljZSBXb3JrZXIgcHJvY2Vzcy4gVGhlIGFyZ3Vt
ZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwogIiVAIFNlcnZpY2UgV29ya2VyICglQCki
ID0gIiVAIFNlcnZpY2UgV29ya2VyICglQCkiOwogCisvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIHBh
eW1lbnQgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwor
IiVAIFBheW1lbnRzIiA9ICIlQCBQYXltZW50cyI7CisKIC8qIFZpc2libGUgbmFtZSBvZiB0aGUg
d2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIl
QCBXZWIgQ29udGVudCIgPSAiJUAgV2ViIENvbnRlbnQiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRl
eCA2ZGIxZTkxMThhNjk5NGY5NDVmMzhmMWFmMmRmYWNhMjBiOGMzZDg0Li5jNjJmZmFlMWYzY2Zl
OGM0Yjk1MDFkOTUzNTI3MGFiNzc5ODA1M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE0LDYg
KzE0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJ
Un0vTmV0d29ya1Byb2Nlc3MvY2FjaGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nl
c3Mvd2F0Y2hvcyIKICAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMiCisg
ICAgIiR7V0VCS0lUX0RJUn0vUGF5bWVudFByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vUGxh
dGZvcm0iCiAgICAgIiR7V0VCS0lUX0RJUn0vUGxhdGZvcm0vSVBDIgogICAgICIke1dFQktJVF9E
SVJ9L1BsdWdpblByb2Nlc3MiCkBAIC0yNiw2ICsyNyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERC
IgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9GaWxlQVBJIgogICAgICIke1dFQktJVF9ESVJ9
L1NoYXJlZC9HYW1lcGFkIgorICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QYXltZW50IgogICAg
ICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJl
ZC9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05l
dHNjYXBlL3gxMSIKQEAgLTQ0LDYgKzQ2LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIgogICAgICIke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgorICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QbHVnaW5zIgogICAgICIk
e1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUiCiAgICAgIiR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL1VzZXJDb250ZW50IgpAQCAtMTIwLDYgKzEyMyw5IEBAIHNldChXZWJLaXRf
TUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1By
b3ZpZGVyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENT
b2NrZXQubWVzc2FnZXMuaW4KIAorICAgIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1l
c3NhZ2VzLmluCisgICAgUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmlu
CiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAt
MTUwLDYgKzE1Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFVJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJv
Y2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjIwLDYgKzIyOCwxMCBAQCBzZXQoTmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTCiAgICAg
V2ViS2l0CiApCiAKK3NldChQYXltZW50UHJvY2Vzc19MSUJSQVJJRVMKKyAgICBXZWJLaXQKKykK
Kwogc2V0KFBsdWdpblByb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCAyZTlhMDRkMDFiZGQxNDIxYzRiNDU3MTE0YmY4OWMzYzc4NGVmOWMwLi5hZDZiNWYzODllMzc0
YWZkN2MwNTA4NDExMDc4NzllZmE4MmE3YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5Miw2ICsyOTIsNyBA
QCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FU
T1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FU
SU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9
IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gRU5BQkxF
X1BBWU1FTlRfUFJPQ0VTUzsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVO
VF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVH
SU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGQzODg4YzhkZjBi
ZGFiZDNhMzI3MTRlNjEwY2IyZWZlNTc0MzhkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZwpAQCAtMCwwICsxLDMz
IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisv
LyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgIkJhc2VY
UENTZXJ2aWNlLnhjY29uZmlnIgorCitXS19QQVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVE
X05PID0gOworCitDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0gJChXS19Q
QVlNRU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEXyQoV0tfVVNFX1JFU1RSSUNURURfRU5USVRM
RU1FTlRTKSk7CitPVEhFUl9DT0RFX1NJR05fRkxBR1MgPSAkKFdLX0xJQlJBUllfVkFMSURBVElP
Tl9DT0RFX1NJR05fRkxBR1MpOworCitQUk9EVUNUX05BTUUgPSAkKFdLX1BBWU1FTlRfU0VSVklD
RV9QUk9EVUNUX05BTUUpOworUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9O
QU1FKTsKK0lORk9QTElTVF9GSUxFW3Nkaz1pcGhvbmUqXSA9IFBheW1lbnRQcm9jZXNzL0VudHJ5
UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5mby1pT1MucGxpc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMmZkZTU1NTBjZjRkNzBhZGMwOWRlZjM1N2E5ODc4
MjI3M2U1NTQ3Mi4uODYwNWU3YjZjY2FkZWRhYjljOGQ3N2VhN2RhMDc4MmQzZTUzNDgzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzAsNiArMzAsNyBAQCBWUEFUSCA9IFwKICAg
ICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlciBcCisgICAgJChXZWJLaXQyKS9QYXltZW50UHJvY2VzcyBcCiAgICAgJChXZWJL
aXQyKS9QbHVnaW5Qcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MvbWFjIFwK
ICAgICAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKQEAgLTczLDYgKzc0LDcgQEAgVlBBVEgg
PSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9V
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BheW1lbnRzIFwK
ICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2Ug
XApAQCAtMTE4LDYgKzEyMCw5IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIE5ldHdvcmtT
b2NrZXRTdHJlYW0gXAogICAgIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIgXAogICAgIFBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eSBcCisgICAgUGF5bWVudFByb2Nlc3MgXAorICAgIFBheW1lbnRQ
cm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBQ
bHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlz
dCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2Vydmlj
ZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjY5YTYzNTliYTRl
MGYzMWYyODJlZmVlYzYwMjQxNjc0NDQ1ODgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2
aWNlL0luZm8taU9TLnBsaXN0CkBAIC0wLDAgKzEsNDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFRE
IFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0x
LjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1bmRsZUdl
dEluZm9TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQg
MjAwMy0yMDE4IEFwcGxlIEluYy48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRS
ZWdpb248L2tleT4KKwk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhl
Y3V0YWJsZTwva2V5PgorCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+CisJPGtl
eT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURF
TlRJRklFUn08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9r
ZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxz
dHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBl
PC9rZXk+CisJPHN0cmluZz5YUEMhPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lv
blN0cmluZzwva2V5PgorCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4K
Kwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+CisJ
PGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9z
dHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVlLz4KKwk8
a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KKwk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmlu
Zz4KKwk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KKwk8c3RyaW5nPlBheW1lbnRTZXJ2aWNl
SW5pdGlhbGl6ZXI8L3N0cmluZz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgor
CTxrZXk+WFBDU2VydmljZTwva2V5PgorCTxkaWN0PgorCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+
CisJCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4KKwkJPGtleT5SdW5Mb29wVHlwZTwva2V5
PgorCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPgorCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNl
czwva2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2Vydmlj
ZS9QYXltZW50U2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9j
ZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2VFbnRyeVBvaW50Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM3OTI1ZWQzYzI4NWVkNjcxZTgwODViNjQ2YTk2NDdjNDU5ZTJlNTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQv
aW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiRW52aXJvbm1l
bnRVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisjaW1wb3J0ICJXS0Jh
c2UuaCIKKyNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBQYXltZW50U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgOiBwdWJsaWMg
WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgeworcHVibGljOgorICAgIFBheW1lbnRTZXJ2
aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25u
ZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAgICAgICA6IFhQQ1Nl
cnZpY2VJbml0aWFsaXplckRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiksIGluaXRpYWxpemVy
TWVzc2FnZSkKKyAgICB7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK2V4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgUGF5bWVu
dFNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmpl
Y3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2Fn
ZSk7CisKK3ZvaWQgUGF5bWVudFNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNv
bm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBw
cmlvcml0eUJvb3N0TWVzc2FnZSkKK3sKKyAgICAvLyBSZW1vdmUgdGhlIFNlY0l0ZW1TaGltIGZy
b20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkg
cHJvY2Vzc2VzIHNwYXduZWQgYnkKKyAgICAvLyB0aGUgdGhpcyBwcm9jZXNzIGRvbid0IHRyeSB0
byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgorICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpz
dHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2Vj
SXRlbVNoaW0uZHlsaWIiKTsKKyAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXI8UGF5bWVudFByb2Nl
c3MsIFBheW1lbnRTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChjb25u
ZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMyYTM0MTIxMDI5ODUyOTczYzY4NTE4YmEwY2I1NmFlNGNiZGYxY2YKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNw
cApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1l
bnRQcm9jZXNzJiBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UGF5bWVudFByb2Nlc3M+IHByb2Nlc3M7CisgICAgcmV0dXJuIHByb2Nlc3M7
Cit9CisKK1BheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2VzcygpCit7Cit9CisKK1BheW1lbnRQ
cm9jZXNzOjp+UGF5bWVudFByb2Nlc3MoKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzOjpp
bml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAg
Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKK30KKworYm9v
bCBQYXltZW50UHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKG1lc3Nh
Z2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAg
ICAgIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIENoaWxkUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29y
a2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4p
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjZkZTQ3ZTAwMTc0MDcx
NWRjNjc2N2NlNjEwZjQ3NjEyN2VhNWI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNp
bmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NU
aHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjsKKworY2xhc3MgUGF5
bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPFBheW1lbnRQ
cm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFByb2Nlc3MmIHNpbmdsZXRvbigp
OworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBQcm9jZXNz
VHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2VzcygpOworCisgICAgdm9pZCBkaWRS
ZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpOworCitwcml2YXRlOgorICAgIFBheW1lbnRQcm9jZXNzKCk7CisKKyAgICAvLyBDaGlsZFBy
b2Nlc3MKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopIG92
ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7CisKKyAgICAvLyBJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXNzYWdlIEhh
bmRsZXJzCisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29s
IGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmKTsK
KyAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUEFZTUVOVChQ
QVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGI5MTRmYzRhOGY0NDcx
OGNmYTEyNTc2ZDMzOGRhZTU5MmFhMGUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4
IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2VzcyB7CisgICAgCit9
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzMxYzQwODhhMmQ2YmNkOTQxYmM3NzdjOWVhMzk1MWE5MTk5ZTc4
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBQ
QUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jl
ZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKworUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZp
ZXIsICp0aGlzKSkKK3sKKyAgICAvLyBOT1RFOiB3ZSBtdXN0IHNldCB0aGlzIHRvIHRydWUgYmVj
YXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIG1heSByZS1lbnRlciB3aGVuIHNlbmRpbmcKKyAg
ICAvLyBhIHN5bmMgSVBDIGFuZCB0aGlzIGlzIGEgaHVnZSBzb3VyY2Ugb2Ygc2VjdXJpdHkgYnVn
cworICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpCisgICAgbV9j
b25uZWN0aW9uLT5vcGVuKCk7Cit9CisKK1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIG1fY29ubmVjdGlvbi0+aW52
YWxpZGF0ZSgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAg
UGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVw
bHlFbmNvZGVyKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworfQorCit2b2lkIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKKyAgICBVTlVTRURf
UEFSQU0oY29ubmVjdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2VSZWNlaXZlck5hbWUp
OworICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlTmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ5YTllYjRhMTM3NjQ0MTE2Y2FjZWQwMzgzMDdhYjM0MDgx
Y2ZmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisgICAgflBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nv
bm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24m
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgor
ICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7
IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVy
RGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gUEFZTUVOVChQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTdmMGQ4Njg5OTU4MzgzYWE4MWRjYzgy
ZDNjYjdkNWM0NDRkODg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50
UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDI2IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorbWVzc2FnZXMgLT4gUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24geworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjZGJkNTQ2M2EyOWEx
MWNkMjVhNWM3MDYxMGMwZjEwMjkwMzI2ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQpAQCAtMCwwICsxLDYx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQYXltZW50UHJv
Y2Vzcy5oIgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2lmIFBMQVRGT1JNKElP
UykKKworI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgorCisjZGVm
aW5lIEVOQUJMRV9NQU5VQUxfREFUQUJBU0VfU0FOREJPWElORyAwCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit2b2lkIFBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGls
ZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRi
b3hQYXJhbWV0ZXJzKQoreworI2lmIEVOQUJMRV9NQU5VQUxfREFUQUJBU0VfU0FOREJPWElORwor
ICAgIC8vIE5lZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMg
YSBkaWZmZXJlbnQgYnVuZGxlIElELgorICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05T
QnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3IildOwor
ICAgIHNhbmRib3hQYXJhbWV0ZXJzLnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJr
aXQyQnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMiIG9m
VHlwZTpAInNiIl0pOworICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1l
dGVycywgc2FuZGJveFBhcmFtZXRlcnMpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gUEFZTUVOVChQQVlN
RU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMu
c2IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTA2NzJjNjg2YjE2NjdhZDk3ZjVkZmQ3NWE0YjNhN2JkYzA2MDdiMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYgpAQCAtMCwwICsxLDMyIEBACis7IENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKzsgYXJlIG1ldDoKKzsgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
OyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCis7ICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCis7Cis7IFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKzsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCis7IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCis7IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKzsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKzsgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Cis7IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCis7IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKzsg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisodmVyc2lvbiAxKQorKGRlbnkgZGVm
YXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBm
aWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBvcnQgImNvbW1vbi5zYiIpCisKKyhkZW55IG1hY2gt
bG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikpCisKKyhkZW55IGxzb3BlbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5kZXggYTcyYmM5MjlkYmQ3Yzc0YzIyNjY5Yjgy
MzE3YTYxZmZhYmRmMzc2OS4uMzFlODFmMmI2ZWE5NTlkY2RjNGUyMTY4Njg3MjQ0OWY4YWI5NWE2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgcHVi
bGljOgogICAgIGVudW0gY2xhc3MgUHJvY2Vzc1R5cGUgOiB1aW50OF90IHsKICAgICAgICAgV2Vi
Q29udGVudCwKICAgICAgICAgTmV0d29yaywKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAg
ICAgIFBsdWdpbgogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgKaW5kZXggMmNlNzE2ZTRjNzJlNTgyYWJlMzBmNDg3OWQyYzZlYjllNDk5YTk3
Yi4uNjJiNTQ3NGVmYWE3MjRlYWI1MjhiNGY2NzAxNzkxZjBjZTlhYWRlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAgLTMyLDUgKzMyLDggQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsK
IFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFi
bGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitT
dHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBheW1lbnRQcm9jZXNzKCk7CisjZW5kaWYgLy8gIUVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDA1NWVjNWU1NzYxMDJmNzg2
NDk4NDdhZTNlMzRhZTNlM2MyYzI0YTMuLjI3ZGZiZjFkNWUzMWVjOWI1ODc3ZDk2ZWQ4YzNlOWE5
ODZmNjlkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNzMsNiArNzMsOSBAQCBOZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKIAogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCiAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRQ
cm9jZXNzLmNwcAorUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCisKIC8vIFRPRE86IFdlIHNob3VsZCB1bmlmeSB0aGVzZSBmaWxlcyBvbmNlIEdUSydzIFBs
dWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBAbm8tdW5pZnkK
IFBsYXRmb3JtL01vZHVsZS5jcHAgQG5vLXVuaWZ5CkBAIC0zNzQsNiArMzc3LDggQEAgVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCiAKK1VJUHJvY2Vzcy9QYXltZW50cy9Q
YXltZW50UHJvY2Vzc1Byb3h5LmNwcAorCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3Rh
cnRQcm92aWRlci5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtNDc1LDYgKzQ4MCw4
IEBAIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
IFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCitX
ZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiAv
LyBUT0RPOiBUaGVzZSBmaWxlcyBzaG91bGQgYmUgdW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblBy
b2Nlc3MyIGlzIHJlbW92ZWQuCiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBAbm8tdW5p
ZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVu
aWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZjFhMDU3YTQ1ZGIwZmEzNWNlMTBkY2Y0MTk2
OTNlZmU4MThhNmRhMy4uYTNmNWI5MWUxOTc3MjQ0ZDFlYzYzNDAzMjA1YmVhMDNhODQxYjBlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTg0LDYgKzE4NCw4IEBAIFNoYXJlZC9tYWMvV2Vi
R2VzdHVyZUV2ZW50LmNwcAogU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQogU2hh
cmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQogCitQYXltZW50UHJvY2Vzcy9pb3MvUGF5
bWVudFByb2Nlc3NJT1MubW0KKwogU2hhcmVkL1BsdWdpbnMvbWFjL1BsdWdpblNhbmRib3hQcm9m
aWxlLm1tCiAKIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1vZHVs
ZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5k
ZXggNWYxYmVlNDZiNmE2OTdjNDYzMDZlODlkYjdkY2IyZjNhZWJmNDA5MC4uZTM2ZmQ0YWE4MTA0
NmVlNmFiYmFkMmQ4OWZkMDRjOWQwZWNkOTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC02MTYsMTEgKzYxNiwyNyBAQCB2b2lkIFdLQ29udGV4
dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAg
IFdlYktpdDo6dG9JbXBsKGNvbnRleHQpLT50ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2Vz
KCk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0
UmVmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0b0ltcGwo
Y29udGV4dCktPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3
b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0
dXJuIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIo
KTsKIH0KIAorUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihX
S0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigp
OworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQorfQorCiB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZiwgV0tTdHJpbmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS0Fy
cmF5UmVmIG1pbWVUeXBlc1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaAppbmRleCBjMmRlM2FmYmMzZTg5Y2E2NDljNGZhMTM4YzU5NTExNWYzM2NiODlk
Li5jN2NiZDY4NmIwMjYyNzNhMDU0Y2QxOTg4YWE3OWEwOWQyMTU0MDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtNTAsNiArNTAsNyBAQCB0eXBlZGVm
IFdLRGF0YVJlZiAoKldLQ29udGV4dENvcHlXZWJDcnlwdG9NYXN0ZXJLZXlDYWxsYmFjaykoV0tD
b250ZXh0UmVmIGNvbnRleAogCiB0eXBlZGVmIHZvaWQgKCpXS0NvbnRleHRDaGlsZFByb2Nlc3NE
aWRDcmFzaENhbGxiYWNrKShXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7CiB0eXBlZGVmIFdLQ29udGV4dENoaWxkUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2sgV0tD
b250ZXh0TmV0d29ya1Byb2Nlc3NEaWRDcmFzaENhbGxiYWNrOwordHlwZWRlZiBXS0NvbnRleHRD
aGlsZFByb2Nlc3NEaWRDcmFzaENhbGxiYWNrIFdLQ29udGV4dFBheW1lbnRQcm9jZXNzRGlkQ3Jh
c2hDYWxsYmFjazsKIAogdHlwZWRlZiBzdHJ1Y3QgV0tDb250ZXh0Q2xpZW50QmFzZSB7CiAgICAg
aW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IGY5YzdkMzI5NmU1YzBjZDdmMzM2N2RlMzlhMDMxZDI4
M2ZiZTY2NjYuLjhlZDRiNGY3NjQxNTFlMTgzNmI1OThkZGJhMGE2YzYyYzYzN2RkNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAg
LTkzLDYgKzkzLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9j
ZXNzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0
VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmKTsKIAorV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250ZXh0UmVmKTsKKwog
V0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJT
b2NrZXRUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29u
dGV4dFJlZiwgYm9vbCk7CiAKQEAgLTExMiw2ICsxMTQsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiBXS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQs
IFdLVVJMUmVmIHNlcnZlclVSTCk7CiAKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRH
ZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQ
T1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihXS0Nv
bnRleHRSZWYgY29udGV4dCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEFkZFN1cHBvcnRl
ZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgZG9tYWluLCBXS1N0cmlu
Z1JlZiBuYW1lLCBXS0FycmF5UmVmIG1pbWVUeXBlcywgV0tBcnJheVJlZiBleHRlbnNpb25zKTsK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyU3VwcG9ydGVkUGx1Z2lucyhXS0NvbnRleHRS
ZWYgY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tCmluZGV4IGExODM4MWFiMzVhOTdkYmEyZmMzZmFiNjczMjBiNDMyMjc2
NGQ3ODUuLjllNzBjNjA0YmI5OWJmZDQ4ZWE0MDBlMmExNTgxOTg2YjFlMGM0NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBA
IC00MjYsNiArNDI2LDEzIEBAIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwogICAgIF9w
cm9jZXNzUG9vbC0+Y2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiB9CiAKKy0gKHZvaWQpX3Rlcm1p
bmF0ZVBheW1lbnRQcm9jZXNzCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBf
cHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdv
cmtQcm9jZXNzCiB7CiAgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzcygp
OwpAQCAtNDQ2LDYgKzQ1MywxNSBAQCAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CiB9
CiAKKy0gKHBpZF90KV9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIKK3sKKyNpZiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnBheW1lbnRQcm9jZXNzSWRl
bnRpZmllcigpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorfQorCiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzCiB7CiAg
ICAgX3Byb2Nlc3NQb29sLT5zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oCmluZGV4IDNkZTJjMDM2MmJmMzVlNjdiMDQzNGMxZWY4YmM4M2Q2MDZhMTRjMzYuLjYyZDgz
NTdhZjZjNmI4NmQwYzhmNGQ3NTE1OWY5NzVlMTFkNmUxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBA
IC04NSwxMiArODUsMTQgQEAKIC0gKF9XS0Rvd25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURh
dGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilwYXRoIG9yaWdpbmF0aW5n
V2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2Fs
bGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgorLSAo
dm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfZGlzYWJsZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCksIGlvcygxMi4wKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJv
Y2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkp
OworLSAocGlkX3QpX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBvbmx5LgogLSAo
c2l6ZV90KV93ZWJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
UHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaAppbmRleCBlMDdkYmEyNzJhMmUxNWJlODI5ZGUyMzRjNWRkNTBkNTczOGUx
YTBjLi4xNGEzOWZhOGNlNzVhNTljMzFhMTg2ODNkY2FkMDY1MTgwZGYzZDg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAt
NTgsNiArNTgsOSBAQCBwdWJsaWM6CiAgICAgICAgIFBsdWdpbjY0LAogI2VuZGlmCiAgICAgICAg
IE5ldHdvcmssCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudCwK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIH07CiAKICAgICBzdHJ1Y3Qg
TGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCA2Y2JhYzI1ZDc4NGMwZWVl
YTU4YTY4NGFiNDY4NDQ1YWUyZTM5MjYyLi44NDY3NjQ1NzllNjE5NmY3MGZkMDQ3ZjQzZGFmYjlj
NmQ5NGQxNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9t
YWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTYyLDYgKzYyLDEwIEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmIGxhdW5jaE9wdGlvCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBl
OjpQbHVnaW42NDoKICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NCI7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIGNhc2UgUHJvY2Vzc0xh
dW5jaGVyOjpQcm9jZXNzVHlwZTo6UGF5bWVudDoKKyAgICAgICAgcmV0dXJuICJjb20uYXBwbGUu
V2ViS2l0LlBheW1lbnRzIjsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9Q
YXltZW50UHJvY2Vzc1Byb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTdiNTQ1NTJmNjlmNTkxNmFjZjRh
ZjM3NmE1NWEzNDA3MDZlOGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHAKQEAgLTAsMCArMSwxMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nl
c3NQcm94eS5oIgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworUGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQ
cm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCisgICAgOiBDaGlsZFByb2Nlc3NQcm94
eShwcm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAsIG1f
cHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVx
dWVzdHMoMCkKK3sKKyAgICBjb25uZWN0KCk7Cit9CisKK1BheW1lbnRQcm9jZXNzUHJveHk6On5Q
YXltZW50UHJvY2Vzc1Byb3h5KCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojp0
ZXJtaW5hdGVGb3JUZXN0aW5nKCkKK3sKKyAgICB0ZXJtaW5hdGUoKTsKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1By
b3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7CisgICAgbV9wZW5k
aW5nQ29ubmVjdGlvblJlcGxpZXMuYXBwZW5kKFdURk1vdmUocmVwbHkpKTsKKyAgICAKKyAgICBp
ZiAoc3RhdGUoKSA9PSBTdGF0ZTo6TGF1bmNoaW5nKSB7CisgICAgICAgIG1fbnVtUGVuZGluZ0Nv
bm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGJv
b2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOworICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBzZWN1cml0eU9yaWdpbjsKKyAgICAKKyAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vz
czo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29ya2VyUHJv
Y2Vzcywgc2VjdXJpdHlPcmlnaW4pLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2Fn
ZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Cit9CisgICAgCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9j
ZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXltZW50OworICAgIENoaWxkUHJvY2Vzc1Byb3h5
OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09
ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBk
aWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFByb2Nlc3NQ
b29sID0gbWFrZVJlZihtX3Byb2Nlc3NQb29sKTsKKworICAgIC8vIFRoZSBwYXltZW50IHByb2Nl
c3MgbXVzdCBoYXZlIGNyYXNoZWQgb3IgZXhpdGVkLCBzbyBzZW5kIGFueSBwZW5kaW5nIHN5bmMg
cmVwbGllcyB3ZSBtaWdodCBoYXZlLgorICAgIHdoaWxlICghbV9wZW5kaW5nQ29ubmVjdGlvblJl
cGxpZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0
aW9uUmVwbGllcy50YWtlRmlyc3QoKTsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9
CisgICAgLy8gVGVsbCBQcm9jZXNzUG9vbCB0byBmb3JnZXQgYWJvdXQgdGhpcyBwYXltZW50IHBy
b2Nlc3MuIFRoaXMgbWF5IGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgbV9wcm9jZXNzUG9v
bC5wYXltZW50UHJvY2Vzc0NyYXNoZWQoKnRoaXMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
UHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSkKK3sKK30KKwordm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikKK3sKK30KKyAgICAKK3ZvaWQg
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlz
aExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6
OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOworCisg
ICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkgeworICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFudXAgaGVyZS4KKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251
bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6
UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGZhbHNl
LCB7IH0pLCAwKTsKKyAgICAKKyAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAw
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMzFjN2M2N2I0ZjBlOTQyNmIxMWQxMGYx
ZTU1NDU5NTc4NGYwNWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBT
ZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2lu
Oworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYlByb2Nlc3NQb29sOworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworZW51bSBjbGFz
cyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2NsYXNzIFBheW1lbnRQ
cm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkgeworcHVibGljOgor
ICAgIGV4cGxpY2l0IFBheW1lbnRQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKKyAgICB+
UGF5bWVudFByb2Nlc3NQcm94eSgpOworICAgIAorICAgIHZvaWQgdGVybWluYXRlRm9yVGVzdGlu
ZygpOworICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94
eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6RGVsYXllZFJlcGx5JiYpOworCitwcml2YXRlOgorICAgIC8vIENoaWxkUHJvY2Vzc1Byb3h5
CisgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYpIG92ZXJyaWRlOworICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rp
b24mKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VOYW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNz
UHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworCisgICAgLy8g
TWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisKKyAgICAvLyBQcm9jZXNzTGF1bmNo
ZXI6OkNsaWVudAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlcios
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CisKKyAgICBXZWJQcm9jZXNz
UG9vbCYgbV9wcm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nvbm5lY3Rp
b25SZXF1ZXN0czsKKyAgICBEZXF1ZTxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gbV9wZW5kaW5nQ29ubmVjdGlvblJl
cGxpZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVu
dHMvUGF5bWVudFByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWIwZDUxNzcyYWFlZWM3MGViYzYwZjM1NDZiOGUxMjc2ZjgwNjQ2YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK21lc3NhZ2VzIC0+IFBh
eW1lbnRQcm9jZXNzUHJveHkgeworICAgIERpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKKworfQorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGZhNDU3NjJlY2ViYTAxM2E2YWNhNGY5NjRkYTg1NjYz
OTc0MWQ1NzUuLmJlYzc5YjU0Y2JmNmM2ZWM1ZWZlZmY0YTk3NTcwZjY5OWI1NTNmMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC00Niw0ICs0
NiwxMSBAQCB2b2lkIFdlYkNvbnRleHRDbGllbnQ6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goV2Vi
UHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogICAgIG1fY2xpZW50Lm5ldHdvcmtQcm9jZXNzRGlk
Q3Jhc2godG9BUEkocHJvY2Vzc1Bvb2wpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQog
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViQ29udGV4dENsaWVudDo6cGF5
bWVudFByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCit7CisgICAg
Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKaW5kZXgg
ODBjMzExMjJjMDc3NmQ0ZWU4ZDc3OGQ1NjY4MjEwMTUyMjE2MzdkNi4uNTliM2E0MDc5MTA4ZjIz
OGYxZDZmOGFiZjFhYjllZGNjODQ1MzkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuaApAQCAtNDUsNiArNDUsMTAgQEAgY2xhc3MgV2ViQ29udGV4dENsaWVu
dCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbnRleHRDbGllbnRCYXNlPiB7CiBwdWJsaWM6CiAg
ICAgdm9pZCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkKFdlYlByb2Nlc3NQb29s
Kik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nlc3NQb29sKik7Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNzRGlkQ3Jh
c2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaAppbmRleCBlZDU1YjQwM2RiMjlmOTQwMDQzOGJh
MzJhNjBjNzU4Mjc0OTM0ZmE2Li4yYzZhY2JiMDVjYjAyNmFjZGE3NWMwNjdkMWYwZDlkNDU5YTEy
N2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50
LmgKQEAgLTI5LDYgKzI5LDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29y
a1Byb2Nlc3NQcm94eTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgUGF5bWVu
dFByb2Nlc3NQcm94eTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiBjbGFz
cyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIApAQCAtNTQsNiArNTgs
MTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoTmV0d29ya1By
b2Nlc3NQcm94eSopCiAgICAgewogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoUGF5bWVudFByb2Nlc3NQcm94
eSopCisgICAgeworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAg
ICAgV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNz
UG9vbDsgfQogICAgIHZvaWQgY2xlYXJQcm9jZXNzUG9vbCgpIHsgbV9wcm9jZXNzUG9vbCA9IG51
bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNw
cAppbmRleCAzMDhjNTA0YzEyOGNiMDVhMTZhMTJhNDg5N2I0N2M1ODZjNDg0NTNlLi5iY2UxZjg5
NmIwZmI2MzgxMmQ5OWY1NzlmNjUxNmYzZmE5YzY3YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC02NDUsNyArNjQ1LDcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgQ2VydGlmaWNhdGVJbmZvJikKK3ZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA4MjgzMGE1M2Y2MTQ5NGIxMjAy
MGQ0ODE1MjA3OGE1YzkzZTJhNWNhLi42NTEwMjA2MjNhN2VhNjUxMWIwNzMzNjYxMzBjNjU2OWE3
NGRlZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBA
IC01NCw2ICs1NCw5IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5o
IgorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oIgorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaW5jbHVkZSAi
VGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNpbmNsdWRlICJVSUdhbWVw
YWRQcm92aWRlci5oIgpAQCAtNDQyLDYgKzQ0NSw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNl
bmRNZW1vcnlQcmVzc3VyZUV2ZW50KGJvb2wgaXNDcml0aWNhbCkKIHsKICAgICBzZW5kVG9BbGxQ
cm9jZXNzZXMoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJl
RXZlbnQoaXNDcml0aWNhbCkpOwogICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2Vz
OjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwp
KTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHNlbmRUb1BheW1lbnRQcm9jZXNz
KE1lc3NhZ2VzOjpDaGlsZFByb2Nlc3M6OkRpZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGlz
Q3JpdGljYWwpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0
b24oKS5zZW5kTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRpY2FsKTsKICNlbmRpZgpAQCAtNjE3
LDYgKzYyMywzNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveAogICAgIG1fbmV0d29ya1Byb2Nl
c3MtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1vdmUo
cmVwbHkpKTsKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nl
c3NQb29sOjplbnN1cmVQYXltZW50UHJvY2VzcygpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9j
ZXNzKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzID0gc3RkOjptYWtlX3VuaXF1ZTxQYXltZW50
UHJvY2Vzc1Byb3h5PigqdGhpcyk7Cit9CisgICAgCit2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHks
IFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7
CisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5nZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7
Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50
UHJvY2Vzc1Byb3h5JiBwYXltZW50UHJvY2Vzc1Byb3h5KQoreworICAgIEFTU0VSVChtX3BheW1l
bnRQcm9jZXNzKTsKKyAgICBBU1NFUlQocGF5bWVudFByb2Nlc3NQcm94eSA9PSBtX3BheW1lbnRQ
cm9jZXNzLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgc3VwcGxlbWVudCA6IG1fc3VwcGxlbWVu
dHMudmFsdWVzKCkpCisgICAgICAgIHN1cHBsZW1lbnQtPnByb2Nlc3NEaWRDbG9zZShwYXltZW50
UHJvY2Vzc1Byb3h5KTsKKworICAgIG1fY2xpZW50LnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2godGhp
cyk7CisKKyAgICBpZiAobV9hdXRvbWF0aW9uU2Vzc2lvbikKKyAgICAgICAgbV9hdXRvbWF0aW9u
U2Vzc2lvbi0+dGVybWluYXRlKCk7CisKKyAgICBtX3BheW1lbnRQcm9jZXNzID0gbnVsbHB0cjsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENv
bm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmIHByb3h5LCBTZWN1
cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Np
b25JRD4gc2Vzc2lvbklEKQogewpAQCAtNjkzLDYgKzcyOSw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBw
cml2YXRlCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6
QWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25QYXJhbWV0ZXJzKCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBuZXR3b3Jr
UHJvY2VzcygpLT5yZW1vdmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIHNlbmRUb1Bh
eW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSkpOwogICAgIH0KIH0KQEAgLTEzNTQsNiArMTM5MywxNSBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjphY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJRCBw
aWQsIENvbQogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogfQorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCitQcm9jZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9j
ZXNzSWRlbnRpZmllcigpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBtX3BheW1lbnRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNl
Q29tcGxleFRleHQpCiB7CkBAIC0xNjI1LDYgKzE2NzMsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAg
ICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpD
bGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDApOwogfQorICAgIAorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzc0Zv
clRlc3RpbmcoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+dGVybWluYXRlRm9yVGVzdGluZygpOworICAgIG1f
cGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDA2MzQzMjQ5
YmFhNzI1YWZiNmNiNDQ0YzU1MjMyNTNkMTdlMDgwYmMuLjVmNzAwMzNkYWRjZmYwYWJiYzg0ZTcz
M2Q1NjQzMjUxZTRiNTk4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGlj
c1JlcXVlc3QuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1l
bnRQcm9jZXNzUHJveHkuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKQEAgLTE3Myw2ICsxNzYs
MTEgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHZvaWQg
c2VuZFN5bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlLCBVJiYgcmVwbHkpOwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5j
aGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2VzcyhU
JiYgbWVzc2FnZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50
UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisKICAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hp
bmcoV2ViUHJvY2Vzc1Byb3h5Kik7CiAKICAgICAvLyBEaXNjb25uZWN0IHRoZSBwcm9jZXNzIGZy
b20gdGhlIGNvbnRleHQuCkBAIC0yMTcsNiArMjI1LDkgQEAgcHVibGljOgogICAgIFByb2Nlc3NJ
RCBuZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKICAgICB2b2lkIGFjdGl2ZVBhZ2VzT3JpZ2lu
c0luV2ViUHJvY2Vzc0ZvclRlc3RpbmcoUHJvY2Vzc0lELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxTdHJpbmc+JiYpPiYmKTsKICAgICBib29sIG5ldHdvcmtQcm9jZXNzSGFzRW50aXRs
ZW1lbnRGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisgICAgUHJvY2Vzc0lEIHBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigpOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICAgICBXZWJQYWdlR3JvdXAmIGRlZmF1bHRQYWdl
R3JvdXAoKSB7IHJldHVybiBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCk7IH0KIApAQCAtMjc2LDYg
KzI4Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KGJvb2wpOwogCiAgICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7Cisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzRm9yVGVzdGluZygpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAg
dm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2Vydmlj
ZVdvcmtlclByb2Nlc3NlcygpOwogICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNz
VGVybWluYXRpb25EZWxheSgpOwpAQCAtMzQ0LDYgKzM1OCwxMiBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRS
ZXBseSYmKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBlbnN1cmVQ
YXltZW50UHJvY2VzcygpOworICAgIFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNz
KCkgeyByZXR1cm4gbV9wYXltZW50UHJvY2Vzcy5nZXQoKTsgfQorICAgIHZvaWQgZ2V0UGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRp
YWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NDcmFz
aGVkKFBheW1lbnRQcm9jZXNzUHJveHkqKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIGVzdGFibGlzaFdvcmtl
ckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5Jiwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9u
SUQ+KTsKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5RnJvbVBhZ2VJRCh1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwpAQCAtNjQ0LDYgKzY2NCw5
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0
aW9uIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9kaWROZXR3b3JrUHJvY2Vzc0NyYXNoIHsgZmFsc2Ug
fTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJv
Y2VzczsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
YXltZW50UHJvY2Vzc1Byb3h5PiBtX3BheW1lbnRQcm9jZXNzOworI2VuZGlmIC8vIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGljdGlvbmFy
eUNhbGxiYWNrPj4gbV9kaWN0aW9uYXJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxTdGF0aXN0aWNzUmVxdWVzdD4+IG1fc3RhdGlzdGljc1JlcXVlc3RzOwpAQCAtNzQ1
LDYgKzc2OCwyMiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vz
c1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwogfQogCisjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29s
OjpzZW5kVG9QYXltZW50UHJvY2VzcyhUJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAobV9wYXltZW50
UHJvY2VzcyAmJiBtX3BheW1lbnRQcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICBt
X3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50
UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCit7CisgICAgZW5zdXJl
UGF5bWVudFByb2Nlc3MoKTsKKyAgICBtX3BheW1lbnRQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2Fy
ZDxUPihtZXNzYWdlKSwgMCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb0FsbFBy
b2Nlc3Nlcyhjb25zdCBUJiBtZXNzYWdlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZGQ1NjdmOGI3M2NjMDY0ZjM2Y2FjNjJkNmQ0N2FkZTNj
OTM2ODRjMS4uNWNmMWM1YTQ4NmNjYjc1NTA5ZjVmZjU1MDY3ZDcwNzJhYmY5NWY3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02MzEsNiArNjMx
LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0CiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CisjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3sKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKnRoaXMsIGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUocmVwbHkpKTsKK30KKyNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQog
Ym9vbCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMjM2MWFlNzczYTc3
ZWZlY2JmYTU2NDlhZWU3NjJlNTk2ZTdiZGE5Ny4uMjI5ZWVhMzc3ZmI1YzdhMWU3YjIwNjU5Yzg4
MWM1OGJjN2Y0ZmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKQEAgLTI5MCw2ICsyOTAsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBnZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vz
c2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAgICAgYm9vbCBwbGF0Zm9ybUlzQmVpbmdEZWJ1Z2dlZCgpIGNv
bnN0OwogICAgIGJvb2wgc2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggNmE5OGY0ZTk2MDQ3ZGFiZjE2NGE3NjEwYTg3ZjJhOWY2ODYwYjQ4YS4uOGY1
ZTFkNjY2MGIxNTBkNzU3MzBhNjNlMWYwOTNkNDNmNmEzNmQyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsNiAr
MzcsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAg
IEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikg
LT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNo
cm9ub3VzSW5pdGlhbGl6YXRpb24pIERlbGF5ZWQKICNlbmRpZgogICAgIEdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVs
YXllZAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgR2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQpIC0+IChJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAgICAgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKICAgICBEaWRDYW5jZWxQcm9j
ZXNzU3VzcGVuc2lvbigpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMTQ5NjBkMzM4MGZmOTNlNTY0
M2YyYmE5M2ZhYTNmNjBjYzJhYTM0YS4uYjk3YjlmOTIwZGU5YjVhNTBlNzE0ZDRlNWI5NGVkN2U0
ODBhZTBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU4LDYgKzU4LDEwIEBACiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjZW5kaWYgLy8gRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEhBVkUoU0VDX0tFWV9QUk9YWSkKICNpbmNsdWRl
ICJTZWNLZXlQcm94eVN0b3JlLmgiCiAjZW5kaWYKQEAgLTEzMiw2ICsxMzYsOSBAQCBXZWJzaXRl
RGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiAgICAgICAgIEFTU0VSVChub25EZWZhdWx0
RGF0YVN0b3JlcygpLmdldChtX3Nlc3Npb25JRCkgPT0gdGhpcyk7CiAgICAgICAgIG5vbkRlZmF1
bHREYXRhU3RvcmVzKCkucmVtb3ZlKG1fc2Vzc2lvbklEKTsKICAgICAgICAgZm9yIChhdXRvJiBw
cm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgeworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgICAgICBkZXN0cm95UGF5bWVudFByb2Nlc3NT
ZXNzaW9uKHByb2Nlc3NQb29sKTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdv
cmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAgICAgICAg
ICAgbmV0d29ya1Byb2Nlc3MtPnJlbW92ZVNlc3Npb24obV9zZXNzaW9uSUQpOwogICAgICAgICB9
CkBAIC0xMzE5LDYgKzEzMjYsMTMgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVBbGxT
dG9yYWdlQWNjZXNzSGFuZGxlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYKICAgICB9CiB9
CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbihX
ZWJQcm9jZXNzUG9vbCogcG9vbCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHBvb2wtPnNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVz
dHJveVNlc3Npb24obV9zZXNzaW9uSUQpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorfQorICAgIAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVQcmV2YWxlbnREb21h
aW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKQogewogICAgIGZvciAoYXV0byYgcHJv
Y2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA0MGY1NzVhYmE0YzI5
MGY3OGM1MzFiZmI1YTlkMDQ3YTk0ZDc5ZDdmLi43YTA5MDcxY2M2MWMyZDllZmExMTQ4ODNlMmNl
N2VhZmFmZTVhYmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNDgsNiArMTQ4LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vzc1Bvb2wmKSBjb25zdDsK
IAogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnMoKTsKKyAgICB2b2lk
IGRlc3Ryb3lQYXltZW50UHJvY2Vzc1Nlc3Npb24oV2ViUHJvY2Vzc1Bvb2wqKTsKIAogICAgIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7CiAgICAgdm9pZCBh
ZGRQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmZiOGY5NTAzNmI4NTJi
Nzg1NGM0OTRmNDQyMGJhOTU4YTEyODJkNS4uNzVhYzZlNTU0MDU2NTcwOTE5NjMxYTA1NTA0ZGNl
ZGQ4NjU3YjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC04NDksNiArODQ5LDcgQEAKIAkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4
IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2ll
QWNjZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jy
b3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jy
b3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyog
V0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CisJCTM5MTM2MDI1MjE5M0MxNDMwMDU2
NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyog
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAw
Mjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5
NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0
MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29s
b3JDaG9vc2VyLmggKi87IH07CkBAIC05MDgsNiArOTA5LDEwIEBACiAJCTUxMEY1OTExMURERTI5
NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTc5MURERDc4NTQwMDMyQ0FEMyAvKiBf
V0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCAq
LzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwQUUwQjEzM0Mx
NkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTE4RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QTkxRjI5NTk3NzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CisJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTExOEU5QUIx
RjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTIxRjI5NTk2MzAw
M0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk1MTFGN0Q0
MTFFQjFCQ0Y1MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQwMUVCMUJDRUUw
MEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwogCQk1MTFGOEE3
QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQg
LyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CiAJCTUxMUY4QTgxMTM4QjQ4NUQwMEE5NUY0
NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1M
aWJyYXJ5Lm1tICovOyB9OwpAQCAtOTU5LDYgKzk2NCw3IEBACiAJCTUxN0NGMEUzMTYzQTQ4NkMw
MEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNB
NDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0
b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0Yw
RTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2
M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsg
fTsKKwkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJEMTgw
REE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi87IH07CiAJCTUxODcxQjVD
MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdl
YkNvbnRleHRNZW51LmggKi87IH07CiAJCTUxOEFDQUVBMTJBRUU2QkIwMEIwNEI4MyAvKiBXS1By
b3RlY3Rpb25TcGFjZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VU
eXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUxOEFDRjExMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QUNGMTAxMkIwMTVGODAw
QjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk4Niw2ICs5OTIsOCBAQAogCQk1MUREOUYyODE2MzY3
REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFE
RDlGMjYxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8qIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAvKiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUxRTM1MUNC
MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJV
dGlsaXRpZXMuaCAqLzsgfTsKKwkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQ
cm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRTM1MUZBMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi87IH07CisJ
CTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUz
NTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
ICovOyB9OwogCQk1MUU2QzE2NDFGMjkzNUREMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi87IH07CiAJCTUxRUZDMUNGMTUyNEU2MjUwMEM5
QTkzOCAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdL
QnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291
cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1l
c3NhZ2VzLmggKi87IH07CkBAIC0xNTY4LDYgKzE1NzYsNyBAQAogCQlEM0I5NDg0NzExRkY0QjY1
MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51
LmggKi87IH07CiAJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0
ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRTEw
NUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8q
IEVkaXRpbmdSYW5nZS5oICovOyB9OworCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogUGF5
bWVudFByb2Nlc3NJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0g
Ki87IH07CiAJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5
NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9Owog
CQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
NEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2ll
cy5oICovOyB9OwogCQlFMTUxM0M2NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEz
QzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oICovOyB9OwpAQCAtMjk4
NCw2ICsyOTkzLDExIEBACiAJCTM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5n
Q29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTM3RkMxOTQ4MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tO
U1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRz
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5MkU5NDJCMjE5QTM5OUEwMDUwRjk4MiAv
KiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
OTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOUJEMEFGNTIxQUUyMDJFMDBFMzI0M0Yg
LyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJJbmZvLWlPUy5wbGlzdCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5QkQwQUY2MjFBRTIwMkUwMEUzMjQzRiAvKiBQYXlt
ZW50U2VydmljZUVudHJ5UG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50U2Vy
dmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGNDE4RUY1
MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAv
KiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxMTEsNiArMzEyNSw3IEBACiAJCTRGNjAxNDMwMTU1
QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGli
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0u
ZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJC
MTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyog
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMDRGNUExMUYxOUQ3Q0YwMDRDRjgyMSAvKiBDb29raWVTdG9yYWdlVXRpbHNDRi5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VV
dGlsc0NGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1MjM3MTFDNzNEMjJC
MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNzIxQzczRDM3QjAwNzk5M0NCIC8qIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwpAQCAtMzEzNCwxMSArMzE0OSwxNSBAQAogCQk1MTEwQUUwQTEzM0MxNkNCMDA3Mjcx
N0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxMThFOUEyMUYy
OTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTQx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUx
MThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTYx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9y
YWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExOEU5
QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdEM0Yx
RUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdENDAxRUIxQkNFRTAwRTQ3
QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxp
YnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2VjSXRlbVNoaW1MaWJy
YXJ5Lmg7IHBhdGggPSAuLi8uLi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNTYsNiArMzE3NSw3IEBACiAJCTUxMjkz
NUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NjE4MEUwNUQyMDAzOUExNDkgLyogUGF5bWVudFBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RTEyQTg4Mzg4MDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTJGNTg5MDEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zMjI2LDYgKzMyNDYsOCBAQAogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9DYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1l
bnRQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdERDVC
RDE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFNoaW0ueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjU5MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250
ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250
ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcxQjVBMTI3Q0I4
OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzI0NSw2ICszMjY3LDcgQEAKIAkJNTFBNTU2MDAxMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4
dE1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250
ZXh0TWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3
RTFEMUM0Q0I5MDA0QkE5QUYgLyogV2ViSURCUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklEQlJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxQTU4NzdGMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSURCUmVzdWx0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2Vy
dmljZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQYXltZW50U2VydmljZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNzI4REMxQjFCQUQyRDAwMTAyRUVFIC8qIFdL
QnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUE3RjJGMjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMwNCw2ICszMzI3LDExIEBACiAJCTUxREQ5RjI3MTYz
NjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQk1MUUzNTFDODE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlV0aWxpdGllcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM5MTgwRjJDQ0MwMEU1M0JFOSAv
KiBJREJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZBMTgwRjVEMEIw
MEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50
UHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZCMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJv
Y2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFGQzE4MEY1RDBCMDBF
NTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3Mu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZEMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzOTkwNTFENkY1
NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTVGMUYyOTM1NTEwMEZEMzQzNyAvKiBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHBh
dGggPSBpb3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUU2QzE2MTFGMjkzNUNEMDBGRDM0MzcgLyog
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDQ1Miw2ICs0NDgwLDcgQEAKIAkJRTFFNTUyQzMxNkFFMDY1RTAw
NEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBQYXltZW50UHJvY2Vzc0lP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5QjFBQzFBREI2
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTQxM0Y1OUUxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUVudHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8q
IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ2MjYsNiArNDY1NSw3IEBACiAJCQkJMUExRDIxMTYxOTFEOTk1QzAwMDE2MTlGIC8qIHBvc3Rw
cm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoICovLAogCQkJCUJDMkU2RTc0MTE0MTk2RjAwMEE2
M0IxRSAvKiBQbGF0Zm9ybSAqLywKIAkJCQkxQUFEREY0QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hh
cmVkICovLAorCQkJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBQYXltZW50UHJvY2VzcyAq
LywKIAkJCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEgLyogVUlQcm9jZXNzICovLAogCQkJCUJD
MDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovLAogCQkJCTUxMENDN0RBMTYx
MzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKQEAgLTQ4MzEsNiArNDg2MSw3IEBA
CiAJCQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3guZW50
aXRsZW1lbnRzICovLAogCQkJCTVDN0FDRkQxMjE4REQ4QkQwMDRDQkI1OSAvKiBOZXR3b3JrLU9T
WC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJQkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdv
cmtTZXJ2aWNlLnhjY29uZmlnICovLAorCQkJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQ
YXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlBMUVERDJEQjE4ODRCOTY0MDBCQkZFOTgg
LyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcgKi8sCiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAw
QTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNjb25maWcgKi8sCiAJCQkJQkM4MjgzRjQxNkI0
RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQueGNjb25maWcgKi8sCkBAIC02Mjg0LDYg
KzYzMTUsNDggQEAKIAkJCXBhdGggPSBSZXNvdXJjZXMvbWFjOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJMzkyRTk0MkEyMTlBMkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOTJFOTQyRDIx
OUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAor
CQkJCTM5MkU5NDJCMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbi5oICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXltZW50czsKKwkJCXNvdXJjZVRyZWUgPSAi
PHVua25vd24+IjsKKwkJfTsKKwkJMzlCRDBBRjEyMUFFMjAyRTAwRTMyNDNGIC8qIEVudHJ5UG9p
bnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5QkQw
QUYyMjFBRTIwMkUwMEUzMjQzRiAvKiBpb3MgKi8sCisJCQkpOworCQkJcGF0aCA9IEVudHJ5UG9p
bnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkzOUJEMEFGMjIxQUUyMDJF
MDBFMzI0M0YgLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQkzOUJEMEFGMzIxQUUyMDJFMDBFMzI0M0YgLyogWFBDU2VydmljZSAqLywKKwkJCSk7
CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMzlC
RDBBRjMyMUFFMjAyRTAwRTMyNDNGIC8qIFhQQ1NlcnZpY2UgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTM5QkQwQUY0MjFBRTIwMkUwMEUzMjQzRiAvKiBQ
YXltZW50U2VydmljZSAqLywKKwkJCQkzOUJEMEFGNjIxQUUyMDJFMDBFMzI0M0YgLyogUGF5bWVu
dFNlcnZpY2VFbnRyeVBvaW50Lm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBYUENTZXJ2aWNlOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMzlCRDBBRjQyMUFFMjAyRTAwRTMy
NDNGIC8qIFBheW1lbnRTZXJ2aWNlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQkzOUJEMEFGNTIxQUUyMDJFMDBFMzI0M0YgLyogSW5mby1pT1MucGxpc3Qg
Ki8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRTZXJ2aWNlOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJNDEzMDc1OTcxREU4NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NjA0LDYgKzY2Nzcs
MTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAv
KiBQYXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2
MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5
QTE0OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBh
dGggPSBQYXltZW50czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4
RUYxMTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NjYwLDYgKzY3NDMsNDIgQEAKIAkJCXBhdGgg
PSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MUY3REMwQTE4MEND
NDExMDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTM5QkQwQUYxMjFBRTIwMkUwMEUzMjQzRiAvKiBFbnRyeVBv
aW50ICovLAorCQkJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8sCisJCQkJNTFF
MzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLywKKwkJCQk1MUUz
NTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLywKKwkJCQk1MUUzNTFG
QzE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJ
NTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcCAqLywKKwkJCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0
aCA9IFBheW1lbnRQcm9jZXNzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
NTM5QkQ1QjIxREFEQjBCQTAwRjJFNEUxIC8qIGNhcHR1cmUgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBq
c29uLmhwcCAqLywKKwkJCQk1MzAyNTgzMDFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1
cmVFdmVudC5jcHAgKi8sCisJCQkJNTMwMjU4MzExRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtD
YXB0dXJlRXZlbnQuaCAqLywKKwkJCQk1MzAyNTgzMjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29y
a0NhcHR1cmVMb2dnaW5nLmggKi8sCisJCQkJNTMwMjU4MzMxRENCQkQxRDAwREE4OUMyIC8qIE5l
dHdvcmtDYXB0dXJlTWFuYWdlci5jcHAgKi8sCisJCQkJNTMwMjU4MzQxRENCQkQxRDAwREE4OUMy
IC8qIE5ldHdvcmtDYXB0dXJlTWFuYWdlci5oICovLAorCQkJCTUzMDI1ODM1MURDQkJEMUQwMERB
ODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcCAqLywKKwkJCQk1MzAyNTgzNjFEQ0JC
RDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZWNvcmRlci5oICovLAorCQkJCTUzMDI1ODM3
MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmNwcCAqLywKKwkJCQk1
MzAyNTgzODFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5oICovLAor
CQkJCTUzMDI1ODJFMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNw
cCAqLywKKwkJCQk1MzAyNTgyRjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXNv
dXJjZS5oICovLAorCQkJCTUzMDI1ODM5MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRh
c2tSZXBsYXkuY3BwICovLAorCQkJCTUzMDI1ODNBMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3Jr
RGF0YVRhc2tSZXBsYXkuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gY2FwdHVyZTsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTU3MEFCOEY2MjBBRTgxQUIwMEI4QkU4NyAvKiBj
b2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03MDY0
LDYgKzcxODMsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlB
NzhDQ0REODE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNi
ICovLAorCQkJCTM5MTM2MDI0MjE5M0MxNDMwMDU2NDkyQSAvKiBjb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzLnNiICovLAogCQkJCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiAqLywKIAkJCSk7CkBAIC03MTEyLDYgKzcyMzIs
NyBAQAogCQkJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJ
CQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0
NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCisJCQkJMzkyRTk0MkEy
MTlBMkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERC
MTM3MSAvKiBQbHVnaW5zICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAvKiBTdG9y
YWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywK
QEAgLTcyNzQsNiArNzM5NSw3IEBACiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1h
YyAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkz
MUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKKwkJCQk1MTdERDVC
QjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMgKi8sCiAJCQkJMUFFRkNDMDUxMUQwMUYzNDAw
ODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQxNTUxQTkxRjVBOUI0MjAwMDZFM0ZFIC8qIFJl
bW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUFGMDg5RTE5MjY4MUFDMDBCNjM5MEMgLyogVXNlckNv
bnRlbnQgKi8sCkBAIC04MzcyLDYgKzg0OTQsMTAgQEAKIAkJCQk1QzBCMTc3NTFFN0M4NzlDMDBF
OTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCiAJCQkJMUEyRDg0Mzcx
MjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQkxQTJEODQzODEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXJNZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQ
YXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFG
Mjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCisJCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREEyOUEyNTFDQkVCNjdB
MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RB
MjlBMjYxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCkBAIC04NjkyLDYgKzg4MTgsMTQgQEAKIAkJCW5hbWUgPSBQREY7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUZFRjM5QjE5MEY3OTFDMDA3
MzE2NTggLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQlFMUZFRjM5QzE5MEY3OTFDMDA3MzE2NTggLyogUGF5bWVudFByb2Nlc3NJT1MubW0gKi8s
CisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCUU0ODlEMjgyMUEwQTJCRTgwMDc4QzA2QSAvKiBjYWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MTU2LDYgKzkyOTAsOSBAQAogCQkJCTFBQzc1
MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQThCNjZCMDFCQzQzQzg2MDA4MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5
cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdE
MzAwODE2NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUx
MThFOUFCMUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUMxRTEyM0JBMjBBMTE1NzMwMDI2NDZGNCAvKiBQREZDb250ZXh0
TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBE
RktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENkJGMTI0MjFBRjU2RTEwMDFFNzlD
OSAvKiBQZW5jaWxLaXRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDE1Myw2ICsxMDI5
MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJ
CQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1By
b2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDkyQSAv
KiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFMTFE
MzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBjb20uY2lzY28ud2ViZXgu
cGx1Z2luLmdwYzY0LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4
Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApAQCAtMTA3NTks
NiArMTA4OTcsMTEgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1l
T2JqZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5RjAwMDEyOEFG
RCAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3OTQy
MTJCNkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTE4RTlBQTFG
Mjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMjgxQ0JF
QjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50
cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZkMGE3YjU2
OTJiMTE5ZmM2N2Y0MjdkZDQ3OWVlMThkMzgxNjNjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKwor
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRN
YW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQor
eworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5l
Y3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3Zv
aWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30KKwordm9pZCBXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDE3N2Y4ZjJlYzdjNTUzODc3ZDFmYjkwNDI2
ZDEyM2MxNmE2MjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1NXU2VydmVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHByaXZh
dGUgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBj
cmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAgICB9CisgICAgfldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsK
KworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwor
CisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsg
fQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJ
bnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmNwcAppbmRleCBiMGQ3MDNj
NTM3ZjAwNzkwYzRmZmNhOWYzYjFkOWI0MWRkMDhhNDNlLi43YjVkMDAxNjBkZTM1OTk4ZjVkNTc3
YTRiZjM1NThiMTk2NTFjNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xs
ZXIuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRy
b2xsZXI6OnJlbW92ZVRhcmdldChJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldCYKIAogdm9pZCBX
ZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVjdEluc3BlY3Rvcihjb25zdCBT
dHJpbmcmIHRhcmdldElkLCBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5
cGUgY29ubmVjdGlvblR5cGUpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3Rh
cmdldHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRh
cmdldElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCkBAIC03OCw3ICs3
OCw3IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmNvbm5lY3RJbnNw
ZWN0b3IoY29uc3QgU3RyaW5nJiB0YXJnZXRJZCwKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFy
Z2V0Q29udHJvbGxlcjo6ZGlzY29ubmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdldElk
KQogewotICAgIEluc3BlY3RvclRhcmdldCogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJ
ZCk7CisgICAgYXV0byogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CiAgICAgaWYg
KCF0YXJnZXQpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFdlYlBh
Z2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9yKGNvbnN0IFN0
cmluZyYgdGFyZ2V0SQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpz
ZW5kTWVzc2FnZVRvVGFyZ2V0QmFja2VuZChjb25zdCBTdHJpbmcmIHRhcmdldElkLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3Rhcmdl
dHMuZ2V0KHRhcmdldElkKTsKKyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdl
dElkKTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMDljZWE5NTM1NTMxMWI2NGMzYWUwYmM2MzFl
ZGE4YjEwODUyZmZmYi4uMzMxNWFjMjkxMjFkYjFhOWQ0OTVkYmUyNzE3MWY0NTU2YjhmMTYxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTM2LDYgKzEzNiwx
MSBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQog
I2luY2x1ZGUgIlNlY0l0ZW1TaGltLmgiCiAjZW5kaWYKQEAgLTEyNDMsNiArMTI0OCwzMSBAQCBX
ZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQogewogICAg
IHJldHVybiBtX3dlYkxvYWRlclN0cmF0ZWd5OwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCit2b2lkIFdlYlByb2Nlc3M6OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2Vk
KFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VS
VChtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICBBU1NFUlQobV93ZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKKworICAgIG1fd2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCitXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKK3sKKyAgICBpZiAoIW1fd2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29k
ZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbihpbml0aWFsU2Vzc2lvbklEKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXIpLCAwKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUo
Y29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgfQorICAgIHJldHVybiAqbV93ZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAyM2RlYzAzYzk4NTBi
MmUxYTY5N2UzYWE2MTM0YThhYjQxNmQ3YjNjLi43NDg3YmE1NjFmNGNmNzQyOWJiODE5YmU2MWJj
M2U2MjM0ZmMxNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk4
LDYgKzk4LDkgQEAgY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xh
c3MgV2ViUGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b247CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIGVudW0gY2xhc3MgV2Vic2l0
ZURhdGFUeXBlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2Vi
UGFnZUdyb3VwRGF0YTsKQEAgLTE3NSw2ICsxNzgsMTEgQEAgcHVibGljOgogCiAgICAgTGliV2Vi
UlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKyAgICB2b2lkIHdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24mIGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklE
IGluaXRpYWxTZXNzaW9uSUQpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
ICAgICB2b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCiAgICAgdm9pZCBlbnN1cmVMZWdh
Y3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwpAQCAtNDQ0LDYgKzQ1
MiwxMCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk+IG1fYXV0b21hdGlvblNlc3Npb25Qcm94eTsKIAorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgUmVmUHRyPFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uPiBtX3dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAyZTlhMDRkMDFi
ZGQxNDIxYzRiNDU3MTE0YmY4OWMzYzc4NGVmOWMwLi5hZDZiNWYzODllMzc0YWZkN2MwNTA4NDEx
MDc4NzllZmE4MmE3YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjkyLDYg
KzI5Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2NvYXRvdWNoID0gRU5BQkxF
X05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX05PVElGSUNBVElPTlNf
bWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9QQVlNRU5UX1BST0NFU1Mg
PSBFTkFCTEVfUEFZTUVOVF9QUk9DRVNTOwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lOID0gJChFTkFCTEVfUERG
S0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyOWZiNzQ0YzZkOWNlYTY0YWZhYWMyMWZmOTVh
OTEwZTMzYmQ3ZjRmLi4yZmVmZDMyYjZhNjFkMTExNDAxMTNmODVmMTQ5Nzg2ZWJjMzg3YjYyIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMTgtMTEtMjcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6dGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVT
eW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE4LTEyLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgY2xp
ZW50cyB0byBzZXQgdGhlIG5hdmlnYXRvciBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggMmU5YTA0ZDAxYmRkMTQyMWM0YjQ1NzExNGJmODljM2M3ODRlZjljMC4uYWQ2YjVmMzg5ZTM3
NGFmZDdjMDUwODQxMTA3ODc5ZWZhODJhN2FlNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0y
OTIsNiArMjkyLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5B
QkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJP
Q0VTUyA9IEVOQUJMRV9QQVlNRU5UX1BST0NFU1M7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0g
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKaW5kZXggZGEwMjJjNGYwYzc2OTJlN2M2ZGY0ZDYyZTQ1OTZmMTg5ZWFkYmM1ZS4uNjc2
OTE2ZjkwNzIzMjY5MzNjNDY3ZDc0MzVkYjdlZGIxMWY3NDIyYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCkBAIC0zMzUsNiArMzM1LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAg
ICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWluYXRlU2Vy
dmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7
CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKaW5kZXggMjI1NzllODkxODU1OWI4ZTMyOGY0MTgzNmY3MGQxNTcxMTc2MDg5
Mi4uMTllNjI1NzE1MWU0NTUwMDViODdjODQwOTljOTczOWE0ODg1OTg3MyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBA
IC0xMjkyLDYgKzEyOTIsMTQgQEAgdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVTZXJ2aWNlV29y
a2VyUHJvY2VzcygpCiAgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRl
c3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdl
TmFtZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6dGVy
bWluYXRlUGF5bWVudFByb2Nlc3MoKQoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKTsKKyAgICBX
S0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRy
LCBudWxscHRyKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorfQorICAgIAog
c3RhdGljIHVuc2lnbmVkIG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1
bnNpZ25lZCBjYWxsYmFja0lEID0gRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQ7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDEy
MGVmYzgyNjNlYzc3MjQ5YjNiMGQ3ZGE2MTQ3NmEzYzhhN2FmMTcuLjRkNWY5ODZjMzAxY2ZhMDcz
MTczMzZmMGZlZDZmNDQ0MzBiM2NkYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NDgsNiArNDQ4LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgdGVybWlu
YXRlU2VydmljZVdvcmtlclByb2Nlc3MoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9j
ZXNzKCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscyhKU1ZhbHVlUmVm
KTsKICAgICB2b2lkIGNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjaygp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAyZjk4ZWQz
MjM5NmRhNzU5ZjZmZmRlZGRlYWRjOTM1ZDExZTU1OGQyLi41ZWMzZWQ3MTUyNWQ0NjVhZWY3YTZi
MjhiMDJhODkxMmIxMzNkZWE3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcApAQCAtMTA3NSw2ICsxMDc1LDEzIEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVy
OjpuZXR3b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSgp
Cit7CisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzIjsKK30KKyNlbmRpZgor
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFs
bG93cykKIHsKICAgICBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNv
Y2tldFRlc3RpbmcocGxhdGZvcm1Db250ZXh0KCksIGFsbG93cyk7CkBAIC0xNTExLDYgKzE1MTgs
MTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRl
eHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2wKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJv
bGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+bmV0d29ya1Byb2Nlc3NEaWRD
cmFzaCgpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNo
KFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKTsK
KyNlbmRpZgorfQorICAgIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUtleURvd25N
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rp
b25hcnksIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGtleUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIktleSIpKTsK
QEAgLTE4NDQsNiArMTg1OCwxNSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vz
c0RpZENyYXNoKCkKICAgICBleGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwYXlt
ZW50UHJvY2Vzc0RpZENyYXNoKCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAg
IHBpZF90IHBpZCA9IFdLQ29udGV4dEdldFBheW1lbnRQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRl
eHQuZ2V0KCkpOworICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClc
biIsIHBheW1lbnRQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsKKyAgICBl
eGl0KDEpOworI2VuZGlmCit9CisKIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKIAogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZp
Z2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
QEAgLTI2NDMsNiArMjY2NiwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJtaW5hdGVTZXJ2
aWNlV29ya2VyUHJvY2VzcygpCiAgICAgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclBy
b2Nlc3MocGxhdGZvcm1Db250ZXh0KCkpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjp0ZXJt
aW5hdGVQYXltZW50UHJvY2VzcygpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAg
ICBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQoKSk7Cisj
ZW5kaWYKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKQogewpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDEzYTM5YzY5MDVmMGQ4N2JhODdiOWRiNTdm
OGRhZDVjMTdhYzcxYmMuLmJmOWRlNTM3ZWE4ZjMxOTM5OGYzMjZkZTM4OTgyYzhjNWQ1ZmE0ODUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE2OCw3ICsxNjgs
MTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB3ZWJQcm9jZXNzTmFtZSgpOwog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuZXR3b3JrUHJvY2Vzc05hbWUoKTsKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogZGF0YWJhc2VQcm9jZXNzTmFtZSgpOwotCisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICBzdGF0aWMgY29uc3QgY2hhciogcGF5bWVudFByb2Nlc3NOYW1lKCk7Cisj
ZW5kaWYKKyAgICAKICAgICBXb3JrUXVldWVNYW5hZ2VyJiB3b3JrUXVldWVNYW5hZ2VyKCkgeyBy
ZXR1cm4gbV93b3JrUXVldWVNYW5hZ2VyOyB9CiAKICAgICB2b2lkIHNldFJlamVjdHNQcm90ZWN0
aW9uU3BhY2VBbmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhib29sIHZhbHVl
KSB7IG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VzID0gdmFsdWU7IH0KQEAgLTIzOSw3ICsyNDIsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNl
V29ya2VyUHJvY2VzcygpOwotCisgICAgdm9pZCB0ZXJtaW5hdGVQYXltZW50UHJvY2VzcygpOwor
ICAgIAogICAgIHZvaWQgcmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7CiAKICAgICB2b2lk
IGNsZWFyU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMoKTsKQEAgLTM0OCw2ICszNTIsOCBAQCBw
cml2YXRlOgogICAgIC8vIFdLQ29udGV4dENsaWVudAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBuZXR3
b3JrUHJvY2Vzc0RpZENyYXNoKCk7CisgICAgc3RhdGljIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRD
cmFzaChXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIHBheW1lbnRQcm9jZXNz
RGlkQ3Jhc2goKTsKIAogICAgIC8vIFdLUGFnZU5hdmlnYXRpb25DbGllbnQKICAgICBzdGF0aWMg
dm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAKaW5kZXggMWE5MWViMjg0MzRkNGVkN2QxYjk2MTIyMDA2Mzg1MDU0MGFk
NzgyYi4uNzJmYmI5ZThjYjNmMDBkZDlhNjdlNWE3MWE5ZjkyY2E3YmY5ODZjZCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0NTMsNiArMTQ1MywxNCBA
QCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hy
b25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlUGF5bWVudFByb2Nlc3MiKSkgewor
ICAgICAgICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKyNlbmRpZgorICAgIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSkgewogICAgICAg
ICBBU1NFUlQoIW1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357829</attachid>
            <date>2018-12-20 10:12:00 -0800</date>
            <delta_ts>2018-12-20 11:00:42 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-191298-20181220101157.patch</filename>
            <type>text/plain</type>
            <size>279309</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5Mzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NjFkOTBiZjdlYThlODUyNGYyNmU1ZDI0MTc4ZGI3MTIzZmVkN2JlLi5mZDQzZmFhZWNmY2RiNjIy
ZjM3ZTNiYzkyNWI5OTRlYjczMDE4OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKworMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMi0x
OSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0g
V2Ugc2hvdWxkIGVuYWJsZSBDU0UgaW50byBhcml0aG1ldGljIG9wZXJhdGlvbnMgdGhhdCBzcGVj
dWxhdGUgQmlnSW50VXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ5NGFiMTYxMjIyMjZmZDUyZjU4YjBjOTA2
MjVkNDVlNmZkMWEwZC4uZjMwMjcxNTdmMjhhODQxYmJlNjZlZTAzZGMyOTU4MmM1ZTgzZTE0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6
aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVh
dHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIGVu
Lmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKKzIwMTgtMTEtMjcgIFphbWl1bCBIYXF1ZSAg
PHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBm
ZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMi0xOSAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JjZSBzeW5jaHJvbm91cyBkZWNvZGUg
aW4gV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpkZWNvZGVTYW1wbGVTeW5jKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IGNhN2IwNjIzNWY5MjZiOTg1YWQxNGJiN2UzMTNiODU4NjU2MmM4OWEu
Ljg2NTg1YWE0M2I4MTgyOGNjZWNmZTRiNTA0ZWJhYWExODJlNjE2ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTExLTE0ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVA
YXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEy
OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCisyMDE4LTExLTI3ICBaYW1p
dWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBz
dHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
CiAyMDE4LTEyLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IEVuYWJsZSBIVFRQIGFuZCBIVFRQUyBwcm94aWVzIG9uIGlPUyBhbmQgbWFrZSBpdCBhIHByb3Bl
cnR5IG9mIHRoZSBOU1VSTFNlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTExNmY0N2Y5OTYxZjRhYTYwNmQ1
OTEwY2EzNGU0MGRmNjBkZjZiZS4uOWI3ZDY5NmI3ZDE5ODVlMTc4YTI3N2NkYjliY2U0ZWM4YjQ5
ZGNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNDEgQEAKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1
ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0
aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRh
cmdldC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZp
ZzogQWRkZWQuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
UHJvY2Vzczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBh
eW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6On5QYXltZW50
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjppbml0aWFsaXplQ29u
bmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5h
dGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNz
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVt
ZW50LmguCisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJL
aXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6Y29ubmVjdGlvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFBheW1l
bnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbTogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2I6IEFkZGVkLgorICAg
ICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9T
aGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmguCisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aC5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXS0Nv
bnRleHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVQYXlt
ZW50UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9wYXltZW50UHJvY2Vzc0lk
ZW50aWZpZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpzZXJ2aWNlTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Bh
eW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
Z2VuZXJhdGVQYXltZW50UHJvY2Vzc0NhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAg
IChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3Nl
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3Jl
YXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHRDbGllbnQ6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRl
eHRTdXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpw
cm9jZXNzRGlkQ2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZW5kTWVtb3J5UHJlc3N1cmVFdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nl
c3NDcmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VH
cm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZW5kVG9QYXltZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nhcnkp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OnBheW1lbnRQcm9jZXNzUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpl
bnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnN0b3BNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIaWRkZW5QYWdl
RE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0QWN0aXZlUGFnZXNPcmlnaW5z
Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0
ZUNQVUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRl
Q1BVTW9uaXRvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
cGFnZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbnMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5l
bnRseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1
c3BlbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVw
YXJlVG9TdXNwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFy
a0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nl
c3NDbGVhbnVwVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRN
ZW1vcnlDYWNoZURpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0RW5hYmxlZFNlcnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250
ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURl
dmljZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01l
ZGlhRGV2aWNlcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisKKzIwMTgtMTEtMjcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENT
ZXJ2aWNlL1BheW1lbnRTZXJ2aWNlL0luZm8taU9TLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBQ
YXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlRW50
cnlQb2ludC5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4
dFN1cHBsZW1lbnQuaC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFNlcnZpY2VJbml0aWFsaXpl
ckRlbGVnYXRlOjpQYXltZW50U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUpOgorICAgICAgICAo
UGF5bWVudFNlcnZpY2VJbml0aWFsaXplcik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OnNpbmds
ZXRvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjp+UGF5bWVudFByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKToKKyAgICAgICAg
KFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KToKKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oLgorICAgICAg
ICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAg
ICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246On5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNl
aXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAg
ICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9pb3Mv
UGF5bWVudFByb2Nlc3NJT1MubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRDbGllbnQuY3BwLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6
aW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6aW5p
dGlhbGl6ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6Omlu
aXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQv
Q2hpbGRQcm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJDb250ZXh0Q2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aC5oLgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGgu
aDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250
ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MpOgorICAgICAgICAoV0tDb250ZXh0R2V0UGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dL
UHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZVBheW1lbnRQcm9jZXNzXSk6CisgICAgICAgICgtW1dLUHJv
Y2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnNlcnZpY2VOYW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpQYXltZW50UHJv
Y2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1l
bnRQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp0
ZXJtaW5hdGVGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94
eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVu
dFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6ZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1By
b3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRDbGllbnQ6OnBheW1lbnRQ
cm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRTdXBwbGVtZW50Lmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHRTdXBwbGVtZW50Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNlbmRNZW1vcnlQcmVzc3VyZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OmVuc3VyZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0lkZW50
aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlUGF5bWVu
dFByb2Nlc3NGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNz
UmVsYXVuY2hpbmdJZk5lY2Vzc2FyeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAg
KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBheW1lbnRQcm9jZXNzUGFyYW1l
dGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2hvd0NlcnRpZmljYXRl
KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpj
b25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3Rv
clRhcmdldENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9y
VGFyZ2V0Q29udHJvbGxlcjo6Y29ubmVjdEluc3BlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9yKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OnNlbmRNZXNz
YWdlVG9UYXJnZXRCYWNrZW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0
RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6c3RhcnRNZW1vcnlTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6c3RvcE1lbW9yeVNhbXBsZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpzZXRUZXh0Q2hlY2tlclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6cmVsZWFzZVBhZ2VDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldEhpZGRlblBhZ2VET01UaW1lclRocm90
dGxpbmdJbmNyZWFzZUxpbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpnZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dXBkYXRlQ1BVTGltaXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVDUFVNb25pdG9yU3Rh
dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlQWN0aXZpdHlT
dGF0ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJl
c2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjptYXJrQWxsTGF5ZXJzVm9s
YXRpbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxNYXJr
QWxsTGF5ZXJzVm9sYXRpbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpmcmVlemVBbGxMYXllclRyZWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6dW5mcmVlemVBbGxMYXllclRyZWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnNlbmRQcmV3YXJtSW5mb3JtYXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3cpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwYWdlV2lsbExlYXZlV2luZG93KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXJG
aXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZW1vcnlDYWNoZURpc2Fi
bGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0RW5hYmxlZFNl
cnZpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlQXV0
b21hdGlvblNlc3Npb25Qcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmRlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmspOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRv
TmV0d29ya1Byb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0U2NyZWVuUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmFkZE1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyTW9ja01lZGlhRGV2aWNlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlbW92ZU1vY2tNZWRpYURldmljZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0TW9ja01lZGlhRGV2aWNlcyk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTgtMTItMTkg
IE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxv
dyBjbGllbnRzIHRvIHNldCB0aGUgbmF2aWdhdG9yIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggYWNiMTMzNDRmNWYxMTZiNjk4ZTcwNmRhYWM4YzM0Y2ZmODk4NTQ2NS4u
MGYxYWZmZTQyNWRmODc3ZjJlMGRjOGVjOGVmNzUwYTljYmMwNTFmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTExLTI3ICBaYW1pdWwgSGFxdWUg
IDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGgg
ZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE4LTEy
LTE5ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAg
QWxsb3cgY2xpZW50cyB0byBzZXQgdGhlIG5hdmlnYXRvciBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCmluZGV4IDJlOWEwNGQwMWJkZDE0MjFjNGI0NTcxMTRiZjg5YzNjNzg0ZWY5YzAu
LmFkNmI1ZjM4OWUzNzRhZmQ3YzA1MDg0MTEwNzg3OWVmYTgyYTdhZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTI5Miw2ICsyOTIsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkVfY29jb2F0b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitF
TkFCTEVfUEFZTUVOVF9QUk9DRVNTID0gRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUzsKIEVOQUJMRV9Q
QVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lU
X1BMVUdJTiA9ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IDJlOWEwNGQwMWJkZDE0MjFjNGI0NTcxMTRiZjg5YzNjNzg0ZWY5YzAuLmFk
NmI1ZjM4OWUzNzRhZmQ3YzA1MDg0MTEwNzg3OWVmYTgyYTdhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0y
OTIsNiArMjkyLDcgQEAgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FX2NvY29hdG91Y2ggPSBF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5B
QkxFX05PVElGSUNBVElPTlNfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3ggPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIAorRU5BQkxFX1BBWU1FTlRfUFJP
Q0VTUyA9IEVOQUJMRV9QQVlNRU5UX1BST0NFU1M7CiBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUID0g
RU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BERktJVF9QTFVHSU4gPSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291
cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmlu
ZGV4IDJlOWEwNGQwMWJkZDE0MjFjNGI0NTcxMTRiZjg5YzNjNzg0ZWY5YzAuLmFkNmI1ZjM4OWUz
NzRhZmQ3YzA1MDg0MTEwNzg3OWVmYTgyYTdhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTI5
Miw2ICsyOTIsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0b3VjaCA9IEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFC
TEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9OT1RJRklDQVRJ
T05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZTUVOVF9QUk9D
RVNTID0gRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUzsKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9ICQoRU5BQkxF
X1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaAppbmRleCBjMDg3NDg5NTU2NTFkOWNjM2I3
ZjMxNTNkZjU1MjllMTYzM2QzZWExLi41M2EzNzJkMDQwNDQ4OTgwMDgzMDRiOTA2Y2VmOWIyNTQ5
MzczYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRT
b2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvUGFzc0tpdFNvZnRM
aW5rLmgKQEAgLTM2LDYgKzM2LDcgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQ
S0NvbnRhY3QpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFBLUGFzc0xpYnJhcnkp
CiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFBLUGF5bWVudCkKIFNPRlRfTElOS19D
TEFTU19GT1JfSEVBREVSKFBBTCwgUEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVy
KQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1BheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlcikKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgUEtQYXltZW50TWV0
aG9kKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1BheW1lbnRNZXJjaGFudFNl
c3Npb24pCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFBLUGF5bWVudFJlcXVlc3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGlu
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLm1tCmlu
ZGV4IDMyZjdiZTA5Y2FhYzU2ZjBmMDZmMmQ4NzczZTc3YzBiODRkZThmOTMuLjA4NjQ1MmJhYmQ5
ODM3YWRkZTE5YjRmNGY4YzQ5ZTBiMDJkODc4YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLm1tCkBAIC0zOSw2ICszOSw3IEBAIFNPRlRfTElO
S19GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQsIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQs
IFBLQ29udGFjdCwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXNzTGlicmFyeSwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXltZW50LCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQ
YXNzS2l0LCBQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXlt
ZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0LCBQS1BheW1lbnRNZXJjaGFu
dFNlc3Npb24sIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIFBhc3NLaXQsIFBLUGF5bWVudE1ldGhvZCwgUEFMX0VYUE9SVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaAppbmRleCAxODk1OGU5MjYx
NGMxZTNiNmE0ZjA0YTY4YWQxNDMzYWIxOTcxODE3Li44YjhiYWVhNjk3MWM5ODYzMTM5ZTJhNTEy
OTY2MGI1ZWUwNjM2M2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9QYXNzS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
UGFzc0tpdFNQSS5oCkBAIC00MCw2ICs0MCw3IEBAIFdURl9FWFRFUk5fQ19FTkQKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW1wb3J0IDxQYXNzS2l0L1Bhc3NLaXQuaD4KKyNpbXBv
cnQgPFBhc3NLaXQvUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJfUHJpdmF0ZS5oPgog
I2ltcG9ydCA8UGFzc0tpdC9QS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXJfUHJp
dmF0ZS5oPgogI2ltcG9ydCA8UGFzc0tpdC9QS1BheW1lbnRSZXF1ZXN0X1ByaXZhdGUuaD4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBi
L1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggNTUzZTU2
MjBkZmVlNmY5YmRhZjAwOWJhZTBjMmZjYWUyZjJiYWE1ZC4uN2JkYWU5M2ZkYmYyMzA1YmFhYWZi
N2Q1ODQzNWQ0YzdmM2ExMzZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ov
TG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzCkBAIC00Myw2ICs0Myw5IEBACiAvKiBWaXNpYmxlIG5hbWUgb2YgU2Vydmlj
ZSBXb3JrZXIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAq
LwogIiVAIFNlcnZpY2UgV29ya2VyICglQCkiID0gIiVAIFNlcnZpY2UgV29ya2VyICglQCkiOwog
CisvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIHBheW1lbnQgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlz
IHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLworIiVAIFBheW1lbnRzIiA9ICIlQCBQYXltZW50cyI7
CisKIC8qIFZpc2libGUgbmFtZSBvZiB0aGUgd2ViIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBXZWIgQ29udGVudCIgPSAiJUAgV2ViIENvbnRl
bnQiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZGIxZTkxMThhNjk5NGY5NDVmMzhmMWFmMmRm
YWNhMjBiOGMzZDg0Li5jNjJmZmFlMWYzY2ZlOGM0Yjk1MDFkOTUzNTI3MGFiNzc5ODA1M2ExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTE0LDYgKzE0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvY2FjaGUiCiAgICAg
IiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3Mvd2F0Y2hvcyIKICAgICAiJHtXRUJLSVRfRElS
fS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMiCisgICAgIiR7V0VCS0lUX0RJUn0vUGF5bWVudFByb2Nl
c3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vUGxhdGZvcm0iCiAgICAgIiR7V0VCS0lUX0RJUn0vUGxh
dGZvcm0vSVBDIgogICAgICIke1dFQktJVF9ESVJ9L1BsdWdpblByb2Nlc3MiCkBAIC0yNiw2ICsy
Nyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9
L1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9G
aWxlQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9HYW1lcGFkIgorICAgICIke1dFQktJ
VF9ESVJ9L1NoYXJlZC9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5z
IgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dF
QktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMSIKQEAgLTQ0LDYgKzQ2LDcgQEAg
c2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgor
ICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9QYXltZW50IgogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL1VzZXJDb250ZW50IgpAQCAt
MTIwLDYgKzEyMyw5IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQubWVzc2FnZXMuaW4KIAorICAgIFBheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAgUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKwogICAgIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMTUwLDYgKzE1Niw4IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKIAogICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIwLDYgKzIyOCwxMCBAQCBzZXQoTmV0
d29ya1Byb2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0CiApCiAKK3NldChQYXltZW50UHJvY2Vz
c19MSUJSQVJJRVMKKyAgICBXZWJLaXQKKykKKwogc2V0KFBsdWdpblByb2Nlc3NfTElCUkFSSUVT
CiAgICAgV2ViS2l0CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0Jhc2VUYXJnZXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VU
YXJnZXQueGNjb25maWcKaW5kZXggNDA1ZDYzYmJiMDEyYTM5ZTY1ZGE4YmE4Yjg5MDgzNThhMjU4
YmQ2Yy4uZWViN2EyNmFkYTE0NjNkMmFkNWE4ZGNmZGIyMDZhNGQ2M2NmM2UyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwpAQCAtMTEx
LDYgKzExMSw4IEBAIFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OW3Nkaz1tYWNvc3gqXVthcmNoPWkz
ODZdID0gTk87CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FUyA9ICQoV0tfQ09SRV9QUkVESUNU
SU9OX0RFRklORVNfJChXS19IQVZFX0NPUkVfUFJFRElDVElPTikpOwogV0tfQ09SRV9QUkVESUNU
SU9OX0RFRklORVNfWUVTID0gSEFWRV9DT1JFX1BSRURJQ1RJT047CiAKK1dLX1BBWU1FTlRfU0VS
VklDRV9QUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzOworCiBXS19TVE9S
QUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FID0gJChXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9O
QU1FXyQoV0tfVVNFX0xFR0FDWV9TVE9SQUdFX1NFUlZJQ0VfTkFNRSkpOwogV0tfU1RPUkFHRV9T
RVJWSUNFX1BST0RVQ1RfTkFNRV8gPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVf
Tk8pOwogV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyA9IGNvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDJlOWEwNGQwMWJkZDE0MjFjNGI0NTcxMTRiZjg5YzNj
Nzg0ZWY5YzAuLmFkNmI1ZjM4OWUzNzRhZmQ3YzA1MDg0MTEwNzg3OWVmYTgyYTdhZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwpAQCAtMjkyLDYgKzI5Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9jb2Nv
YXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNBVElP
TlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxF
X05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJMRV9Q
QVlNRU5UX1BST0NFU1MgPSBFTkFCTEVfUEFZTUVOVF9QUk9DRVNTOwogRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExVR0lO
ID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcg
Yi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFjYjVjM2Q4YmJmNmUxNjMzMmNiOGEyNjYwNTEwZmViNDE1NzM2NTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRTZXJ2aWNl
LnhjY29uZmlnCkBAIC0wLDAgKzEsMzggQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
Ky8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8v
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
Ly8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1dLX1BBWU1FTlRf
RU5USVRMRU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CisKK1dLX1hQQ19TRVJWSUNFX0lPU19FTlRJ
VExFTUVOVFNfQkFTRSA9ICQoV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFXyQo
V0tfUExBVEZPUk1fTkFNRSkpOworV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNF
X2lwaG9uZW9zID0gUGF5bWVudHMtaU9TOworV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5U
U19CQVNFX2lwaG9uZXNpbXVsYXRvciA9IFBheW1lbnRzLWlPUzsKKworQ09ERV9TSUdOX0VOVElU
TEVNRU5UU19DT0NPQV9UT1VDSF9OTyA9ICQoV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJ
Q1RFRF8kKFdLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UUykpOworQ09ERV9TSUdOX0VOVElU
TEVNRU5UU19DT0NPQV9UT1VDSF9OTyA9ICQoV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJ
Q1RFRF8kKFdLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UUykpOworT1RIRVJfQ09ERV9TSUdO
X0ZMQUdTID0gJChXS19MSUJSQVJZX1ZBTElEQVRJT05fQ09ERV9TSUdOX0ZMQUdTKTsKKworUFJP
RFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50czsKK1BST0RVQ1RfQlVORExFX0lE
RU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7CitJTkZPUExJU1RfRklMRVtzZGs9aXBob25lKl0g
PSBQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNl
L0luZm8taU9TLnBsaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9QYXltZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yLmVudGl0bGVt
ZW50cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZDdhYTMyNWU4OTg5MDkwZTdkOTQyZTRmMGFlYWQyODhjM2U2YzNm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50
cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRpdGxlbWVudHMKQEAgLTAsMCArMSwxMCBAQAorPD94
bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJM
SUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RU
RHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4K
Kwk8a2V5PnNlYXRiZWx0LXByb2ZpbGVzPC9rZXk+CisJPGFycmF5PgorCQk8c3RyaW5nPmNvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHM8L3N0cmluZz4KKwk8L2FycmF5PgorPC9kaWN0PgorPC9wbGlz
dD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9T
LmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9T
LmVudGl0bGVtZW50cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWE0MGJiZGM2OGIyNmYwNGM0NGExOWRhYzhhMTVj
M2Q1ZmNhZDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9QYXltZW50cy1pT1MuZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9B
cHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3Bl
cnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5j
b20uYXBwbGUucGF5bWVudC5hbGwtYWNjZXNzPC9rZXk+CisJPHRydWUvPgorCTxrZXk+Y29tLmFw
cGxlLnByaXZhdGUuaW4tYXBwLXBheW1lbnRzPC9rZXk+CisJPHRydWUvPgorCTxrZXk+c2VhdGJl
bHQtcHJvZmlsZXM8L2tleT4KKwk8YXJyYXk+CisJCTxzdHJpbmc+Y29tLmFwcGxlLldlYktpdC5Q
YXltZW50czwvc3RyaW5nPgorCTwvYXJyYXk+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDJmZGU1NTUwY2Y0ZDcwYWRjMDlkZWYzNTdhOTg3ODIyNzNl
NTU0NzIuLjkyMGMwODlhYjllNDA1NjQwNGQzZWExZWM2YTgzOTg2M2YyM2VlYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMwLDYgKzMwLDcgQEAgVlBBVEggPSBcCiAgICAgJChX
ZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy93ZWJydGMgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIgXAorICAgICQoV2ViS2l0MikvUGF5bWVudFByb2Nlc3MgXAogICAgICQoV2ViS2l0Mikv
UGx1Z2luUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Qcm9jZXNzL21hYyBcCiAgICAg
JChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCkBAIC01MSw2ICs1Miw3IEBAIFZQQVRIID0gXAog
ICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQy
KS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9P
cmlnaW5EYXRhIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGF5bWVudHMgXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
UmVzb3VyY2VDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAt
NzMsNiArNzUsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3Jr
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAg
ICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisgICAgJChXZWJLaXQyKS9V
SVByb2Nlc3MvUGF5bWVudHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMgXAog
ICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZSBcCiAgICAgJChXZWJLaXQy
KS9VSVByb2Nlc3MvU3RvcmFnZSBcCkBAIC0xMTgsNiArMTIxLDExIEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0gXAogICAgIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIgXAogICAgIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSBcCisgICAgUGF5bWVudFBy
b2Nlc3MgXAorICAgIFBheW1lbnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IgXAorICAgIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSBcCisgICAgUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRyb2xsZXJQcm94eSBc
CiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gXApAQCAt
MTgyLDYgKzE5MCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlNXU2VydmVyQ29u
bmVjdGlvbiBcCiAgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIFwKICAgICBXZWJT
b2NrZXRTdHJlYW0gXAorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXIgXAogICAgIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5IFwKICMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvRW50cnlQ
b2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdCBiL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50
U2VydmljZS9JbmZvLWlPUy5wbGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjY5YTYzNTliYTRlMGYzMWYyODJl
ZmVlYzYwMjQxNjc0NDQ1ODgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlL0luZm8t
aU9TLnBsaXN0CkBAIC0wLDAgKzEsNDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEu
MC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4K
KzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJp
bmc8L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE4
IEFwcGxlIEluYy48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tl
eT4KKwk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwv
a2V5PgorCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRs
ZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0
cmluZz42LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQ
Uk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJ
PHN0cmluZz5YUEMhPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwv
a2V5PgorCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KKwk8a2V5PkNG
QnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+CisJ
PGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TUHJp
bmNpcGFsQ2xhc3M8L2tleT4KKwk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KKwk8a2V5
PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KKwk8c3RyaW5nPlBheW1lbnRTZXJ2aWNlSW5pdGlhbGl6
ZXI8L3N0cmluZz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+WFBD
U2VydmljZTwva2V5PgorCTxkaWN0PgorCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+CisJCTxzdHJp
bmc+QXBwbGljYXRpb248L3N0cmluZz4KKwkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgorCQk8c3Ry
aW5nPk5TUnVuTG9vcDwvc3RyaW5nPgorCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5Pgor
CQk8dHJ1ZS8+CisJPC9kaWN0PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50
U2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL0VudHJ5
UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM3OTI1ZWQzYzI4NWVkNjcxZTgwODViNjQ2YTk2NDdjNDU5ZTJlNTgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1Nl
cnZpY2UvUGF5bWVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKKyNp
bXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBQYXltZW50U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgOiBwdWJsaWMgWFBDU2Vydmlj
ZUluaXRpYWxpemVyRGVsZWdhdGUgeworcHVibGljOgorICAgIFBheW1lbnRTZXJ2aWNlSW5pdGlh
bGl6ZXJEZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4
cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAgICAgICA6IFhQQ1NlcnZpY2VJbml0
aWFsaXplckRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSkK
KyAgICB7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK2V4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgUGF5bWVudFNlcnZpY2VJ
bml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0
aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7CisKK3Zv
aWQgUGF5bWVudFNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24s
IHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJv
b3N0TWVzc2FnZSkKK3sKKyAgICAvLyBSZW1vdmUgdGhlIFNlY0l0ZW1TaGltIGZyb20gdGhlIERZ
TERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2Vz
IHNwYXduZWQgYnkKKyAgICAvLyB0aGUgdGhpcyBwcm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQg
dGhlIHNoaW0gYW5kIGNyYXNoLgorICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVl
c0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0u
ZHlsaWIiKTsKKyAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXI8UGF5bWVudFByb2Nlc3MsIFBheW1l
bnRTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChjb25uZWN0aW9uKSwg
aW5pdGlhbGl6ZXJNZXNzYWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVi
OGM2ZmJmZjQ3MjFkZjc3YmUxMmE5OThlNmZmODZjN2UyOGQzNmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcApAQCAtMCww
ICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1
ZGUgIkNoaWxkUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5oIgorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50UHJvY2VzcyYg
UGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFBheW1lbnRQcm9jZXNzPiBwcm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzOworfQorCitQYXlt
ZW50UHJvY2Vzczo6UGF5bWVudFByb2Nlc3MoKQorICAgIDogbV9wYXltZW50Q29vcmRpbmF0b3Io
c3RkOjptYWtlX3VuaXF1ZTxQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk+KCp0aGlzKSkK
KyAgICAsIG1fY29ubmVjdGlvbihudWxscHRyKQoreworfQorCitQYXltZW50UHJvY2Vzczo6flBh
eW1lbnRQcm9jZXNzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIENoaWxkUHJvY2Vz
czo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cit9CisKK2Jvb2wgUGF5bWVudFBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisgICAgCit2
b2lkIFBheW1lbnRQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBtX3BheW1lbnRDb29yZGluYXRvci0+ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OkNoaWxkUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CisgICAgICAgIENoaWxkUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVj
b2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKK30KKyAgICAKK3ZvaWQgUGF5bWVudFBy
b2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICAvLyBD
cmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQg
PSBNQUNIX1BPUlRfTlVMTDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hf
dGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7Cisg
ICAgaWYgKGtyICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQ
cm9jZXNzLCAiUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOiBDb3VsZCBub3QgYWxsb2NhdGUgbWFjaCBwb3J0LCBlcnJvciAleCIsIGtyKTsKKyAgICAg
ICAgQ1JBU0goKTsKKyAgICB9CisgICAgaWYgKCFNQUNIX1BPUlRfVkFMSUQobGlzdGVuaW5nUG9y
dCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIlBheW1lbnRQcm9jZXNz
OjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjogQ291bGQgbm90IGFsbG9jYXRl
IG1hY2ggcG9ydCwgcmV0dXJuZWQgcG9ydCB3YXMgaW52YWxpZCIpOworICAgICAgICBDUkFTSCgp
OworICAgIH0KKyAgICAKKyAgICAvLyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29ubmVjdGlvbi4KKyAg
ICBtX2Nvbm5lY3Rpb24gPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSk7CisgICAgCisgICAgSVBD
OjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBh
eW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KGNsaWVudFBvcnQpLCAwKTsKK30KKyAgICAKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRlc3Ryb3lT
ZXNzaW9uKCkKK3sKKyAgICAvLyBUT0RPOiBkZWxldGUgY29vcmRpbmF0b3IgcHJveHkKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MmVlZWZhMTE0Y2VkMGI1ZDY2YjAyMWM0MjgzYWJjOWI5YWFhODI0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5o
CkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjsKK2NsYXNzIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTsKKworY2xh
c3MgUGF5bWVudFByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShQYXltZW50UHJvY2Vzcyk7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPFBh
eW1lbnRQcm9jZXNzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGF5bWVudFByb2Nlc3MmIHNpbmds
ZXRvbigpOworICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBQ
cm9jZXNzVHlwZTo6UGF5bWVudDsKKworICAgIH5QYXltZW50UHJvY2VzcygpOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwor
ICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vz
c05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3Zl
cnJpZGU7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5PiBtX3BheW1lbnRDb29yZGluYXRvcjsKKyAgICBSZWZQdHI8UGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICAKK3ByaXZhdGU6CisgICAgUGF5bWVudFBy
b2Nlc3MoKTsKKworICAgIC8vIENoaWxkUHJvY2VzcworICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRUZXJtaW5h
dGUoKSBvdmVycmlkZTsKKworICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKKyAgICB2b2lkIGNyZWF0
ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgdm9pZCBkZXN0cm95U2Vzc2lv
bigpOworICAgIAorICAgIAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5NGU2
ZTYzZDNjMThmNTYwZDFjOGI0YjdlYWNjYjhlOWY4Y2JhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNz
IHsKKyAgICAKKyAgICBDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCisgICAg
RGVzdHJveVNlc3Npb24oKQorfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkzYjMwYjdlMGM1ODIzMjkx
ZmM2ZjJjNjIzMjcwMGM3M2I2MDk2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmNwcApAQCAtMCww
ICsxLDM0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuaCIKKworI2lmIEVOQUJMRShBUFBMRV9QQVkp
ICYmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzcy5o
IgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXph
dGlvblN0YXR1cy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eSogYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHk7CisKK1Bh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5KFBheW1lbnRQcm9jZXNzJiBwYXltZW50UHJvY2VzcykKKyAgICA6IG1fcGF5bWVudFByb2Nl
c3MocGF5bWVudFByb2Nlc3MpCisgICAgLCBtX3N0YXRlKFN0YXRlOjpJZGxlKQorICAgICwgbV9t
ZXJjaGFudFZhbGlkYXRpb25TdGF0ZShNZXJjaGFudFZhbGlkYXRpb25TdGF0ZTo6SWRsZSkKK3sK
KyAgICBtX3BheW1lbnRQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
K30KKworUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Ojp+UGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5KCkKK3sKKyAgICBpZiAoYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkg
PT0gdGhpcykKKyAgICAgICAgYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkgPSBudWxscHRy
OworICAgIAorICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpJZGxlKQorICAgICAgICBoaWRlUGF5
bWVudFVJKCk7CisgICAgCisgICAgbV9wYXltZW50UHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmF2
YWlsYWJsZVBheW1lbnROZXR3b3JrcyhWZWN0b3I8U3RyaW5nPiYgbmV0d29ya3MpCit7CisgICAg
bmV0d29ya3MgPSBwbGF0Zm9ybUF2YWlsYWJsZVBheW1lbnROZXR3b3JrcygpOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzKGJvb2wmIHJl
cGx5KQoreworICAgIHJlcGx5ID0gcGxhdGZvcm1DYW5NYWtlUGF5bWVudHMoKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50c1dpdGhBY3Rp
dmVDYXJkKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRv
bWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK3sKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpOworICAgIHBsYXRmb3JtQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNh
cmQobWVyY2hhbnRJZGVudGlmaWVyLCBkb21haW5OYW1lLCBbd2Vha1RoaXMsIHJlcXVlc3RJRF0o
Ym9vbCBjYW5NYWtlUGF5bWVudHMpIHsKKyAgICAgICAgYXV0byBwYXltZW50Q29vcmRpbmF0b3JQ
cm94eSA9IHdlYWtUaGlzLmdldCgpOworICAgICAgICBpZiAoIXBheW1lbnRDb29yZGluYXRvclBy
b3h5KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgcGF5bWVudENvb3Jk
aW5hdG9yUHJveHktPm1fcGF5bWVudFByb2Nlc3MubV9jb25uZWN0aW9uLT5jYW5NYWtlUGF5bWVu
dHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHJlcXVlc3RJRCwgY2FuTWFrZVBheW1lbnRzKTsKKyAgICB9
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6Om9wZW5QYXltZW50
U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9t
YWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKQoreworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyk7CisgICAgcGxhdGZvcm1PcGVuUGF5bWVudFNldHVwKG1lcmNoYW50SWRl
bnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlzLCByZXF1ZXN0SURdKGJvb2wgcmVzdWx0KSB7
CisgICAgICAgIGF1dG8gcGF5bWVudENvb3JkaW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsK
KyAgICAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0b3JQcm94eSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgCisgICAgICAgIHBheW1lbnRDb29yZGluYXRvclByb3h5LT5tX3BheW1lbnRQ
cm9jZXNzLm1fY29ubmVjdGlvbi0+b3BlblBheW1lbnRTZXR1cFJlcGx5KHJlcXVlc3RJRCwgcmVz
dWx0KTsKKyAgICB9KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OnNob3dQYXltZW50VUkoY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2ViQ29yZTo6QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0LCBib29sJiByZXN1bHQpCit7
CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhIG1lc3NhZ2UgY2hlY2suCisgICAgQVNTRVJUKGNh
bkJlZ2luKCkpOworICAgIAorICAgIGlmIChhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSkg
eworICAgICAgICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eS0+aGlkZVBheW1lbnRVSSgp
OworICAgICAgICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eS0+ZGlkQ2FuY2VsUGF5bWVu
dFNlc3Npb24oKTsKKyAgICB9CisgICAgCisgICAgYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkgPSB0aGlzOworICAgIAorICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZhdGluZzsKKyAgICAK
KyAgICBXZWJDb3JlOjpVUkwgb3JpZ2luYXRpbmdVUkwoV2ViQ29yZTo6VVJMKCksIG9yaWdpbmF0
aW5nVVJMU3RyaW5nKTsKKyAgICAKKyAgICBWZWN0b3I8V2ViQ29yZTo6VVJMPiBsaW5rSWNvblVS
THM7CisgICAgZm9yIChjb25zdCBhdXRvJiBsaW5rSWNvblVSTFN0cmluZyA6IGxpbmtJY29uVVJM
U3RyaW5ncykKKyAgICAgICAgbGlua0ljb25VUkxzLmFwcGVuZChXZWJDb3JlOjpVUkwoV2ViQ29y
ZTo6VVJMKCksIGxpbmtJY29uVVJMU3RyaW5nKSk7CisgICAgCisgICAgcGxhdGZvcm1TaG93UGF5
bWVudFVJKG9yaWdpbmF0aW5nVVJMLCBsaW5rSWNvblVSTHMsIHBheW1lbnRSZXF1ZXN0LCBbdGhp
c10oYm9vbCByZXN1bHQpIHsKKyAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2
YXRpbmcpOworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgZGlkQ2FuY2VsUGF5
bWVudFNlc3Npb24oKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpBY3RpdmU7CisgICAgfSk7CisgICAgCisgICAgcmVz
dWx0ID0gdHJ1ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNv
bXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNl
c3Npb24mIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCit7CisgICAgLy8gSXQncyBwb3NzaWJsZSB0
aGF0IHRoZSBwYXltZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCisgICAgaWYgKG1fc3Rh
dGUgPT0gU3RhdGU6OklkbGUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgYmUgYSBNRVNTQUdFX0NIRUNLLgorICAgIEFTU0VSVChtX21lcmNoYW50VmFs
aWRhdGlvblN0YXRlID09IE1lcmNoYW50VmFsaWRhdGlvblN0YXRlOjpWYWxpZGF0aW5nKTsKKyAg
ICAKKyAgICBwbGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRNZXJjaGFu
dFNlc3Npb24pOworICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJjaGFudFZhbGlk
YXRpb25TdGF0ZTo6VmFsaWRhdGlvbkNvbXBsZXRlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYgdXBkYXRlKQorewor
ICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBh
bHJlYWR5LgorICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgTUVTU0FHRV9DSEVDSy4KKyAg
ICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZCk7CisgICAg
CisgICAgcGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHVwZGF0ZSk7Cisg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpBY3RpdmU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25zdCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAg
ICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxy
ZWFkeS4KKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhIE1FU1NBR0VfQ0hFQ0suCisgICAg
QVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OlNoaXBwaW5nQ29udGFjdFNlbGVjdGVkKTsKKyAgICAK
KyAgICBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSk7Cisg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpBY3RpdmU7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3Qgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYgdXBkYXRlKQoreworICAgIC8v
IEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5
LgorICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgTUVTU0FHRV9DSEVDSy4KKyAgICBBU1NF
UlQobV9zdGF0ZSA9PSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVjdGVkKTsKKyAgICAKKyAgICBw
bGF0Zm9ybUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fc3Rh
dGUgPSBTdGF0ZTo6QWN0aXZlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eTo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYgcmVzdWx0KQoreworICAgIC8vIEl0J3MgcG9z
c2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5LgorICAgIGlm
ICghY2FuQ29tcGxldGVQYXltZW50KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBib29s
IGlzRmluYWxTdGF0ZVJlc3VsdCA9IFdlYkNvcmU6OmlzRmluYWxTdGF0ZVJlc3VsdChyZXN1bHQp
OworICAgIAorICAgIHBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vzc2lvbihyZXN1bHQpOworICAg
IAorICAgIGlmICghaXNGaW5hbFN0YXRlUmVzdWx0KSB7CisgICAgICAgIG1fc3RhdGUgPSBTdGF0
ZTo6QWN0aXZlOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGRpZFJlYWNoRmlu
YWxTdGF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6YWJv
cnRQYXltZW50U2Vzc2lvbigpCit7CisgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBwYXlt
ZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCisgICAgaWYgKCFjYW5BYm9ydCgpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgaGlkZVBheW1lbnRVSSgpOworICAgIAorICAgIGRpZFJl
YWNoRmluYWxTdGF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6Y2FuY2VsUGF5bWVudFNlc3Npb24oKQoreworICAgIGlmICghY2FuQ2FuY2VsKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBoaWRlUGF5bWVudFVJKCk7CisgICAgZGlkQ2FuY2VsUGF5
bWVudFNlc3Npb24oKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkKK3sKKyAgICBBU1NFUlQoY2FuQ2FuY2VsKCkpOwor
ICAgIAorICAgIG1fcGF5bWVudFByb2Nlc3MubV9jb25uZWN0aW9uLT5kaWRDYW5jZWxQYXltZW50
U2Vzc2lvbigpOworICAgIAorICAgIGRpZFJlYWNoRmluYWxTdGF0ZSgpOworfQorCit2b2lkIFBh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6dmFsaWRhdGVNZXJjaGFudChjb25zdCBXZWJD
b3JlOjpVUkwmIHVybCkKK3sKKyAgICBBU1NFUlQobV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9
PSBNZXJjaGFudFZhbGlkYXRpb25TdGF0ZTo6SWRsZSk7CisgICAgCisgICAgbV9tZXJjaGFudFZh
bGlkYXRpb25TdGF0ZSA9IE1lcmNoYW50VmFsaWRhdGlvblN0YXRlOjpWYWxpZGF0aW5nOworICAg
IG1fcGF5bWVudFByb2Nlc3MubV9jb25uZWN0aW9uLT52YWxpZGF0ZU1lcmNoYW50KHVybC5zdHJp
bmcoKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpkaWRBdXRo
b3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCit7CisgICAgbV9z
dGF0ZSA9IFN0YXRlOjpBdXRob3JpemVkOworICAgIG1fcGF5bWVudFByb2Nlc3MubV9jb25uZWN0
aW9uLT5kaWRBdXRob3JpemVQYXltZW50KHBheW1lbnQpOworCit9CisKK3ZvaWQgUGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvclByb3h5OjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBw
aW5nTWV0aG9kKQoreworICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOworICAg
IAorICAgIG1fc3RhdGUgPSBTdGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZDsKKyAgICBtX3Bh
eW1lbnRQcm9jZXNzLm1fY29ubmVjdGlvbi0+ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hpcHBp
bmdNZXRob2QpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlk
U2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBzaGlw
cGluZ0NvbnRhY3QpCit7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2ZSk7Cisg
ICAgCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZDsKKyAgICBt
X3BheW1lbnRQcm9jZXNzLm1fY29ubmVjdGlvbi0+ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KHNo
aXBwaW5nQ29udGFjdCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmIHBh
eW1lbnRNZXRob2QpCit7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2ZSk7Cisg
ICAgCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQ7CisgICAgbV9w
YXltZW50UHJvY2Vzcy5tX2Nvbm5lY3Rpb24tPmRpZFNlbGVjdFBheW1lbnRNZXRob2QocGF5bWVu
dE1ldGhvZCk7CisKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNh
bkJlZ2luKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNlIFN0YXRl
OjpJZGxlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgY2FzZSBTdGF0ZTo6
QWN0aXZhdGluZzoKKyAgICBjYXNlIFN0YXRlOjpBY3RpdmU6CisgICAgY2FzZSBTdGF0ZTo6QXV0
aG9yaXplZDoKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ01ldGhvZFNlbGVjdGVkOgorICAgIGNh
c2UgU3RhdGU6OlNoaXBwaW5nQ29udGFjdFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6OlBheW1l
bnRNZXRob2RTZWxlY3RlZDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworYm9v
bCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbkNhbmNlbCgpIGNvbnN0Cit7Cisg
ICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgY2FzZSBTdGF0ZTo6QWN0aXZhdGluZzoKKyAgICBj
YXNlIFN0YXRlOjpBY3RpdmU6CisgICAgY2FzZSBTdGF0ZTo6QXV0aG9yaXplZDoKKyAgICBjYXNl
IFN0YXRlOjpTaGlwcGluZ01ldGhvZFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6OlNoaXBwaW5n
Q29udGFjdFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6OlBheW1lbnRNZXRob2RTZWxlY3RlZDoK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgIGNhc2UgU3RhdGU6OklkbGU6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5OjpjYW5Db21wbGV0ZVBheW1lbnQoKSBjb25zdAoreworICAgIHN3aXRjaCAo
bV9zdGF0ZSkgeworICAgIGNhc2UgU3RhdGU6OkF1dGhvcml6ZWQ6CisgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAKKyAgICBjYXNlIFN0YXRlOjpJZGxlOgorICAgIGNhc2UgU3RhdGU6OkFj
dGl2YXRpbmc6CisgICAgY2FzZSBTdGF0ZTo6QWN0aXZlOgorICAgIGNhc2UgU3RhdGU6OlNoaXBw
aW5nTWV0aG9kU2VsZWN0ZWQ6CisgICAgY2FzZSBTdGF0ZTo6U2hpcHBpbmdDb250YWN0U2VsZWN0
ZWQ6CisgICAgY2FzZSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVjdGVkOgorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorfQorCitib29sIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6Y2FuQWJvcnQoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAgIGNhc2Ug
U3RhdGU6OkFjdGl2YXRpbmc6CisgICAgY2FzZSBTdGF0ZTo6QWN0aXZlOgorICAgIGNhc2UgU3Rh
dGU6OkF1dGhvcml6ZWQ6CisgICAgY2FzZSBTdGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZDoK
KyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRl
OjpQYXltZW50TWV0aG9kU2VsZWN0ZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAK
KyAgICBjYXNlIFN0YXRlOjpJZGxlOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlkUmVhY2hGaW5hbFN0YXRl
KCkKK3sKKyAgICBtX3N0YXRlID0gU3RhdGU6OklkbGU7CisgICAgbV9tZXJjaGFudFZhbGlkYXRp
b25TdGF0ZSA9IE1lcmNoYW50VmFsaWRhdGlvblN0YXRlOjpJZGxlOworICAgIAorICAgIEFTU0VS
VChhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSA9PSB0aGlzKTsKKyAgICBhY3RpdmVQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eSA9IG51bGxwdHI7Cit9CisgICAgCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDIzN2Y2NDgzYzk5MmNlNmQ4MjY2MzVi
MDQyMWRjMTFiZDQ0Mjg2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmgKQEAgLTAsMCArMSwxNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRIZWFkZXJzLmg+CisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBEYXRhUmVmZXJlbmNlOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOworY2xh
c3MgUGF5bWVudDsKK2NsYXNzIFBheW1lbnRDb250YWN0OworY2xhc3MgUGF5bWVudE1lcmNoYW50
U2Vzc2lvbjsKK2NsYXNzIFBheW1lbnRNZXRob2Q7CitjbGFzcyBVUkw7Cit9CisKK09CSkNfQ0xB
U1MgTlNPYmplY3Q7CitPQkpDX0NMQVNTIE5TV2luZG93OworT0JKQ19DTEFTUyBQS1BheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlcjsKK09CSkNfQ0xBU1MgV0tQYXltZW50QXV0aG9yaXphdGlv
bkNvbnRyb2xsZXJEZWxlZ2F0ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBh
Z2VQcm94eTsKK2NsYXNzIFBheW1lbnRQcm9jZXNzOworCitjbGFzcyBQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yUHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5PiB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5KFBheW1lbnRQcm9jZXNz
Jik7CisgICAgflBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSgpOworICAgIAorICAgIHZv
aWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsKKyAgICB2b2lkIHZhbGlkYXRlTWVyY2hhbnQo
Y29uc3QgV2ViQ29yZTo6VVJMJik7CisgICAgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0
IFdlYkNvcmU6OlBheW1lbnQmKTsKKyAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNv
bnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZCYpOworICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnRDb250YWN0Jik7CisgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdl
YkNvcmU6OlBheW1lbnRNZXRob2QmKTsKKyAgICAKKyAgICB2b2lkIGhpZGVQYXltZW50VUkoKTsK
KyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwor
ICAgIAorcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OworICAgIAorICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCBhdmFpbGFibGVQYXlt
ZW50TmV0d29ya3MoVmVjdG9yPFN0cmluZz4mKTsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50cyhi
b29sJiByZXBseSk7CisgICAgdm9pZCBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25z
dCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1
aW50NjRfdCByZXF1ZXN0SUQpOworICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJp
bmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50NjRf
dCByZXF1ZXN0SUQpOworICAgIHZvaWQgc2hvd1BheW1lbnRVSShjb25zdCBTdHJpbmcmIG9yaWdp
bmF0aW5nVVJMU3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGlua0ljb25VUkxTdHJpbmdz
LCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYsIGJvb2wmIHJl
c3VsdCk7CisgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3Jl
OjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0
aG9kU2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RV
cGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25z
dCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mKTsKKyAgICB2
b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRT
ZXNzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQ+Jik7CisgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCk7CisgICAgdm9pZCBjYW5j
ZWxQYXltZW50U2Vzc2lvbigpOworICAgIAorICAgIGJvb2wgY2FuQmVnaW4oKSBjb25zdDsKKyAg
ICBib29sIGNhbkNhbmNlbCgpIGNvbnN0OworICAgIGJvb2wgY2FuQ29tcGxldGVQYXltZW50KCkg
Y29uc3Q7CisgICAgYm9vbCBjYW5BYm9ydCgpIGNvbnN0OworICAgIAorICAgIHZvaWQgZGlkUmVh
Y2hGaW5hbFN0YXRlKCk7CisgICAgCisgICAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1BdmFpbGFi
bGVQYXltZW50TmV0d29ya3MoKTsKKyAgICBib29sIHBsYXRmb3JtQ2FuTWFrZVBheW1lbnRzKCk7
CisgICAgdm9pZCBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKGNvbnN0IFN0
cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIFdURjo6
RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBwbGF0
Zm9ybU9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHBsYXRmb3JtU2hvd1BheW1lbnRVSShjb25zdCBXZWJD
b3JlOjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VVJMPiYgbGlu
a0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYs
IFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9p
ZCBwbGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1l
bnRNZXJjaGFudFNlc3Npb24mKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ01l
dGhvZFNlbGVjdGlvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9k
VXBkYXRlPiYpOworICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4m
KTsKKyAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lk
IHBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOworICAgIAorICAgIFBheW1lbnRQcm9j
ZXNzJiBtX3BheW1lbnRQcm9jZXNzOworICAgIAorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAg
ICAgICAvLyBJZGxlIC0gTm90aGluZydzIGhhcHBlbmluZy4KKyAgICAgICAgSWRsZSwKKyAgICAg
ICAgCisgICAgICAgIC8vIEFjdGl2YXRpbmcgLSBXYWl0aW5nIHRvIHNob3cgdGhlIHBheW1lbnQg
VUkuCisgICAgICAgIEFjdGl2YXRpbmcsCisgICAgICAgIAorICAgICAgICAvLyBBY3RpdmUgLSBT
aG93aW5nIHBheW1lbnQgVUkuCisgICAgICAgIEFjdGl2ZSwKKyAgICAgICAgCisgICAgICAgIC8v
IEF1dGhvcml6ZWQgLSBEaXNwYXRjaGluZyB0aGUgYXV0aG9yaXplZCBldmVudCBhbmQgd2FpdGlu
ZyBmb3IgdGhlIHBheW1lbnRTZXNzaW9uQ29tcGxldGVkIG1lc3NhZ2UuCisgICAgICAgIEF1dGhv
cml6ZWQsCisgICAgICAgIAorICAgICAgICAvLyBTaGlwcGluZ01ldGhvZFNlbGVjdGVkIC0gRGlz
cGF0Y2hpbmcgdGhlIHNoaXBwaW5nbWV0aG9kc2VsZWN0ZWQgZXZlbnQgYW5kIHdhaXRpbmcgZm9y
IGEgcmVwbHkuCisgICAgICAgIFNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQsCisgICAgICAgIAorICAg
ICAgICAvLyBTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZCAtIERpc3BhdGNoaW5nIHRoZSBzaGlwcGlu
Z2NvbnRhY3RzZWxlY3RlZCBldmVudCBhbmQgd2FpdGluZyBmb3IgYSByZXBseS4KKyAgICAgICAg
U2hpcHBpbmdDb250YWN0U2VsZWN0ZWQsCisgICAgICAgIAorICAgICAgICAvLyBQYXltZW50TWV0
aG9kU2VsZWN0ZWQgLSBEaXNwYXRjaGluZyB0aGUgcGF5bWVudG1ldGhvZHNlbGVjdGVkIGV2ZW50
IGFuZCB3YWl0aW5nIGZvciBhIHJlcGx5LgorICAgICAgICBQYXltZW50TWV0aG9kU2VsZWN0ZWQs
CisgICAgfSBtX3N0YXRlOworICAgIAorICAgIGVudW0gY2xhc3MgTWVyY2hhbnRWYWxpZGF0aW9u
U3RhdGUgeworICAgICAgICAvLyBJZGxlIC0gTm90aGluZydzIGhhcHBlbmluZy4KKyAgICAgICAg
SWRsZSwKKyAgICAgICAgCisgICAgICAgIC8vIFZhbGlkYXRpbmcgLSBEaXNwYXRjaGluZyB0aGUg
dmFsaWRhdGVtZXJjaGFudCBldmVudCBhbmQgd2FpdGluZyBmb3IgYSByZXBseS4KKyAgICAgICAg
VmFsaWRhdGluZywKKyAgICAgICAgCisgICAgICAgIC8vIFZhbGlkYXRpb25Db21wbGV0ZSAtIEEg
bWVyY2hhbnQgc2Vzc2lvbiBoYXMgYmVlbiBzZW50IGFsb25nIHRvIFBhc3NLaXQuCisgICAgICAg
IFZhbGlkYXRpb25Db21wbGV0ZQorICAgIH0gbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZTsKKyAg
ICAKKyAgICBSZXRhaW5QdHI8UEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI+IG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOworICAgIFJldGFpblB0cjxXS1BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlPiBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJv
bGxlckRlbGVnYXRlOworICAgIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICB1aW50NjRfdCBtX3No
b3dQYXltZW50VUlSZXF1ZXN0U2VlZCB7IDAgfTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IG1f
c2hlZXRXaW5kb3c7CisgICAgUmV0YWluUHRyPE5TT2JqZWN0ICo+IG1fc2hlZXRXaW5kb3dXaWxs
Q2xvc2VPYnNlcnZlcjsKKyNlbmRpZgorfTsKKyAgICAKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhNzVhY2RkMjkw
NzU5YzBhNGQ0NWNkZGE3NzNiZGU4NmIzZmFhYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDQ1IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisq
IGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyovCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkgewor
CisgICAgQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IGF2YWls
YWJsZVBheW1lbnROZXR3b3JrcykgTGVnYWN5U3luYworICAgIENhbk1ha2VQYXltZW50cygpIC0+
IChib29sIHJlc3VsdCkgTGVnYWN5U3luYworICAgIENhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVD
YXJkKFN0cmluZyBtZXJjaGFudElkZW50aWZpZXIsIFN0cmluZyBkb21haW5OYW1lLCB1aW50NjRf
dCByZXF1ZXN0SUQpCisgICAgT3BlblBheW1lbnRTZXR1cChTdHJpbmcgbWVyY2hhbnRJZGVudGlm
aWVyLCBTdHJpbmcgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKQorCisgICAgU2hvd1Bh
eW1lbnRVSShTdHJpbmcgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+IGxpbmtJ
Y29uVVJMU3RyaW5ncywgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QgcGF5
bWVudFJlcXVlc3QpIC0+IChib29sIHJlc3VsdCkgTGVnYWN5U3luYworICAgIENvbXBsZXRlTWVy
Y2hhbnRWYWxpZGF0aW9uKFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24gcGF5bWVudE1l
cmNoYW50U2Vzc2lvbikKKyAgICBDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHVwZGF0ZSkKKyAgICBDb21w
bGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBw
aW5nQ29udGFjdFVwZGF0ZT4gdXBkYXRlKQorICAgIENvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+IHVwZGF0ZSkK
KyAgICBDb21wbGV0ZVBheW1lbnRTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVu
dEF1dGhvcml6YXRpb25SZXN1bHQ+IHJlc3VsdCkKKyAgICBBYm9ydFBheW1lbnRTZXNzaW9uKCkK
KyAgICBDYW5jZWxQYXltZW50U2Vzc2lvbigpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlD
b2NvYS5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHlDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNzA3Y2ViZmEyMTc0OGY2NTQyOTIzNDc0
NGU5MTQ0YmNlZWUwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLmgKQEAgLTAsMCArMSw3
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkg
JiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50SGVh
ZGVycy5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmg+CisjaW1wb3J0IDx3
dGYvQmxvY2tQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVVJMOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eTsKKworUmV0YWluUHRyPFBLUGF5bWVudFJlcXVlc3Q+IHRvUEtQ
YXltZW50UmVxdWVzdChjb25zdCBVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdCYpOworICAgIAorfQorCitAaW50ZXJmYWNlIFdLUGF5bWVudEF1dGhvcml6
YXRpb25Db250cm9sbGVyRGVsZWdhdGUgOiBOU09iamVjdCA8UEtQYXltZW50QXV0aG9yaXphdGlv
bkNvbnRyb2xsZXJEZWxlZ2F0ZSwKKyAgICBQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
clByaXZhdGVEZWxlZ2F0ZT4geworQHBhY2thZ2UKKyAgICBXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eSogX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5OworICAgIFJl
dGFpblB0cjxOU0FycmF5PiBfcGF5bWVudFN1bW1hcnlJdGVtczsKKyAgICBSZXRhaW5QdHI8TlNB
cnJheT4gX3NoaXBwaW5nTWV0aG9kczsKKworICAgIEJsb2NrUHRyPHZvaWQoUEtQYXltZW50TWVy
Y2hhbnRTZXNzaW9uICosIE5TRXJyb3IgKik+IF9zZXNzaW9uQmxvY2s7CisKKyAgICBCT09MIF9k
aWRSZWFjaEZpbmFsU3RhdGU7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgQmxvY2tQdHI8
dm9pZChQS1BheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0ICopPiBfcGF5bWVudEF1dGhvcml6ZWRD
b21wbGV0aW9uOworICAgIEJsb2NrUHRyPHZvaWQoUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRo
b2RVcGRhdGUgKik+IF9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbjsKKyAgICBCbG9j
a1B0cjx2b2lkKFBLUGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZSAqKT4gX2RpZFNl
bGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbjsKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5bWVu
dFJlcXVlc3RTaGlwcGluZ0NvbnRhY3RVcGRhdGUgKik+IF9kaWRTZWxlY3RTaGlwcGluZ0NvbnRh
Y3RDb21wbGV0aW9uOworI2Vsc2UKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMpPiBfcGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uOworICAgIEJsb2NrUHRy
PHZvaWQoTlNBcnJheSAqKT4gX2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21wbGV0aW9uOworICAg
IEJsb2NrUHRyPHZvaWQoUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cywgTlNBcnJheSAqKT4g
X2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbjsKKyAgICBCbG9ja1B0cjx2b2lkKFBL
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMsIE5TQXJyYXkgKiwgTlNBcnJheSAqKT4gX2RpZFNl
bGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb247CisjZW5kaWYKK30KKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoUGF5bWVudENvb3JkaW5hdG9yUHJveHk6KFdlYktpdDo6UGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5Jil3ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTsKKworLSAodm9p
ZClpbnZhbGlkYXRlOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FkMWJkN2IyMDkyYTUyMTFlZGE3MTY1YzZmNDQ4NWJm
ZmZkMDE3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EubW0KQEAgLTAsMCArMSw2OTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkg
JiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgorI2ltcG9ydCA8V2Vi
Q29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYXlt
ZW50SGVhZGVycy5oPgorI2ltcG9ydCA8V2ViQ29yZS9VUkwuaD4KKyNpbXBvcnQgPHBhbC9jb2Nv
YS9QYXNzS2l0U29mdExpbmsuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KKworI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTMwMCkKK1NPRlRfTElOS19GUkFN
RVdPUksoQ29udGFjdHMpCitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRk
cmVzc1N0cmVldEtleSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMs
IENOUG9zdGFsQWRkcmVzc1N1YkxvY2FsaXR5S2V5LCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19D
T05TVEFOVChDb250YWN0cywgQ05Qb3N0YWxBZGRyZXNzQ2l0eUtleSwgTlNTdHJpbmcgKik7CitT
T0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRkcmVzc1N1YkFkbWluaXN0cmF0
aXZlQXJlYUtleSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENO
UG9zdGFsQWRkcmVzc1N0YXRlS2V5LCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19DT05TVEFOVChD
b250YWN0cywgQ05Qb3N0YWxBZGRyZXNzUG9zdGFsQ29kZUtleSwgTlNTdHJpbmcgKik7CitTT0ZU
X0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRkcmVzc0NvdW50cnlLZXksIE5TU3Ry
aW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NJU09D
b3VudHJ5Q29kZUtleSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoUEFMOjpQYXNz
S2l0LCBQS1BheW1lbnRFcnJvckRvbWFpbiwgTlNTdHJpbmcgKik7CisjZW5kaWYKKworQGltcGxl
bWVudGF0aW9uIFdLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUKKworLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoUGF5bWVudENvb3JkaW5hdG9yUHJveHk6KFdlYktpdDo6UGF5
bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Jil3ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eQor
eworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eSA9ICZ3ZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWludmFsaWRh
dGUKK3sKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkgPSBudWxscHRyOworICAg
IGlmIChfcGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uKSB7CisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDApCisgICAgICAgIF9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24oYWRvcHROUyhbUEFMOjph
bGxvY1BLUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRJbnN0YW5jZSgpIGluaXRXaXRoU3RhdHVz
OlBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlIGVycm9yczpAWyBdXSkuZ2V0KCkp
OworI2Vsc2UKKyAgICAgICAgX3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbihQS1BheW1lbnRB
dXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZSk7CisjZW5kaWYKKyAgICAgICAgX3BheW1lbnRBdXRo
b3JpemVkQ29tcGxldGlvbiA9IG51bGxwdHI7CisgICAgfQorfQorCistICh2b2lkKXBheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlcjooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIg
Kiljb250cm9sbGVyIHdpbGxGaW5pc2hXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgoreworfQor
CistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjooUEtQYXltZW50QXV0aG9y
aXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFJlcXVlc3RNZXJjaGFudFNlc3Npb246
KHZvaWQoXikoUEtQYXltZW50TWVyY2hhbnRTZXNzaW9uICosIE5TRXJyb3IgKikpc2Vzc2lvbkJs
b2NrCit7CisgICAgQVNTRVJUKCFfc2Vzc2lvbkJsb2NrKTsKKyAgICBfc2Vzc2lvbkJsb2NrID0g
c2Vzc2lvbkJsb2NrOworCisgICAgW1BBTDo6Z2V0UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdD
b250cm9sbGVyQ2xhc3MoKSBwYXltZW50U2VydmljZXNNZXJjaGFudFVSTDpeKE5TVVJMICptZXJj
aGFudFVSTCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAg
ICAgTE9HX0VSUk9SKCJQS0Nhbk1ha2VQYXltZW50c1dpdGhNZXJjaGFudElkZW50aWZpZXJBbmRE
b21haW4gZXJyb3IgJUAiLCBlcnJvcik7CisKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgICAgIEFTU0VSVChfc2Vzc2lvbkJsb2Nr
KTsKKworICAgICAgICAgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsK
KyAgICAgICAgICAgICAgICBfc2Vzc2lvbkJsb2NrKG51bGxwdHIsIG51bGxwdHIpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgX3BheW1lbnRQ
cm9lc3NDb29yZGluYXRvclByb3h5LT52YWxpZGF0ZU1lcmNoYW50KG1lcmNoYW50VVJMKTsKKyAg
ICAgICAgfSk7CisgICAgfV07Cit9CisKK3N0YXRpYyBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QgdG9TaGlwcGluZ01ldGhvZChQS1NoaXBwaW5n
TWV0aG9kICpzaGlwcGluZ01ldGhvZCkKK3sKKyAgICBBU1NFUlQoc2hpcHBpbmdNZXRob2QpOwor
CisgICAgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kIHJlc3VsdDsKKyAgICByZXN1bHQubGFiZWwgPSBzaGlwcGluZ01ldGhvZC5sYWJlbDsKKyAg
ICByZXN1bHQuZGV0YWlsID0gc2hpcHBpbmdNZXRob2QuZGV0YWlsOworICAgIHJlc3VsdC5hbW91
bnQgPSBzaGlwcGluZ01ldGhvZC5hbW91bnQuc3RyaW5nVmFsdWU7CisgICAgcmVzdWx0LmlkZW50
aWZpZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOworCisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA+PSAxMDEzMDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy0gKHZvaWQpcGF5bWVudEF1
dGhvcml6YXRpb25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAq
KWNvbnRyb2xsZXIgZGlkQXV0aG9yaXplUGF5bWVudDooUEtQYXltZW50ICopcGF5bWVudCBoYW5k
bGVyOih2b2lkICheKShQS1BheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0ICpyZXN1bHQpKWNvbXBs
ZXRpb24KK3sKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBpZiAoIV9wYXltZW50UHJvZXNz
Q29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKGFkb3B0TlMoW1BBTDo6YWxs
b2NQS1BheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0SW5zdGFuY2UoKSBpbml0V2l0aFN0YXR1czpQ
S1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZSBlcnJvcnM6QFsgXV0pLmdldCgpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghX3BheW1lbnRBdXRob3JpemVk
Q29tcGxldGlvbik7CisgICAgX3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbiA9IGNvbXBsZXRp
b247CisKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZEF1dGhvcml6ZVBh
eW1lbnQoV2ViQ29yZTo6UGF5bWVudChwYXltZW50KSk7CisjZW5kaWYKK30KKworLSAodm9pZClw
YXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxlY3RQYXltZW50TWV0aG9kOihQS1BheW1lbnRNZXRo
b2QgKilwYXltZW50TWV0aG9kIGhhbmRsZXI6KHZvaWQgKF4pKFBLUGF5bWVudFJlcXVlc3RQYXlt
ZW50TWV0aG9kVXBkYXRlICp1cGRhdGUpKWNvbXBsZXRpb24KK3sKKyNpZiAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEx
MDAwMCkKKyAgICBpZiAoIV9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgeworICAgICAg
ICBjb21wbGV0aW9uKGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1l
dGhvZFVwZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOkBbIF1dKS5n
ZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIV9kaWRTZWxlY3RQ
YXltZW50TWV0aG9kQ29tcGxldGlvbik7CisgICAgX2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21w
bGV0aW9uID0gY29tcGxldGlvbjsKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkt
PmRpZFNlbGVjdFBheW1lbnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZChwYXltZW50TWV0
aG9kKSk7CisjZW5kaWYKK30KKworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxl
Y3RTaGlwcGluZ01ldGhvZDooUEtTaGlwcGluZ01ldGhvZCAqKXNoaXBwaW5nTWV0aG9kIGhhbmRs
ZXI6KHZvaWQgKF4pKFBLUGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZSAqdXBkYXRl
KSljb21wbGV0aW9uIHsKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBpZiAoIV9wYXltZW50
UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKGFkb3B0TlMoW1BB
TDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGlu
aXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpAWyBdXSkuZ2V0KCkpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgQVNTRVJUKCFfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9u
KTsKKyAgICBfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uID0gY29tcGxldGlvbjsK
KyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFNoaXBwaW5nTWV0
aG9kKHRvU2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpKTsKKyNlbmRpZgorfQorCistICh2
b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjooUEtQYXltZW50QXV0aG9yaXphdGlv
bkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdDooUEtDb250
YWN0ICopY29udGFjdCBoYW5kbGVyOih2b2lkICheKShQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdD
b250YWN0VXBkYXRlICp1cGRhdGUpKWNvbXBsZXRpb24KK3sKKyNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAw
MCkKKyAgICBpZiAoIV9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBj
b21wbGV0aW9uKGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250
YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczpAWyBdIHBheW1lbnRTdW1tYXJ5SXRl
bXM6QFsgXSBzaGlwcGluZ01ldGhvZHM6QFsgXV0pLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIEFTU0VSVCghX2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb24p
OworICAgIF9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uID0gY29tcGxldGlvbjsK
KyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFNoaXBwaW5nQ29u
dGFjdChXZWJDb3JlOjpQYXltZW50Q29udGFjdChjb250YWN0KSk7CisjZW5kaWYKK30KKworI2Vu
ZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEIDwgMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPCAxMTAwMDApCisKKy0gKHZvaWQpcGF5bWVudEF1dGhvcml6YXRp
b25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAqKWNvbnRyb2xs
ZXIgZGlkQXV0aG9yaXplUGF5bWVudDooUEtQYXltZW50ICopcGF5bWVudCBjb21wbGV0aW9uOih2
b2lkICheKShQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKSljb21wbGV0aW9uCit7CisgICAg
aWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgY29tcGxldGlv
bihQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBBU1NFUlQoIV9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24pOworICAg
IF9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24gPSBjb21wbGV0aW9uOworCisgICAgX3BheW1l
bnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRBdXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBh
eW1lbnQocGF5bWVudCkpOworfQorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJv
bGxlcjooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNl
bGVjdFNoaXBwaW5nTWV0aG9kOihQS1NoaXBwaW5nTWV0aG9kICopc2hpcHBpbmdNZXRob2QgY29t
cGxldGlvbjoodm9pZCAoXikoUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyBzdGF0dXMsIE5T
QXJyYXk8UEtQYXltZW50U3VtbWFyeUl0ZW0gKj4gKnN1bW1hcnlJdGVtcykpY29tcGxldGlvbgor
eworICAgIGlmICghX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5KSB7CisgICAgICAgIGNv
bXBsZXRpb24oUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0ZhaWx1cmUsIEBbIF0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKCFfZGlkU2VsZWN0U2hpcHBpbmdNZXRo
b2RDb21wbGV0aW9uKTsKKyAgICBfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uID0g
Y29tcGxldGlvbjsKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKHRvU2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpKTsKK30KKwor
LSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6
YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxlY3RQYXltZW50TWV0aG9kOihQS1Bh
eW1lbnRNZXRob2QgKilwYXltZW50TWV0aG9kIGNvbXBsZXRpb246KHZvaWQgKF4pKE5TQXJyYXk8
UEtQYXltZW50U3VtbWFyeUl0ZW0gKj4gKnN1bW1hcnlJdGVtcykpY29tcGxldGlvbgoreworICAg
IGlmICghX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5KSB7CisgICAgICAgIGNvbXBsZXRp
b24oQFsgXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIV9kaWRTZWxl
Y3RQYXltZW50TWV0aG9kQ29tcGxldGlvbik7CisgICAgX2RpZFNlbGVjdFBheW1lbnRNZXRob2RD
b21wbGV0aW9uID0gY29tcGxldGlvbjsKKworICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQ
cm94eS0+ZGlkU2VsZWN0UGF5bWVudE1ldGhvZChXZWJDb3JlOjpQYXltZW50TWV0aG9kKHBheW1l
bnRNZXRob2QpKTsKK30KKworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6
KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxlY3RT
aGlwcGluZ0NvbnRhY3Q6KFBLQ29udGFjdCAqKWNvbnRhY3QgY29tcGxldGlvbjoodm9pZCAoXiko
UEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyBzdGF0dXMsIE5TQXJyYXk8UEtTaGlwcGluZ01l
dGhvZCAqPiAqc2hpcHBpbmdNZXRob2RzLCBOU0FycmF5PFBLUGF5bWVudFN1bW1hcnlJdGVtICo+
ICpzdW1tYXJ5SXRlbXMpKWNvbXBsZXRpb24KK3sKKyAgICBpZiAoIV9wYXltZW50UHJvZXNzQ29v
cmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKFBLUGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXNGYWlsdXJlLCBAWyBdLCBAWyBdKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIEFTU0VSVCghX2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb24pOworICAgIF9k
aWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uID0gY29tcGxldGlvbjsKKyAgICBfcGF5
bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChXZWJD
b3JlOjpQYXltZW50Q29udGFjdChjb250YWN0KSk7Cit9CisKKyNlbmRpZgorCistICh2b2lkKXBh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRpZEZpbmlzaDooUEtQYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyCit7CisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nv
b3JkaW5hdG9yUHJveHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghX2RpZFJlYWNoRmlu
YWxTdGF0ZSkKKyAgICAgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRDYW5j
ZWxQYXltZW50U2Vzc2lvbigpOworCisgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5
LT5oaWRlUGF5bWVudFVJKCk7Cit9CisKK0BlbmQKKworLy8gRklYTUU6IE9uY2UgcmRhcjovL3By
b2JsZW0vMjQ0MjAwMjQgaGFzIGJlZW4gZml4ZWQsIGltcG9ydCBQS1BheW1lbnRSZXF1ZXN0X1By
aXZhdGUuaCBpbnN0ZWFkLgorQGludGVyZmFjZSBQS1BheW1lbnRSZXF1ZXN0ICgpCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmV0YWluKSBOU1VSTCAqb3JpZ2luYXRpbmdVUkw7CitAZW5kCisKK0Bp
bnRlcmZhY2UgUEtQYXltZW50UmVxdWVzdCAoKQorLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ug
aXQncyBpbiBhbiBTREsuCitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU0FycmF5ICp0
aHVtYm5haWxVUkxzOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNVUkwgKnRodW1i
bmFpbFVSTDsKKworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBleHBlY3RzTWVy
Y2hhbnRTZXNzaW9uOworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ2FuTWFrZVBheW1lbnRzKCkKK3sKKyAg
ICByZXR1cm4gW1BBTDo6Z2V0UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyQ2xh
c3MoKSBjYW5NYWtlUGF5bWVudHNdOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JQcm94eTo6cGxhdGZvcm1DYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJp
bmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisjaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMTAwMDApCisgICAgUEtDYW5NYWtlUGF5bWVudHNXaXRoTWVyY2hhbnRJZGVudGlmaWVyRG9t
YWluQW5kU291cmNlQXBwbGljYXRpb24obWVyY2hhbnRJZGVudGlmaWVyLCBkb21haW5OYW1lLCBA
IiIsIEJsb2NrUHRyPHZvaWQoQk9PTCwgTlNFcnJvciAqKT46OmZyb21DYWxsYWJsZShbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQk9PTCBjYW5NYWtlUGF5
bWVudHMsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAg
ICAgICAgICAgTE9HX0VSUk9SKCJQS0Nhbk1ha2VQYXltZW50c1dpdGhNZXJjaGFudElkZW50aWZp
ZXJBbmREb21haW4gZXJyb3IgJUAiLCBlcnJvcik7CisKKyAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBjYW5NYWtlUGF5bWVudHNdIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNhbk1h
a2VQYXltZW50cyk7CisgICAgICAgIH0pOworICAgIH0pLmdldCgpKTsKKyNlbHNlCisgICAgUEtD
YW5NYWtlUGF5bWVudHNXaXRoTWVyY2hhbnRJZGVudGlmaWVyQW5kRG9tYWluKG1lcmNoYW50SWRl
bnRpZmllciwgZG9tYWluTmFtZSwgQmxvY2tQdHI8dm9pZChCT09MLCBOU0Vycm9yICopPjo6ZnJv
bUNhbGxhYmxlKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShCT09MIGNhbk1ha2VQYXltZW50cywgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAg
ICBpZiAoZXJyb3IpCisgICAgICAgICAgICBMT0dfRVJST1IoIlBLQ2FuTWFrZVBheW1lbnRzV2l0
aE1lcmNoYW50SWRlbnRpZmllckFuZERvbWFpbiBlcnJvciAlQCIsIGVycm9yKTsKKworICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIGNhbk1ha2VQYXltZW50c10geworICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoY2FuTWFrZVBheW1lbnRzKTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCkp
OworI2VuZGlmCit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpwbGF0
Zm9ybU9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcGFzc0xpYnJhcnkgPSBhZG9wdE5TKFtQQUw6OmFs
bG9jUEtQYXNzTGlicmFyeUluc3RhbmNlKCkgaW5pdF0pOworICAgIFtwYXNzTGlicmFyeSBvcGVu
UGF5bWVudFNldHVwRm9yTWVyY2hhbnRJZGVudGlmaWVyOm1lcmNoYW50SWRlbnRpZmllciBkb21h
aW46ZG9tYWluTmFtZSBjb21wbGV0aW9uOkJsb2NrUHRyPHZvaWQoQk9PTCk+Ojpmcm9tQ2FsbGFi
bGUoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKEJPT0wg
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCByZXN1bHRdIHsKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CisgICAgICAgIH0pOworICAgIH0p
LmdldCgpXTsKK30KKworc3RhdGljIFBLUGF5bWVudFN1bW1hcnlJdGVtVHlwZSB0b1BLUGF5bWVu
dFN1bW1hcnlJdGVtVHlwZShXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
TGluZUl0ZW06OlR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFdl
YkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbTo6VHlwZTo6Rmlu
YWw6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRTdW1tYXJ5SXRlbVR5cGVGaW5hbDsKKworICAg
IGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkxpbmVJdGVtOjpU
eXBlOjpQZW5kaW5nOgorICAgICAgICByZXR1cm4gUEtQYXltZW50U3VtbWFyeUl0ZW1UeXBlUGVu
ZGluZzsKKyAgICB9Cit9CisKK3N0YXRpYyBOU0RlY2ltYWxOdW1iZXIgKnRvRGVjaW1hbE51bWJl
cihjb25zdCBTdHJpbmcmIGFtb3VudCkKK3sKKyAgICBpZiAoIWFtb3VudCkKKyAgICAgICAgcmV0
dXJuIFtOU0RlY2ltYWxOdW1iZXIgemVyb107CisgICAgcmV0dXJuIFtOU0RlY2ltYWxOdW1iZXIg
ZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6YW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxT
ZXBhcmF0b3IgOiBAIi4iIH1dOworfQorCitzdGF0aWMgUmV0YWluUHRyPFBLUGF5bWVudFN1bW1h
cnlJdGVtPiB0b1BLUGF5bWVudFN1bW1hcnlJdGVtKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbSYgbGluZUl0ZW0pCit7CisgICAgcmV0dXJuIFtQ
QUw6OmdldFBLUGF5bWVudFN1bW1hcnlJdGVtQ2xhc3MoKSBzdW1tYXJ5SXRlbVdpdGhMYWJlbDps
aW5lSXRlbS5sYWJlbCBhbW91bnQ6dG9EZWNpbWFsTnVtYmVyKGxpbmVJdGVtLmFtb3VudCkgdHlw
ZTp0b1BLUGF5bWVudFN1bW1hcnlJdGVtVHlwZShsaW5lSXRlbS50eXBlKV07Cit9CisKK3N0YXRp
YyBSZXRhaW5QdHI8TlNBcnJheT4gdG9QS1BheW1lbnRTdW1tYXJ5SXRlbXMoY29uc3QgV2ViQ29y
ZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zJiB0b3Rh
bEFuZExpbmVJdGVtcykKK3sKKyAgICBhdXRvIHBheW1lbnRTdW1tYXJ5SXRlbXMgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKGF1dG8mIGxpbmVJdGVt
IDogdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zKSB7CisgICAgICAgIGlmIChhdXRvIHN1bW1h
cnlJdGVtID0gdG9QS1BheW1lbnRTdW1tYXJ5SXRlbShsaW5lSXRlbSkpCisgICAgICAgICAgICBb
cGF5bWVudFN1bW1hcnlJdGVtcyBhZGRPYmplY3Q6c3VtbWFyeUl0ZW0uZ2V0KCldOworICAgIH0K
KworICAgIGlmIChhdXRvIHRvdGFsSXRlbSA9IHRvUEtQYXltZW50U3VtbWFyeUl0ZW0odG90YWxB
bmRMaW5lSXRlbXMudG90YWwpKQorICAgICAgICBbcGF5bWVudFN1bW1hcnlJdGVtcyBhZGRPYmpl
Y3Q6dG90YWxJdGVtLmdldCgpXTsKKworICAgIHJldHVybiBwYXltZW50U3VtbWFyeUl0ZW1zOwor
fQorCitzdGF0aWMgUmV0YWluUHRyPFBLU2hpcHBpbmdNZXRob2Q+IHRvUEtTaGlwcGluZ01ldGhv
ZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdN
ZXRob2QmIHNoaXBwaW5nTWV0aG9kKQoreworICAgIFJldGFpblB0cjxQS1NoaXBwaW5nTWV0aG9k
PiByZXN1bHQgPSBbUEFMOjpnZXRQS1NoaXBwaW5nTWV0aG9kQ2xhc3MoKSBzdW1tYXJ5SXRlbVdp
dGhMYWJlbDpzaGlwcGluZ01ldGhvZC5sYWJlbCBhbW91bnQ6dG9EZWNpbWFsTnVtYmVyKHNoaXBw
aW5nTWV0aG9kLmFtb3VudCldOworICAgIFtyZXN1bHQgc2V0SWRlbnRpZmllcjpzaGlwcGluZ01l
dGhvZC5pZGVudGlmaWVyXTsKKyAgICBbcmVzdWx0IHNldERldGFpbDpzaGlwcGluZ01ldGhvZC5k
ZXRhaWxdOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworUmV0YWluUHRyPFBLUGF5bWVudFJl
cXVlc3Q+IHRvUEtQYXltZW50UmVxdWVzdChjb25zdCBXZWJDb3JlOjpVUkwmIG9yaWdpbmF0aW5n
VVJMLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcGF5bWVudFJlcXVlc3QpCit7Cisg
ICAgYXV0byByZXN1bHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdEluc3Rh
bmNlKCkgaW5pdF0pOworICAgIAorICAgIFtyZXN1bHQgc2V0T3JpZ2luYXRpbmdVUkw6b3JpZ2lu
YXRpbmdVUkxdOworICAgIAorICAgIGlmIChbcmVzdWx0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Ioc2V0VGh1bWJuYWlsVVJMczopXSkgeworICAgICAgICBhdXRvIHRodW1ibmFpbFVSTHMg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgZm9yIChh
dXRvJiBsaW5rSWNvblVSTCA6IGxpbmtJY29uVVJMcykKKyAgICAgICAgICAgIFt0aHVtYm5haWxV
UkxzIGFkZE9iamVjdDpzdGF0aWNfY2FzdDxOU1VSTCAqPihsaW5rSWNvblVSTCldOworICAgICAg
ICAKKyAgICAgICAgW3Jlc3VsdCBzZXRUaHVtYm5haWxVUkxzOnRodW1ibmFpbFVSTHMuZ2V0KCld
OworICAgIH0gZWxzZSBpZiAoIWxpbmtJY29uVVJMcy5pc0VtcHR5KCkpCisgICAgICAgIFtyZXN1
bHQgc2V0VGh1bWJuYWlsVVJMOmxpbmtJY29uVVJMc1swXV07CisgICAgCisjaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTMwNCkgfHwgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBbcmVzdWx0IHNldEFQSVR5cGU6dG9BUElUeXBlKHBheW1lbnRSZXF1ZXN0LnJl
cXVlc3RlcigpKV07CisjZW5kaWYKKyAgICAKKyAgICBbcmVzdWx0IHNldENvdW50cnlDb2RlOnBh
eW1lbnRSZXF1ZXN0LmNvdW50cnlDb2RlKCldOworICAgIFtyZXN1bHQgc2V0Q3VycmVuY3lDb2Rl
OnBheW1lbnRSZXF1ZXN0LmN1cnJlbmN5Q29kZSgpXTsKKyAgICBbcmVzdWx0IHNldEJpbGxpbmdD
b250YWN0OnBheW1lbnRSZXF1ZXN0LmJpbGxpbmdDb250YWN0KCkucGtDb250YWN0KCldOworICAg
IFtyZXN1bHQgc2V0U2hpcHBpbmdDb250YWN0OnBheW1lbnRSZXF1ZXN0LnNoaXBwaW5nQ29udGFj
dCgpLnBrQ29udGFjdCgpXTsKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBbcmVzdWx0IHNl
dFJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHM6dG9QS0NvbnRhY3RGaWVsZHMocGF5bWVudFJl
cXVlc3QucmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkcygpKS5nZXQoKV07CisgICAgW3Jlc3Vs
dCBzZXRSZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkczp0b1BLQ29udGFjdEZpZWxkcyhwYXlt
ZW50UmVxdWVzdC5yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkcygpKS5nZXQoKV07CisjZWxz
ZQorICAgIFtyZXN1bHQgc2V0UmVxdWlyZWRCaWxsaW5nQWRkcmVzc0ZpZWxkczp0b1BLQWRkcmVz
c0ZpZWxkKHBheW1lbnRSZXF1ZXN0LnJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHMoKSldOwor
ICAgIFtyZXN1bHQgc2V0UmVxdWlyZWRTaGlwcGluZ0FkZHJlc3NGaWVsZHM6dG9QS0FkZHJlc3NG
aWVsZChwYXltZW50UmVxdWVzdC5yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkcygpKV07Cisj
ZW5kaWYKKyAgICAKKyAgICBbcmVzdWx0IHNldFN1cHBvcnRlZE5ldHdvcmtzOnRvU3VwcG9ydGVk
TmV0d29ya3MocGF5bWVudFJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MoKSkuZ2V0KCldOworICAg
IFtyZXN1bHQgc2V0TWVyY2hhbnRDYXBhYmlsaXRpZXM6dG9QS01lcmNoYW50Q2FwYWJpbGl0aWVz
KHBheW1lbnRSZXF1ZXN0Lm1lcmNoYW50Q2FwYWJpbGl0aWVzKCkpXTsKKyAgICAKKyAgICBbcmVz
dWx0IHNldFNoaXBwaW5nVHlwZTp0b1BLU2hpcHBpbmdUeXBlKHBheW1lbnRSZXF1ZXN0LnNoaXBw
aW5nVHlwZSgpKV07CisgICAgCisgICAgYXV0byBzaGlwcGluZ01ldGhvZHMgPSBhZG9wdE5TKFtb
TlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKGF1dG8mIHNoaXBwaW5nTWV0
aG9kIDogcGF5bWVudFJlcXVlc3Quc2hpcHBpbmdNZXRob2RzKCkpCisgICAgICAgIFtzaGlwcGlu
Z01ldGhvZHMgYWRkT2JqZWN0OnRvUEtTaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhvZCkuZ2V0
KCldOworICAgIFtyZXN1bHQgc2V0U2hpcHBpbmdNZXRob2RzOnNoaXBwaW5nTWV0aG9kcy5nZXQo
KV07CisgICAgCisgICAgYXV0byBwYXltZW50U3VtbWFyeUl0ZW1zID0gYWRvcHROUyhbW05TTXV0
YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChhdXRvJiBsaW5lSXRlbSA6IHBheW1l
bnRSZXF1ZXN0LmxpbmVJdGVtcygpKSB7CisgICAgICAgIGlmIChhdXRvIHN1bW1hcnlJdGVtID0g
dG9QS1BheW1lbnRTdW1tYXJ5SXRlbShsaW5lSXRlbSkpCisgICAgICAgICAgICBbcGF5bWVudFN1
bW1hcnlJdGVtcyBhZGRPYmplY3Q6c3VtbWFyeUl0ZW0uZ2V0KCldOworICAgIH0KKyAgICAKKyAg
ICBpZiAoYXV0byB0b3RhbEl0ZW0gPSB0b1BLUGF5bWVudFN1bW1hcnlJdGVtKHBheW1lbnRSZXF1
ZXN0LnRvdGFsKCkpKQorICAgICAgICBbcGF5bWVudFN1bW1hcnlJdGVtcyBhZGRPYmplY3Q6dG90
YWxJdGVtLmdldCgpXTsKKyAgICAKKyAgICBbcmVzdWx0IHNldFBheW1lbnRTdW1tYXJ5SXRlbXM6
cGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKV07CisgICAgCisgICAgW3Jlc3VsdCBzZXRFeHBlY3Rz
TWVyY2hhbnRTZXNzaW9uOllFU107CisgICAgCisgICAgaWYgKCFwYXltZW50UmVxdWVzdC5hcHBs
aWNhdGlvbkRhdGEoKS5pc051bGwoKSkgeworICAgICAgICBhdXRvIGFwcGxpY2F0aW9uRGF0YSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzpwYXlt
ZW50UmVxdWVzdC5hcHBsaWNhdGlvbkRhdGEoKSBvcHRpb25zOjBdKTsKKyAgICAgICAgW3Jlc3Vs
dCBzZXRBcHBsaWNhdGlvbkRhdGE6YXBwbGljYXRpb25EYXRhLmdldCgpXTsKKyAgICB9CisgICAg
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgW3Jlc3VsdCBzZXRTdXBwb3J0ZWRDb3VudHJp
ZXM6dG9OU1NldChwYXltZW50UmVxdWVzdC5zdXBwb3J0ZWRDb3VudHJpZXMoKSkuZ2V0KCldOwor
I2VuZGlmCisgICAgCisgICAgLy8gVE9ETzogc2V0IHByaW1hcnkgYW5kIHNlY29uZGFyeSBhcHBs
aWNhdGlvbiBidW5kbGUgaWRlbnRpZmllciBoZXJlCisgICAgLy8gbGlrZSBhbmFsb2dvdXMgZnVu
Y3Rpb24gaW4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQorICAgIAorICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKK3N0YXRpYyBQS1BheW1l
bnRBdXRob3JpemF0aW9uU3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhXZWJD
b3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyBzdGF0dXMpCit7CisgICAgc3dpdGNoIChz
dGF0dXMpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpT
dWNjZXNzOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nl
c3M7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVy
ZToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOwor
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTlJlcXVpcmVk
OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1BJTlJlcXVpcmVk
OworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTkluY29y
cmVjdDoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5JbmNv
cnJlY3Q7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6UElO
TG9ja291dDoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5M
b2Nrb3V0OworICAgIH0KK30KKworc3RhdGljIFBLUGF5bWVudEVycm9yQ29kZSB0b1BLUGF5bWVu
dEVycm9yQ29kZShXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGUgY29kZSkKK3sKKyAgICBzd2l0
Y2ggKGNvZGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93
bjoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudFVua25vd25FcnJvcjsKKyAgICBjYXNlIFdlYkNv
cmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZDoKKyAgICAgICAg
cmV0dXJuIFBLUGF5bWVudFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcjsKKyAgICBjYXNlIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlkOgorICAgICAg
ICByZXR1cm4gUEtQYXltZW50QmlsbGluZ0NvbnRhY3RJbnZhbGlkRXJyb3I7CisgICAgY2FzZSBX
ZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkFkZHJlc3NVbnNlcnZpY2VhYmxlOgorICAgICAg
ICByZXR1cm4gUEtQYXltZW50U2hpcHBpbmdBZGRyZXNzVW5zZXJ2aWNlYWJsZUVycm9yOworICAg
IH0KK30KKworc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiB0b05TRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UGF5bWVudEVycm9yJiBlcnJvcikKK3sKKyAgICBhdXRvIHVzZXJJbmZvID0gYWRvcHROUyhb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICBbdXNlckluZm8gc2V0T2Jq
ZWN0OmVycm9yLm1lc3NhZ2UgZm9yS2V5Ok5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXldOworCisg
ICAgaWYgKGVycm9yLmNvbnRhY3RGaWVsZCkgeworICAgICAgICBOU1N0cmluZyAqcGtDb250YWN0
RmllbGQgPSBuaWw7CisgICAgICAgIE5TU3RyaW5nICpwb3N0YWxBZGRyZXNzS2V5ID0gbmlsOwor
CisgICAgICAgIHN3aXRjaCAoKmVycm9yLmNvbnRhY3RGaWVsZCkgeworICAgICAgICBjYXNlIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQaG9uZU51bWJlcjoKKyAgICAgICAg
ICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBob25l
TnVtYmVyKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3M6CisgICAgICAgICAgICBwa0Nv
bnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRFbWFpbEFkZHJlc3Mo
KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ6Ok5hbWU6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBB
TDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGROYW1lKCk7CisgICAgICAgICAgICBicmVhazsK
KworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQaG9u
ZXRpY05hbWU6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRf
UEtDb250YWN0RmllbGRQaG9uZXRpY05hbWUoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJl
c3M6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250
YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBj
YXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXM6Cisg
ICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0Rmll
bGRQb3N0YWxBZGRyZXNzKCk7CisgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Q
b3N0YWxBZGRyZXNzU3RyZWV0S2V5KCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBj
YXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eToKKyAg
ICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVs
ZFBvc3RhbEFkZHJlc3MoKTsKKyAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBv
c3RhbEFkZHJlc3NTdWJMb2NhbGl0eUtleSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6TG9jYWxpdHk6Cisg
ICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0Rmll
bGRQb3N0YWxBZGRyZXNzKCk7CisgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Q
b3N0YWxBZGRyZXNzQ2l0eUtleSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZToKKyAgICAg
ICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBv
c3RhbEFkZHJlc3MoKTsKKyAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3Rh
bEFkZHJlc3NQb3N0YWxDb2RlS2V5KCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBj
YXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJBZG1pbmlzdHJhdGl2
ZUFyZWE6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtD
b250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CisgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5
ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViQWRtaW5pc3RyYXRpdmVBcmVhS2V5KCk7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFj
dEZpZWxkOjpBZG1pbmlzdHJhdGl2ZUFyZWE6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9
IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CisgICAgICAg
ICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3RhdGVLZXkoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpD
b250YWN0RmllbGQ6OkNvdW50cnk6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6
Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CisgICAgICAgICAgICBw
b3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ291bnRyeUtleSgpOworICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRh
Y3RGaWVsZDo6Q291bnRyeUNvZGU6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6
Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CisgICAgICAgICAgICBw
b3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzSVNPQ291bnRyeUNvZGVLZXkoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgW3VzZXJJbmZvIHNldE9i
amVjdDpwa0NvbnRhY3RGaWVsZCBmb3JLZXk6UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJv
ckNvbnRhY3RGaWVsZFVzZXJJbmZvS2V5KCldOworICAgICAgICBpZiAocG9zdGFsQWRkcmVzc0tl
eSkKKyAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6cG9zdGFsQWRkcmVzc0tleSBmb3JL
ZXk6UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvclBvc3RhbEFkZHJlc3NVc2VySW5mb0tl
eSgpXTsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRX
aXRoRG9tYWluOmdldFBLUGF5bWVudEVycm9yRG9tYWluKCkgY29kZTp0b1BLUGF5bWVudEVycm9y
Q29kZShlcnJvci5jb2RlKSB1c2VySW5mbzp1c2VySW5mby5nZXQoKV0pOworfQorCitzdGF0aWMg
UmV0YWluUHRyPE5TQXJyYXk+IHRvTlNFcnJvcnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBheW1l
bnRFcnJvcj4mIGVycm9ycykKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF0pOworCisgICAgZm9yIChhdXRvIGVycm9yIDogZXJyb3JzKSB7
CisgICAgICAgIGlmIChhdXRvIG5zRXJyb3IgPSB0b05TRXJyb3IoZXJyb3IpKQorICAgICAgICAg
ICAgW3Jlc3VsdCBhZGRPYmplY3Q6bnNFcnJvci5nZXQoKV07CisgICAgfQorCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKyNlbHNlCitzdGF0aWMgUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyB0
b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkKK3sKKyAgICBpZiAoIXJlc3Vs
dCkKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNTdWNjZXNzOwor
CisgICAgaWYgKHJlc3VsdC0+ZXJyb3JzLnNpemUoKSA9PSAxKSB7CisgICAgICAgIGF1dG8mIGVy
cm9yID0gcmVzdWx0LT5lcnJvcnNbMF07CisgICAgICAgIHN3aXRjaCAoZXJyb3IuY29kZSkgewor
ICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93bjoKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkFkZHJlc3NVbnNlcnZpY2VhYmxl
OgorICAgICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJl
OworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpCaWxsaW5nQ29u
dGFjdEludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0
YXR1c0ludmFsaWRCaWxsaW5nUG9zdGFsQWRkcmVzczsKKworICAgICAgICBjYXNlIFdlYkNvcmU6
OlBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZDoKKyAgICAgICAgICAg
IGlmIChlcnJvci5jb250YWN0RmllbGQgJiYgZXJyb3IuY29udGFjdEZpZWxkID09IFdlYkNvcmU6
OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzKQorICAgICAgICAgICAg
ICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzSW52YWxpZFNoaXBwaW5nUG9z
dGFsQWRkcmVzczsKKworICAgICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXNJbnZhbGlkU2hpcHBpbmdDb250YWN0OworICAgICAgICB9CisgICAgfQorCisgICAgc3dp
dGNoIChyZXN1bHQtPnN0YXR1cykgeworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXM6OlN1Y2Nlc3M6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzU3VjY2VzczsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzOjpGYWlsdXJlOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0
YXR1c0ZhaWx1cmU7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1
czo6UElOUmVxdWlyZWQ6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3Rh
dHVzUElOUmVxdWlyZWQ7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0
YXR1czo6UElOSW5jb3JyZWN0OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1c1BJTkluY29ycmVjdDsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzOjpQSU5Mb2Nrb3V0OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1c1BJTkxvY2tvdXQ7CisgICAgfQorCisgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhv
cml6YXRpb25TdGF0dXNGYWlsdXJlOworfQorI2VuZGlmCisKK3ZvaWQgUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkK
K3sKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIpOworICAgIEFT
U0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlKTsKKworICAgIG1f
cGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRSZWFjaEZpbmFsU3Rh
dGUgPSBXZWJDb3JlOjppc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKKworI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAo
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTEwMDAwKQorICAgIGF1dG8gc3RhdHVzID0gcmVzdWx0ID8gcmVzdWx0LT5zdGF0dXMgOiBX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6U3VjY2VzczsKKyAgICBhdXRvIHBr
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50
QXV0aG9yaXphdGlvblJlc3VsdEluc3RhbmNlKCkgaW5pdFdpdGhTdGF0dXM6dG9QS1BheW1lbnRB
dXRob3JpemF0aW9uU3RhdHVzKHN0YXR1cykgZXJyb3JzOnJlc3VsdCA/IHRvTlNFcnJvcnMocmVz
dWx0LT5lcnJvcnMpLmdldCgpIDogQFsgXV0pOworICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25D
b250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24ocGtQYXltZW50
QXV0aG9yaXphdGlvblJlc3VsdC5nZXQoKSk7CisjZWxzZQorICAgIG1fcGF5bWVudEF1dGhvcml6
YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24odG9Q
S1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKHJlc3VsdCkpOworI2VuZGlmCisgICAgbV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRBdXRob3JpemVkQ29t
cGxldGlvbiA9IG51bGxwdHI7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5OjpwbGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnRNZXJjaGFudFNlc3Npb24mIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCit7CisgICAgQVNT
RVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyKTsKKyAgICBBU1NFUlQobV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7CisKKyAgICBtX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fc2Vzc2lvbkJsb2NrKHBheW1lbnRNZXJjaGFu
dFNlc3Npb24ucGtQYXltZW50TWVyY2hhbnRTZXNzaW9uKCksIG51bGxwdHIpOworICAgIG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9zZXNzaW9uQmxvY2sgPSBudWxs
cHRyOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1D
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit7CisgICAgQVNTRVJUKG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyKTsKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7CisKKyAgICBpZiAodXBkYXRlKQorICAgICAgICBtX3Bh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVt
cyA9IHRvUEtQYXltZW50U3VtbWFyeUl0ZW1zKHVwZGF0ZS0+bmV3VG90YWxBbmRMaW5lSXRlbXMp
OworCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgYXV0byBwa1NoaXBwaW5nTWV0aG9kVXBk
YXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVw
ZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOm1fcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zLmdldCgpXSk7
CisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbihwa1NoaXBwaW5nTWV0aG9kVXBkYXRlLmdldCgpKTsK
KyNlbHNlCisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2Rp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbihQS1BheW1lbnRBdXRob3JpemF0aW9uU3Rh
dHVzU3VjY2VzcywgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3Bh
eW1lbnRTdW1tYXJ5SXRlbXMuZ2V0KCkpOworI2VuZGlmCisgICAgbV9wYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlv
biA9IG51bGxwdHI7Cit9CisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDwgMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMTAwMDApCitzdGF0aWMgUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1cyB0b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMoY29uc3Qg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRhdGUpCit7
CisgICAgaWYgKCF1cGRhdGUgfHwgdXBkYXRlLT5lcnJvcnMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nlc3M7CisKKyAgICBpZiAodXBk
YXRlLT5lcnJvcnMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgYXV0byYgZXJyb3IgPSB1cGRhdGUt
PmVycm9yc1swXTsKKyAgICAgICAgc3dpdGNoIChlcnJvci5jb2RlKSB7CisgICAgICAgIGNhc2Ug
V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpVbmtub3duOgorICAgICAgICBjYXNlIFdlYkNv
cmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QWRkcmVzc1Vuc2VydmljZWFibGU6CisgICAgICAgICAg
ICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0ZhaWx1cmU7CisKKyAgICAgICAg
Y2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZDoK
KyAgICAgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzSW52YWxpZEJp
bGxpbmdQb3N0YWxBZGRyZXNzOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkOgorICAgICAgICAgICAgaWYgKGVycm9yLmNv
bnRhY3RGaWVsZCAmJiBlcnJvci5jb250YWN0RmllbGQgPT0gV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIFBL
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNJbnZhbGlkU2hpcHBpbmdQb3N0YWxBZGRyZXNzOwor
CisgICAgICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0ludmFsaWRT
aGlwcGluZ0NvbnRhY3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1c0ZhaWx1cmU7Cit9CisjZW5kaWYKKwordm9pZCBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+
JiB1cGRhdGUpCit7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVy
KTsKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7
CisKKyAgICBpZiAodXBkYXRlKSB7CisgICAgICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zID0gdG9QS1BheW1lbnRTdW1tYXJ5
SXRlbXModXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyk7CisKKyAgICAgICAgYXV0byBzaGlw
cGluZ01ldGhvZHMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBzaGlwcGluZ01ldGhvZCA6IHVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRo
b2RzKQorICAgICAgICAgICAgW3NoaXBwaW5nTWV0aG9kcyBhZGRPYmplY3Q6dG9QS1NoaXBwaW5n
TWV0aG9kKHNoaXBwaW5nTWV0aG9kKS5nZXQoKV07CisKKyAgICAgICAgbV9wYXltZW50QXV0aG9y
aXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3NoaXBwaW5nTWV0aG9kcyA9IFdURk1vdmUoc2hp
cHBpbmdNZXRob2RzKTsKKyAgICB9CisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBhdXRv
IHBrU2hpcHBpbmdDb250YWN0VXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJl
cXVlc3RTaGlwcGluZ0NvbnRhY3RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoRXJyb3JzOnVwZGF0
ZSA/IHRvTlNFcnJvcnModXBkYXRlLT5lcnJvcnMpLmdldCgpIDogQFsgXSBwYXltZW50U3VtbWFy
eUl0ZW1zOm1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50
U3VtbWFyeUl0ZW1zLmdldCgpIHNoaXBwaW5nTWV0aG9kczptX3BheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlckRlbGVnYXRlLT5fc2hpcHBpbmdNZXRob2RzLmdldCgpXSk7CisgICAgbV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFNoaXBwaW5nQ29u
dGFjdENvbXBsZXRpb24ocGtTaGlwcGluZ0NvbnRhY3RVcGRhdGUuZ2V0KCkpOworI2Vsc2UKKyAg
ICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fZGlkU2VsZWN0U2hp
cHBpbmdDb250YWN0Q29tcGxldGlvbih0b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXModXBk
YXRlKSwgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3NoaXBwaW5n
TWV0aG9kcy5nZXQoKSwgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+
X3BheW1lbnRTdW1tYXJ5SXRlbXMuZ2V0KCkpOworI2VuZGlmCisgICAgbV9wYXltZW50QXV0aG9y
aXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBs
ZXRpb24gPSBudWxscHRyOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6cGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYgdXBkYXRlKQoreworICAgIEFTU0VS
VChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcik7CisgICAgQVNTRVJUKG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUpOworCisgICAgaWYgKHVwZGF0ZSkKKyAg
ICAgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRT
dW1tYXJ5SXRlbXMgPSB0b1BLUGF5bWVudFN1bW1hcnlJdGVtcyh1cGRhdGUtPm5ld1RvdGFsQW5k
TGluZUl0ZW1zKTsKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgIGF1dG8gcGtQYXltZW50
TWV0aG9kVXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50
TWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6bV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRTdW1tYXJ5SXRlbXMu
Z2V0KCldKTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5f
ZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBsZXRpb24ocGtQYXltZW50TWV0aG9kVXBkYXRlLmdl
dCgpKTsKKyNlbHNlCisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0
ZS0+X2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21wbGV0aW9uKG1fcGF5bWVudEF1dGhvcml6YXRp
b25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zLmdldCgpKTsKKyNlbmRp
ZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxl
Y3RQYXltZW50TWV0aG9kQ29tcGxldGlvbiA9IG51bGxwdHI7Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1BdmFpbGFibGVQYXltZW50
TmV0d29ya3MoKQoreworICAgIE5TQXJyYXk8UEtQYXltZW50TmV0d29yaz4gKmF2YWlsYWJsZU5l
dHdvcmtzID0gW1BBTDo6Z2V0UEtQYXltZW50UmVxdWVzdENsYXNzKCkgYXZhaWxhYmxlTmV0d29y
a3NdOworICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShhdmFpbGFibGVOZXR3b3Jrcy5jb3VudCk7CisgICAgZm9yIChQS1BheW1lbnRO
ZXR3b3JrIG5ldHdvcmsgaW4gYXZhaWxhYmxlTmV0d29ya3MpCisgICAgICAgIHJlc3VsdC51bmNo
ZWNrZWRBcHBlbmQobmV0d29yayk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzA4NjlmNmNhNmFkMzY5ZTZiMTNjN2Jm
MGMxMjZiOTUyNTgyZmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KQEAgLTAsMCArMSw3
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvclByb3h5LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW1wb3J0ICJB
UElVSUNsaWVudC5oIgorI2ltcG9ydCAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29j
b2EuaCIKKyNpbXBvcnQgPFBhc3NLaXQvUGFzc0tpdC5oPgorI2ltcG9ydCA8VUlLaXQvVUlWaWV3
Q29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1
cy5oPgorI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3Jt
U2hvd1BheW1lbnRVSShjb25zdCBXZWJDb3JlOjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6VVJMPiYgbGlua0ljb25VUkxTdHJpbmdzLCBjb25zdCBXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCwgV1RGOjpGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghbV9wYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXIpOworCisgICAgYXV0byBwYXltZW50UmVxdWVzdCA9IHRvUEtQ
YXltZW50UmVxdWVzdChvcmlnaW5hdGluZ1VSTCwgbGlua0ljb25VUkxTdHJpbmdzLCByZXF1ZXN0
KTsKKworICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyID0gYWRvcHROUyhbUEFM
OjphbGxvY1BLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVySW5zdGFuY2UoKSBpbml0V2l0
aFBheW1lbnRSZXF1ZXN0OnBheW1lbnRSZXF1ZXN0LmdldCgpXSk7CisgICAgaWYgKCFtX3BheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlcikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
YWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BheW1lbnRBdXRob3JpemF0
aW9uQ29udHJvbGxlckRlbGVnYXRlID0gYWRvcHROUyhbW1dLUGF5bWVudEF1dGhvcml6YXRpb25D
b250cm9sbGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoUGF5bWVudENvb3JkaW5hdG9yUHJveHk6
KnRoaXNdKTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5f
cGF5bWVudFN1bW1hcnlJdGVtcyA9IFtwYXltZW50UmVxdWVzdCBwYXltZW50U3VtbWFyeUl0ZW1z
XTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fc2hpcHBp
bmdNZXRob2RzID0gW3BheW1lbnRSZXF1ZXN0IHNoaXBwaW5nTWV0aG9kc107CisKKyAgICBbbV9w
YXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bV9wYXltZW50QXV0aG9y
aXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW21fcGF5bWVudEF1dGhvcml6
YXRpb25Db250cm9sbGVyIHNldFByaXZhdGVEZWxlZ2F0ZTptX3BheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlckRlbGVnYXRlLmdldCgpXTsKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXIgcHJlc2VudFdpdGhDb21wbGV0aW9uOiBudWxscHRyXTsKKworICAgIGNvbXBsZXRp
b25IYW5kbGVyKHRydWUpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6aGlkZVBheW1lbnRVSSgpCit7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25D
b250cm9sbGVyKTsKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZSk7CisKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgZGlzbWlz
c1dpdGhDb21wbGV0aW9uOm51bGxwdHJdOworICAgIFttX3BheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFttX3BheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlciBzZXRQcml2YXRlRGVsZWdhdGU6bmlsXTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0
aW9uQ29udHJvbGxlciA9IG51bGxwdHI7CisKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXJEZWxlZ2F0ZSBpbnZhbGlkYXRlXTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlckRlbGVnYXRlID0gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE2MTBhNTM1ZjMyNDVhNTQ4YWUxNGE0YmFm
Mzc0NDVmNWZkNTI2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisjaW5jbHVk
ZSAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQ
YXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlZjxQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKworUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlv
bklkZW50aWZpZXIsICp0aGlzKSkKK3sKKyAgICAvLyBOT1RFOiB3ZSBtdXN0IHNldCB0aGlzIHRv
IHRydWUgYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIG1heSByZS1lbnRlciB3aGVuIHNl
bmRpbmcKKyAgICAvLyBhIHN5bmMgSVBDIGFuZCB0aGlzIGlzIGEgaHVnZSBzb3VyY2Ugb2Ygc2Vj
dXJpdHkgYnVncworICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0
Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUp
OworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCitQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6flBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5l
Y3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBh
eW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit7Cisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50
UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNz
OjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICB9CisgICAgCisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBQYXltZW50UHJvY2Vzczo6c2luZ2xldG9uKCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICAgICAg
CisgICAgfQorICAgIAorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYg
dmFsaWRhdGlvblVSTFN0cmluZykKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpWYWxpZGF0ZU1lcmNoYW50KHZhbGlkYXRp
b25VUkxTdHJpbmcpLCAwKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQor
eworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OkRpZEF1dGhvcml6ZVBheW1lbnQocGF5bWVudCksIDApOworfQorCit2b2lkIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25z
dCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qm
IHNoaXBwaW5nTWV0aG9kKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBw
aW5nTWV0aG9kKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYg
c2hpcHBpbmdDb250YWN0KQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChzaGlw
cGluZ0NvbnRhY3QpLCAwKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBw
YXltZW50TWV0aG9kKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRpZFNlbGVjdFBheW1lbnRNZXRob2QocGF5bWVudE1l
dGhvZCksIDApOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRD
YW5jZWxQYXltZW50U2Vzc2lvbigpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGlkQ2FuY2VsUGF5bWVudFNlc3Npb24o
KSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNhbk1ha2VQ
YXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBib29sIGNhbk1h
a2VQYXltZW50cykKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5
KHJlcXVlc3RJRCwgY2FuTWFrZVBheW1lbnRzKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246Om9wZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRfdCByZXF1ZXN0
SUQsIGJvb2wgcmVzdWx0KQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246Ok9wZW5QYXltZW50U2V0dXBSZXBseShyZXF1ZXN0
SUQsIHJlc3VsdCksIDApOworfQorICAgIAordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIFVOVVNF
RF9QQVJBTShjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwor
ICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsKKyAgICBVTlVTRURfUEFSQU0o
bWVzc2FnZU5hbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBB
WU1FTlQoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50
UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9Q
YXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdiMzE0YTAyYTg4NjNiZDNiZGRhOTBjMWRkZmRjNmE4YmJmMTFiMDQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uPiwgcHJpdmF0ZSBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIpOworICAgIH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Cisg
ICAgCisgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVS
TFN0cmluZyk7CisgICAgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnQmKTsKKyAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworICAgIHZv
aWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0
Jik7CisgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1l
bnRNZXRob2QmKTsKKyAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7CisgICAgdm9p
ZCBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwg
Ym9vbCBjYW5NYWtlUGF5bWVudHMpOworICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cFJlcGx5KHVp
bnQ2NF90IHJlcXVlc3RJRCwgYm9vbCByZXN1bHQpOworCitwcml2YXRlOgorICAgIFBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENsb3NlKElQ
Qzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworCisgICAgLy8gSVBDOjpN
ZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlv
bigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQorICAgIHVpbnQ2NF90
IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxN2YwZDg2ODk5
NTgzODNhYTgxZGNjODJkM2NiN2Q1YzQ0NGQ4ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisj
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiB7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9pb3MvUGF5bWVudFByb2Nlc3NJT1MubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWNkYmQ1NDYzYTI5YTExY2QyNWE1YzcwNjEwYzBmMTAyOTAzMjZlNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1t
CkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlBheW1lbnRQcm9jZXNzLmgiCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisj
aWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzLmgiCisKKyNkZWZpbmUgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9j
ZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFT
RV9TQU5EQk9YSU5HCisgICAgLy8gTmVlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVz
ZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtp
dDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJX
S1dlYlZpZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJv
ZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktp
dC5QYXltZW50cyIgb2ZUeXBlOkAic2IiXSk7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXpl
U2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1ldGVycyk7CisjZW5kaWYKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAv
LyBQQVlNRU5UKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaAppbmRleCBkZjA4ZWEyOGFmOGVjYjQwNjRj
OTljN2JlMzNlNzJmZDRkOGI5NGM4Li4xYTMyZGRhZDdkMWRhNDlkNTJiNTAwZGRkZGIzOWY2NDU2
MDg5OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0ZVN5
bWJvbHNGb3JUQVBJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVT
eW1ib2xzRm9yVEFQSS5oCkBAIC0zMCw2ICszMCw3IEBAIGV4dGVybiAiQyIgewogI2VuZGlmCiAK
IC8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgYWZ0ZXIgPHJkYXI6Ly9wcm9ibGVtLzMwNzcyMDMzPiBp
cyBmaXhlZC4KK3ZvaWQgUGF5bWVudFNlcnZpY2VJbml0aWFsaXplcigpOwogdm9pZCBOZXR3b3Jr
U2VydmljZUluaXRpYWxpemVyKCk7CiB2b2lkIFBsdWdpblNlcnZpY2VJbml0aWFsaXplcigpOwog
dm9pZCBXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuUGF5
bWVudHMuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2NzJjNjg2YjE2NjdhZDk3
ZjVkZmQ3NWE0YjNhN2JkYzA2MDdiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5z
YgpAQCAtMCwwICsxLDMyIEBACis7IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCis7Cis7IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorOyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKzsgYXJlIG1ldDoK
KzsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCis7
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCis7Cis7IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKzsgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCis7IFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKzsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCis7IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKzsgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKzsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCis7IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCis7IENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCis7IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKzsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24p
KQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBvcnQgImNv
bW1vbi5zYiIpCisKKyhkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAi
IikpCisKKyhkZW55IGxzb3BlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9w
cm9jZXNzLXBheW1lbnRzLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3Byb2Nlc3MtcGF5bWVudHMtc2FuZGJveC1lbnRpdGxlbWVudHMuc2gKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzA0ZjI4MGZiODYzN2FmMTMzOTA4NThkMjQ4MGJkOTQ5ZGFjYWVhOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLXBheW1lbnRzLXNhbmRib3gtZW50
aXRsZW1lbnRzLnNoCkBAIC0wLDAgKzEsMTQgQEAKKyMhL2Jpbi9zaAorc2V0IC1lCisKK1BST0NF
U1NFRF9YQ0VOVF9GSUxFPSIke1RFTVBfRklMRV9ESVJ9LyR7RlVMTF9QUk9EVUNUX05BTUV9Lnhj
ZW50IgorCitpZiBbWyAke1dLX1BMQVRGT1JNX05BTUV9ID09ICJtYWNvc3giIF1dOyB0aGVuCisK
KyAgICBpZiBbWyAke1dLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UU30gPT0gIllFUyIgXV07
IHRoZW4KKyAgICAgICAgZWNobyAiUHJvY2Vzc2luZyByZXN0cmljdGVkIGVudGl0bGVtZW50cyBm
b3IgSW50ZXJuYWwgU0RLIjsKKworICAgICAgICBlY2hvICJBZGRpbmcgc2FuZGJveCBlbnRpdGxl
bWVudHMgZm9yIFBheW1lbnRzIHByb2Nlc3MuIjsKKyAgICAgICAgL3Vzci9saWJleGVjL1BsaXN0
QnVkZHkgLWMgIk1lcmdlIENvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlvcy5lbnRpdGxlbWVudHMi
ICIke1BST0NFU1NFRF9YQ0VOVF9GSUxFfSI7CisgICAgZmkKK2ZpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0No
aWxkUHJvY2Vzcy5oCmluZGV4IGE3MmJjOTI5ZGJkN2M3NGMyMjY2OWI4MjMxN2E2MWZmYWJkZjM3
NjkuLmRlM2U3YWE4YWQ1ZDFjMDFiZjFlODgxYjE4ZDMyOGY4NTlkMTBmN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC00OCw3ICs0OCwxMyBAQCBwdWJsaWM6CiAgICAgZW51
bSBjbGFzcyBQcm9jZXNzVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBXZWJDb250ZW50LAogICAg
ICAgICBOZXR3b3JrLAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgICAgIFBheW1l
bnQsCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgUGx1Z2luCisj
aWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAgICAgUGF5bWVudAorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25z
dCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTczNzA5NzM0MDNkNDYzNDA4ZWQ2M2JiY2Vm
NDU2M2JkMDA5OTgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBheW1lbnRQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzKCkKK3sKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8
IHNlc3Npb25JRDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zZXNzaW9u
SUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWM4NjNjMDBhOGE0MDcwMTM1
MTJjYTIzMWMwNTU4MzUxN2I5ZWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICov
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29k
ZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycygpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFQQVlNRU5UKFBBWU1FTlRfUFJP
Q0VTUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAppbmRl
eCAyY2U3MTZlNGM3MmU1ODJhYmUzMGY0ODc5ZDJjNmViOWU0OTlhOTdiLi42MmI1NDc0ZWZhYTcy
NGVhYjUyOGI0ZjY3MDE3OTFmMGNlOWFhZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
cm9jZXNzRXhlY3V0YWJsZVBhdGguaApAQCAtMzIsNSArMzIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFi
bGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQ
cm9jZXNzKCk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxl
UGF0aE9mUGF5bWVudFByb2Nlc3MoKTsKKyNlbmRpZiAvLyAhRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDU1ZWM1ZTU3NjEwMmY3ODY0OTg0N2FlM2UzNGFlM2Uz
YzJjMjRhMy4uZGUwYjEzYzNkMTUzZjM1Yzk1YjlhNzc1OGExMDYzYjAyOGI2NWY4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CkBAIC0yMDEsNiArMjAxLDcgQEAgU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCUmVzdWx0LmNwcAogCiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKIAorCiAvLyBU
T0RPOiBUaGVzZSBmaWxlcyBzaG91bGQgYmUgdW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nl
c3MyIGlzIHJlbW92ZWQuCiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcCBAbm8t
dW5pZnkKIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcCBAbm8tdW5p
ZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmMWEwNTdhNDVkYjBmYTM1Y2UxMGRjZjQxOTY5
M2VmZTgxOGE2ZGEzLi5kNDhjYWMzZWJkNmRhMDRmYzY1NGJiMmI0NDFmOWYzNGM5ZmJkMzU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xODQsNiArMTg0LDE0IEBAIFNoYXJlZC9tYWMvV2Vi
R2VzdHVyZUV2ZW50LmNwcAogU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQogU2hh
cmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQogCitQYXltZW50UHJvY2Vzcy9FbnRyeVBv
aW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNlRW50cnlQb2ludC5tbQorUGF5bWVudFBy
b2Nlc3MvaW9zL1BheW1lbnRQcm9jZXNzSU9TLm1tCitQYXltZW50UHJvY2Vzcy9QYXltZW50UHJv
Y2Vzcy5jcHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5j
cHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5SU9TLm1tCitQYXltZW50
UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQorCiBTaGFyZWQv
UGx1Z2lucy9tYWMvUGx1Z2luU2FuZGJveFByb2ZpbGUubW0KIAogU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tCkBAIC00MzksNiArNDQ3LDggQEAg
VUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQogCiBVSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuY3BwCiAK
K1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcAorCiBVSVByb2Nlc3Mv
UGx1Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFjLm1tCiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMv
UGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0KIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Q
cm9jZXNzUHJveHlNYWMubW0KQEAgLTUwOCw2ICs1MTgsOSBAQCBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQogCiBXZWJQcm9jZXNzL01lZGlhQ2FjaGUv
V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKIAorV2ViUHJvY2Vzcy9QYXltZW50cy9QYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmNwcAorV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKwogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21h
Yy9OZXRzY2FwZVBsdWdpbk1hYy5tbQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9Q
bHVnaW5Qcm94eU1hYy5tbQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAppbmRleCA1ZjFiZWU0NmI2YTY5N2M0NjMwNmU4OWRiN2RjYjJmM2FlYmY0MDkwLi5j
ZGYzYTZiNDFlZjZkZDMzOWRlMjJiOTlkMDU2MGMyZWYwMzc3ZGEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYxNiwxMSArNjE2LDQzIEBAIHZv
aWQgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3MoV0tDb250ZXh0UmVmIGNv
bnRleHQpCiAgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dCktPnRlcm1pbmF0ZVNlcnZpY2VXb3Jr
ZXJQcm9jZXNzZXMoKTsKIH0KIAordm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJvY2Vz
cyhXS0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQor
ICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7
CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwordm9pZCBXS0NvbnRleHRU
ZXJtaW5hdGVQYXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHRvSW1wbChjb250ZXh0KS0+dGVybWluYXRlUGF5bWVu
dFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
K30KKwogUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY29udGV4
dFJlZiktPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCitQcm9jZXNzSUQgV0tDb250
ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQor
eworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0
UmVmKS0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKK1Byb2Nlc3NJRCBXS0NvbnRl
eHRHZXRQYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRS
ZWYpLT5wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7Cisj
ZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK30KKwogdm9pZCBXS0NvbnRleHRBZGRT
dXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVmIGRvbWFp
blJlZiwgV0tTdHJpbmdSZWYgbmFtZVJlZiwgV0tBcnJheVJlZiBtaW1lVHlwZXNSZWYsIFdLQXJy
YXlSZWYgZXh0ZW5zaW9uc1JlZikKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggYzJkZTNhZmJj
M2U4OWNhNjQ5YzRmYTEzOGM1OTUxMTVmMzNjYjg5ZC4uYzdjYmQ2ODZiMDI2MjczYTA1NGNkMTk4
OGFhNzlhMDlkMjE1NDAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmgKQEAgLTUwLDYgKzUwLDcgQEAgdHlwZWRlZiBXS0RhdGFSZWYgKCpXS0NvbnRleHRDb3B5
V2ViQ3J5cHRvTWFzdGVyS2V5Q2FsbGJhY2spKFdLQ29udGV4dFJlZiBjb250ZXgKIAogdHlwZWRl
ZiB2b2lkICgqV0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tDb250ZXh0
UmVmIGNvbnRleHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiBXS0NvbnRleHRD
aGlsZFByb2Nlc3NEaWRDcmFzaENhbGxiYWNrIFdLQ29udGV4dE5ldHdvcmtQcm9jZXNzRGlkQ3Jh
c2hDYWxsYmFjazsKK3R5cGVkZWYgV0tDb250ZXh0Q2hpbGRQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFj
ayBXS0NvbnRleHRQYXltZW50UHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2s7CiAKIHR5cGVkZWYgc3Ry
dWN0IFdLQ29udGV4dENsaWVudEJhc2UgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCBm
OWM3ZDMyOTZlNWMwY2Q3ZjMzNjdkZTM5YTAzMWQyODNmYmU2NjY2Li4xNTEyNjM5Nzk0ZDRkZGVh
ZTY3MTVlNDRjN2FhMzNmMjNhM2I5YjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC05Miw2ICs5Miw5IEBAIFdLX0VYUE9SVCB2
b2lkIFdLQ29udGV4dFNldFVzZXNOZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYsIGJvb2wpOwog
CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyhXS0NvbnRl
eHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlU2VydmljZVdvcmtlclBy
b2Nlc3MoV0tDb250ZXh0UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZik7CisKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRl
cm1pbmF0ZVBheW1lbnRQcm9jZXNzKFdLQ29udGV4dFJlZik7CiAKIFdLX0VYUE9SVCB2b2lkIFdL
Q29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhXS0Nv
bnRleHRSZWYsIGJvb2wpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyVGVzdGluZyhXS0NvbnRleHRSZWYsIGJvb2wpOwpA
QCAtMTEyLDYgKzExNSw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxp
c3QoV0tDb250ZXh0UmVmLCBXS0FycmF5UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFBy
ZWNvbm5lY3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJM
KTsKIAogV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRl
bnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tD
b250ZXh0R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBkb21haW4sIFdLU3RyaW5nUmVmIG5hbWUsIFdLQXJyYXlS
ZWYgbWltZVR5cGVzLCBXS0FycmF5UmVmIGV4dGVuc2lvbnMpOwogV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0Q2xlYXJTdXBwb3J0ZWRQbHVnaW5zKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5k
ZXggYTE4MzgxYWIzNWE5N2RiYTJmYzNmYWI2NzMyMGI0MzIyNzY0ZDc4NS4uOWU3MGM2MDRiYjk5
YmZkNDhlYTQwMGUyYTE1ODE5ODZiMWUwYzQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQyNiw2ICs0MjYsMTMgQEAg
LSAodm9pZClfY2xlYXJTdXBwb3J0ZWRQbHVnaW5zCiAgICAgX3Byb2Nlc3NQb29sLT5jbGVhclN1
cHBvcnRlZFBsdWdpbnMoKTsKIH0KIAorLSAodm9pZClfdGVybWluYXRlUGF5bWVudFByb2Nlc3MK
K3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIF9wcm9jZXNzUG9vbC0+dGVybWlu
YXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKK30KKwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKIHsKICAgICBf
cHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC00NDYsNiArNDUzLDE1
IEBAIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIKICAgICByZXR1cm4gX3Byb2Nl
c3NQb29sLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAorLSAocGlkX3QpX3BheW1l
bnRQcm9jZXNzSWRlbnRpZmllcgoreworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAg
cmV0dXJuIF9wcm9jZXNzUG9vbC0+cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQor
ICAgIHJldHVybiAwOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIC0g
KHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnN5
bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggM2RlMmMwMzYy
YmYzNWU2N2IwNDM0YzFlZjhiYzgzZDYwNmExNGMzNi4uNjJkODM1N2FmNmM2Yjg2ZDBjOGY0ZDc1
MTU5Zjk3NWUxMWQ2ZTFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTg1LDEyICs4NSwxNCBAQAog
LSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1l
RGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3
ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCistICh2b2lkKV90ZXJtaW5hdGVQYXlt
ZW50UHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVy
bWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJt
aW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsK
IAogLy8gVGVzdCBvbmx5LgogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChwaWRfdClfcGF5bWVu
dFByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3ND
b3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eUNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9j
b2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgKaW5kZXggYzRkNzlmZTRjMTJj
OWFiODU0ZmJiZDQyNTEzYjc4NTM4MzA3MmFlNy4uN2RiYTVmNTRiYWM2N2MyNjdjMTE3MTc3Nzlk
NmE2NzBmMzc3OWMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQ
YXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
Q29jb2EuaApAQCAtMzEsMTEgKzMxLDE1IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1Bhc3NL
aXRTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBVUkw7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5
OwogY2xhc3MgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk7CiAKLVJldGFpblB0cjxQS1BheW1l
bnRSZXF1ZXN0PiB0b1BLUGF5bWVudFJlcXVlc3QoV2ViUGFnZVByb3h5JiwgY29uc3QgVVJMJiBv
cmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKK1JldGFpblB0cjxQS1BheW1l
bnRSZXF1ZXN0PiB0b1BLUGF5bWVudFJlcXVlc3QoY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQppbmRleCBhNjc1ZWJkZWE5NzUxMDVlZDRi
OWVhMmJjNTA3MDFkNmFhMWI0MDhkLi5kMTJjYjQ2OWYyNjcyOTA2NDNlYzlmYWU5NzE1ZWQ4Yzlh
NGYzZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2Nv
YS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2Eu
bW0KQEAgLTQ0MSw4ICs0NDEsOCBAQCBzdGF0aWMgUEtQYXltZW50UmVxdWVzdEFQSVR5cGUgdG9B
UElUeXBlKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OgogICAgIH0KIH0K
ICNlbmRpZgotCi1SZXRhaW5QdHI8UEtQYXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1ZXN0
KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBjb25zdCBVUkwmIG9yaWdpbmF0aW5nVVJMLCBj
b25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCYgcGF5bWVudFJlcXVlc3QpCisgICAgCitSZXRhaW5QdHI8UEtQ
YXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1ZXN0KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVBy
b3h5LCBjb25zdCBXZWJDb3JlOjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdCYgcGF5bWVudFJlcXVlc3QpCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9w
dE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdEluc3RhbmNlKCkgaW5pdF0pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmlu
ZGV4IGUwN2RiYTI3MmEyZTE1YmU4MjlkZTIzNGM1ZGQ1MGQ1NzM4ZTFhMGMuLjE0YTM5ZmE4Y2U3
NWE1OWMzMWExODY4M2RjYWQwNjUxODBkZjNkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC01OCw2ICs1OCw5IEBAIHB1
YmxpYzoKICAgICAgICAgUGx1Z2luNjQsCiAjZW5kaWYKICAgICAgICAgTmV0d29yaywKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50LAorI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAgICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJv
Y2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDZjYmFjMjVkNzg0YzBlZWVhNThhNjg0YWI0Njg0NDVh
ZTJlMzkyNjIuLjg0Njc2NDU3OWU2MTk2ZjcwZmQwNDdmNDNkYWZiOWM2ZDk0ZDE2NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQpAQCAtNjIsNiArNjIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNl
cnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0
aW8KICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjY0OgogICAg
ICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0IjsKICNlbmRpZgorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NU
eXBlOjpQYXltZW50OgorICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMi
OworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJv
eHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc0OWFlOWJiMTRmNTc3NjFlOTQ1Yzg2ODBkYTY3NGFiMTA4M2E2
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9Q
YXltZW50UHJvY2Vzc1Byb3h5LmNwcApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc1Byb3h5LmgiCisKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bC5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorCisjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NI
RUNLX0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0aW9uKCkpCisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1BheW1lbnRQcm9jZXNzUHJveHk6OlBheW1lbnRQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQorICAgIDogQ2hpbGRQcm9j
ZXNzUHJveHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkpCisg
ICAgLCBtX3Byb2Nlc3NQb29sKHByb2Nlc3NQb29sKQorICAgICwgbV9udW1QZW5kaW5nQ29ubmVj
dGlvblJlcXVlc3RzKDApCit7CisgICAgY29ubmVjdCgpOworfQorCitQYXltZW50UHJvY2Vzc1By
b3h5Ojp+UGF5bWVudFByb2Nlc3NQcm94eSgpCit7CisgICAgZm9yIChhdXRvJiByZXBseSA6IG1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzKQorICAgICAgICByZXBseSh7IH0pOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZUZvclRlc3RpbmcoKQoreworICAgIHRlcm1p
bmF0ZSgpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92
ZShyZXBseSkpOworICAgIAorICAgIGlmIChzdGF0ZSgpICE9IFN0YXRlOjpSdW5uaW5nKSB7Cisg
ICAgICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cysrOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIAorICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGF5
bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCksIDApOwor
Cit9CisgICAgCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJv
Y2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5j
aE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpQYXlt
ZW50OworICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlv
bnMpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24o
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVj
dGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQoreworICAgIGF1dG8g
cHJvdGVjdGVkUHJvY2Vzc1Bvb2wgPSBtYWtlUmVmKG1fcHJvY2Vzc1Bvb2wpOworCisgICAgLy8g
VGhlIHBheW1lbnQgcHJvY2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0ZWQsIHNvIHNlbmQg
YW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAgd2hpbGUgKCFtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXBseSA9
IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIH0KKyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91
dCB0aGlzIHBheW1lbnQgcHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4K
KyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisgICAgCit2b2lkIFBheW1lbnRQcm9j
ZXNzUHJveHk6OmRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQ
Qzo6QXR0YWNobWVudCYgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpOworICAgIAorICAgIC8vIEdyYWIgdGhl
IGZpcnN0IHBlbmRpbmcgY29ubmVjdGlvbiByZXBseS4KKyAgICBhdXRvIHJlcGx5ID0gbV9wZW5k
aW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisgICAgTUVTU0FHRV9DSEVDSyhNQUNI
X1BPUlRfVkFMSUQoY29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKSk7CisgICAgcmVwbHkoSVBD
OjpBdHRhY2htZW50KGNvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9N
T1ZFX1NFTkQpKTsKKyAgICAKK30KKyAgICAKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Y3Jl
YXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVy
LCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7ICAg
IENoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKworICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNW
YWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKKyAgICAgICAgLy8gRklYTUU6IERvIGJldHRl
ciBjbGVhbnVwIGhlcmUuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOyArK2kpCisgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbigpLCAwKTsKKworICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0
cyA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI3VuZGVmIE1FU1NBR0VfQ0hFQ0sK
KyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2JmMTMwMDQ5MTMxNDc4NmUzMjk3NmNmOGJkMDQyMzZlZmZhNTJjNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJv
eHkuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisj
aW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitjbGFz
cyBXZWJQcm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKK3N0cnVjdCBX
ZWJzaXRlRGF0YTsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBD
aGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3NQ
cm94eShXZWJQcm9jZXNzUG9vbCYpOworICAgIH5QYXltZW50UHJvY2Vzc1Byb3h5KCk7CisgICAg
CisgICAgdm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBnZXRQYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisKK3ByaXZh
dGU6CisgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcm9j
ZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworCisgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBD
OjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAg
Ly8gTWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CisgICAgdm9pZCBjcmVhdGVQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpD
bGllbnQKKyAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1Bvb2wm
IG1fcHJvY2Vzc1Bvb2w7CisKKyAgICB1bnNpZ25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVx
dWVzdHM7CisgICAgRGVxdWU8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1Bh
eW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViMGQ1
MTc3MmFhZWVjNzBlYmM2MGYzNTQ2YjhlMTI3NmY4MDY0NmMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisj
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCittZXNzYWdlcyAtPiBQYXltZW50
UHJvY2Vzc1Byb3h5IHsKKyAgICBEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisKK30KKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0Q2xpZW50LmNwcAppbmRleCBmYTQ1NzYyZWNlYmEwMTNhNmFjYTRmOTY0ZGE4NTY2Mzk3NDFk
NTc1Li5iZWM3OWI1NGNiZjZjNmVjNWVmZWZmNGE5NzU3MGY2OTliNTUzZjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApAQCAtNDYsNCArNDYsMTEg
QEAgdm9pZCBXZWJDb250ZXh0Q2xpZW50OjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdlYlByb2Nl
c3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICBtX2NsaWVudC5uZXR3b3JrUHJvY2Vzc0RpZENyYXNo
KHRvQVBJKHByb2Nlc3NQb29sKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAorI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit2b2lkIFdlYkNvbnRleHRDbGllbnQ6OnBheW1lbnRQ
cm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQoreworICAgIAorfQor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5oCmluZGV4IDgwYzMx
MTIyYzA3NzZkNGVlOGQ3NzhkNTY2ODIxMDE1MjIxNjM3ZDYuLjU5YjNhNDA3OTEwOGYyMzhmMWQ2
ZjhhYmYxYWI5ZWRjYzg0NTM5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250
ZXh0Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIGNsYXNzIFdlYkNvbnRleHRDbGllbnQgOiBw
dWJsaWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0Q2xpZW50QmFzZT4gewogcHVibGljOgogICAgIHZv
aWQgcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ2hhbmdlZChXZWJQcm9jZXNzUG9vbCopOwog
ICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9vbCopOworI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdl
YlByb2Nlc3NQb29sKik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICAK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvbnRleHRTdXBwbGVtZW50LmgKaW5kZXggZWQ1NWI0MDNkYjI5Zjk0MDA0MzhiYTMyYTYw
Yzc1ODI3NDkzNGZhNi4uMmM2YWNiYjA1Y2IwMjZhY2RhNzVjMDY3ZDFmMGQ5ZDQ1OWExMjdlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCkBA
IC0yOSw2ICsyOSwxMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9j
ZXNzUHJveHk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK2NsYXNzIFBheW1lbnRQcm9j
ZXNzUHJveHk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKwogY2xhc3MgV2Vi
UHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKQEAgLTU0LDYgKzU4LDEyIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKE5ldHdvcmtQcm9jZXNz
UHJveHkqKQogICAgIHsKICAgICB9CisgICAgCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFBheW1lbnRQcm9jZXNzUHJveHkqKQor
ICAgIHsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIFdl
YlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1Bvb2w7
IH0KICAgICB2b2lkIGNsZWFyUHJvY2Vzc1Bvb2woKSB7IG1fcHJvY2Vzc1Bvb2wgPSBudWxscHRy
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5k
ZXggMzA4YzUwNGMxMjhjYjA1YTE2YTEyYTQ4OTdiNDdjNTg2YzQ4NDUzZS4uYmNlMWY4OTZiMGZi
NjM4MTJkOTlmNTc5ZjY1MTZmM2ZhOWM2N2M4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcApAQCAtNjQ1LDcgKzY0NSw3IEBAIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtU2hvd0NlcnRpZmljYXRlKGNvbnN0IENlcnRpZmljYXRlSW5mbyYpCit2b2lkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggODI4MzBhNTNmNjE0OTRiMTIwMjBkNDgx
NTIwNzhhNWM5M2UyYTVjYS4uYzQwNGZmY2VlNzFhZWJkMTYxYWI2MWQ3MWY3NGFlNTVjZTFjNjZl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTQs
NiArNTQsOSBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2Fn
ZXMuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogI2luY2x1ZGUgIlRleHRD
aGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJv
dmlkZXIuaCIKQEAgLTMyOCw2ICszMzEsOSBAQCBXZWJQcm9jZXNzUG9vbDo6fldlYlByb2Nlc3NQ
b29sKCkKIAogICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQogICAgICAgICBtX25ldHdvcmtQcm9j
ZXNzLT5zaHV0RG93blByb2Nlc3MoKTsKKyAgICAKKyAgICBpZiAobV9wYXltZW50UHJvY2VzcykK
KyAgICAgICAgbV9wYXltZW50UHJvY2Vzcy0+c2h1dERvd25Qcm9jZXNzKCk7CiAKICNpZiBFTkFC
TEUoR0FNRVBBRCkKICAgICBpZiAoIW1fcHJvY2Vzc2VzVXNpbmdHYW1lcGFkcy5pc0VtcHR5KCkp
CkBAIC00NDIsNiArNDQ4LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZE1lbW9yeVByZXNz
dXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQogewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6Q2hpbGRQcm9jZXNzOjpEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChpc0NyaXRp
Y2FsKSk7CiAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OkNoaWxkUHJvY2Vz
czo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOworI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OkNo
aWxkUHJvY2Vzczo6RGlkUmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoaXNDcml0aWNhbCkpOwor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnNlbmRNZW1v
cnlQcmVzc3VyZUV2ZW50KGlzQ3JpdGljYWwpOwogI2VuZGlmCkBAIC02MTcsNiArNjI2LDM2IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+Z2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92ZShyZXBseSkpOwogfQog
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3Vy
ZVBheW1lbnRQcm9jZXNzKCkKK3sKKyAgICBpZiAoIW1fcGF5bWVudFByb2Nlc3MpCisgICAgICAg
IG1fcGF5bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+
KCp0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKK3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFBy
b2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFdURk1v
dmUocmVwbHkpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NDcmFz
aGVkKFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzUHJveHkpCit7CisgICAgQVNT
RVJUKG1fcGF5bWVudFByb2Nlc3MpOworICAgIEFTU0VSVChwYXltZW50UHJvY2Vzc1Byb3h5ID09
IG1fcGF5bWVudFByb2Nlc3MuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDog
bV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKKyAgICAgICAgc3VwcGxlbWVudC0+cHJvY2Vzc0RpZENs
b3NlKHBheW1lbnRQcm9jZXNzUHJveHkpOworCisgICAgbV9jbGllbnQucGF5bWVudFByb2Nlc3NE
aWRDcmFzaCh0aGlzKTsKKworICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQorICAgICAgICBt
X2F1dG9tYXRpb25TZXNzaW9uLT50ZXJtaW5hdGUoKTsKKworICAgIG1fcGF5bWVudFByb2Nlc3Mg
PSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYg
cHJveHksIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFs
PFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQpCiB7CkBAIC02OTMsNiArNzMyLDkgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGUKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
OjpsZWdhY3lQcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoKSkpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQoKSk7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKy8vICAg
ICAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ry
b3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpKTsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQ
cml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICB9CiB9CkBAIC04MDYsNiArODQ4LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzLCBXZWJzaXRlRGEKICAgICB9KTsKIAogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBlbnN1cmVQYXltZW50UHJvY2Vzcygp
OworI2VuZGlmCiAKICAgICBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7
CiAKQEAgLTEzNTQsNiArMTM5OSwyMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjphY3RpdmVQYWdl
c09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nKFByb2Nlc3NJRCBwaWQsIENvbQogICAgIH0K
ICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogfQorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCitQcm9jZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzSWRlbnRpZmllcigp
Cit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBtX3BheW1lbnRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOworfQorI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCitQcm9jZXNzSUQgV2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQ
cm9jZXNzSWRlbnRpZmllcigpCit7CisgICAgaWYgKCFtX3BheW1lbnRQcm9jZXNzKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX3BheW1lbnRQcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlz
VXNlQ29tcGxleFRleHQpCiB7CkBAIC0xNjI1LDYgKzE2ODcsMTcgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3Mp
CiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDApOwogfQorICAgIAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vz
c0ZvclRlc3RpbmcoKQoreworICAgIGlmICghbV9wYXltZW50UHJvY2VzcykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wYXltZW50UHJvY2Vzcy0+dGVybWluYXRlRm9yVGVzdGluZygpOworICAg
IG1fcGF5bWVudFByb2Nlc3MgPSBudWxscHRyOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDA2MzQz
MjQ5YmFhNzI1YWZiNmNiNDQ0YzU1MjMyNTNkMTdlMDgwYmMuLjM0NjFmYTM0Y2U3NDUxNGIxOTQ0
OTk0ODk1ZTg5ZDBhMzc0YTM4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU3RhdGlz
dGljc1JlcXVlc3QuaCIKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzUHJveHkuaCIKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQog
I2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKQEAgLTE3Myw2ICsx
NzYsMTIgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHZv
aWQgc2VuZFN5bmNUb05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlLCBVJiYgcmVwbHkpOwog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxh
dW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJvY2VzcyBvciBQYXltZW50
UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4KKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdl
KTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNzUmVs
YXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKwogICAgIHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9j
ZXNzUHJveHkqKTsKIAogICAgIC8vIERpc2Nvbm5lY3QgdGhlIHByb2Nlc3MgZnJvbSB0aGUgY29u
dGV4dC4KQEAgLTIxNyw2ICsyMjYsOSBAQCBwdWJsaWM6CiAgICAgUHJvY2Vzc0lEIG5ldHdvcmtQ
cm9jZXNzSWRlbnRpZmllcigpOwogICAgIHZvaWQgYWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9j
ZXNzRm9yVGVzdGluZyhQcm9jZXNzSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0
cmluZz4mJik+JiYpOwogICAgIGJvb2wgbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRl
c3RpbmcoY29uc3QgU3RyaW5nJik7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBQ
cm9jZXNzSUQgcGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKIAogICAgIFdlYlBhZ2VHcm91cCYgZGVmYXVsdFBhZ2VHcm91cCgpIHsg
cmV0dXJuIG1fZGVmYXVsdFBhZ2VHcm91cC5nZXQoKTsgfQogCkBAIC0yNzYsNiArMjg4LDkgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQo
Ym9vbCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKTsKKyNpZiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3NGb3JUZXN0
aW5nKCk7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB2b2lkIHRlcm1p
bmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc2VzKCk7CiAgICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlv
bkRlbGF5KCk7CkBAIC0zNDQsNiArMzU5LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwog
CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB2b2lkIGVuc3VyZVBheW1lbnRQcm9j
ZXNzKCk7CisgICAgUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3MoKSB7IHJldHVy
biBtX3BheW1lbnRQcm9jZXNzLmdldCgpOyB9CisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwYXlt
ZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVudFByb2Nlc3NQcm94eSopOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQg
ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQ
cm9jZXNzUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgc3RkOjpvcHRpb25h
bDxQQUw6OlNlc3Npb25JRD4pOwogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CkBA
IC02NDQsNiArNjY1LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2
ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNz
Q3Jhc2ggeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5
PiBtX25ldHdvcmtQcm9jZXNzOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFBheW1lbnRQcm9jZXNzUHJveHk+IG1fcGF5bWVudFByb2Nlc3M7CisjZW5k
aWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVx
dWVzdHM7CkBAIC03NDUsNiArNzY5LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkKICAgICBt
X25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAK
KyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb1BheW1lbnRQcm9jZXNzKFQmJiBtZXNzYWdlKQoreworICAg
IGlmIChtX3BheW1lbnRQcm9jZXNzICYmIG1fcGF5bWVudFByb2Nlc3MtPmNhblNlbmRNZXNzYWdl
KCkpCisgICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3Nh
Z2UpLCAwKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnNlbmRUb1BheW1lbnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkK
K3sKKyAgICBlbnN1cmVQYXltZW50UHJvY2VzcygpOworICAgIG1fcGF5bWVudFByb2Nlc3MtPnNl
bmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFQmIG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkZDU2N2Y4YjczY2MwNjRmMzZj
YWM2MmQ2ZDQ3YWRlM2M5MzY4NGMxLi42ZDc2NjI2NDMwYWYxODJhNzUwZWUzNjgxMTU0YmRkYjNk
YWZkMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTYzMSw2ICs2MzEsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKIHsKICAgICBtX3By
b2Nlc3NQb29sLT5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVw
bHkpKTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQorewor
ICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgV1RG
TW92ZShyZXBseSkpOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jc0JlaW5n
RGVidWdnZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAppbmRleCAyMzYxYWU3NzNhNzdlZmVjYmZhNTY0OWFlZTc2MmU1OTZlN2JkYTk3Li41MjlhODcw
ZmRiMzBiYmNiZDFhY2I3ZTNjNDg1MjVmYzg3OTE2YjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjkwLDYgKzI5MCw5IEBAIHByaXZhdGU6CiAjZW5k
aWYKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsK
IAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7CiAgICAgYm9v
bCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2
YTk4ZjRlOTYwNDdkYWJmMTY0YTc2MTBhODdmMmE5ZjY4NjBiNDhhLi41YTE0ODI3OTBlOTNjMmMx
NWRiNzY3NTFjZjE1MTg0ZTlkYTE4YjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw5IEBAIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAoSVBDOjpBdHRh
Y2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFs
aXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisjaWYgRU5B
QkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSAt
PiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAg
RGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDE0OTYw
ZDMzODBmZjkzZTU2NDNmMmJhOTNmYWEzZjYwY2MyYWEzNGEuLmY0MzNkZGU3NDhlNGI4Y2U2OWNi
ZmVmZWQyODViMjMzYjhmYTkxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC01OCw2ICs1OCwxMCBA
QAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgor
I2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKICNpZiBIQVZFKFNFQ19LRVlfUFJP
WFkpCiAjaW5jbHVkZSAiU2VjS2V5UHJveHlTdG9yZS5oIgogI2VuZGlmCkBAIC0xMzIsNiArMTM2
LDkgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogICAgICAgICBBU1NF
UlQobm9uRGVmYXVsdERhdGFTdG9yZXMoKS5nZXQobV9zZXNzaW9uSUQpID09IHRoaXMpOwogICAg
ICAgICBub25EZWZhdWx0RGF0YVN0b3JlcygpLnJlbW92ZShtX3Nlc3Npb25JRCk7CiAgICAgICAg
IGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xz
KCkpIHsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICAgICAgZGVzdHJveVBh
eW1lbnRQcm9jZXNzU2Vzc2lvbihwcm9jZXNzUG9vbCk7CisjZW5kaWYKICAgICAgICAgICAgIGlm
IChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQog
ICAgICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5yZW1vdmVTZXNzaW9uKG1fc2Vzc2lvbklE
KTsKICAgICAgICAgfQpAQCAtMTMxOSw2ICsxMzI2LDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmCiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRlc3Ryb3lQYXltZW50UHJv
Y2Vzc1Nlc3Npb24oV2ViUHJvY2Vzc1Bvb2wqIHBvb2wpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRf
UFJPQ0VTUykKKyAgICBwb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKCkpOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCit9CisgICAgCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZVByZXZhbGVudERv
bWFpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpCiB7CiAgICAgZm9yIChhdXRvJiBw
cm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQpAQCAtMTYyMyw2ICsxNjM3LDE5IEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNz
ZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0
YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJlY3Rv
cmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsK
KworICAgIHJldHVybiBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBlbmRp
bmdDb29raWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nv
b2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDQwZjU3NWFiYTRjMjkwZjc4YzUzMWJmYjVhOWQwNDdh
OTRkNzlkN2YuLjIyN2M0NzcyNzM4NTU3OWI4NTg4ODYzYmUxNGMwMzMxNGIwOTZjMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKQEAgLTY3LDYgKzY3LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFzcyBX
ZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBzdHJ1
Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7
CiAKQEAgLTE0OCw2ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fzc29jaWF0ZWRQcm9j
ZXNzUG9vbChXZWJQcm9jZXNzUG9vbCYpIGNvbnN0OwogCiAgICAgV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMgcGFyYW1ldGVycygpOworICAgIHZvaWQgZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vz
c2lvbihXZWJQcm9jZXNzUG9vbCopOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcGVu
ZGluZ0Nvb2tpZXMoKSBjb25zdDsKICAgICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3QgV2Vi
Q29yZTo6Q29va2llJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmZmI4Zjk1MDM2Yjg1MmI3ODU0YzQ5NGY0NDIwYmE5NThhMTI4MmQ1
Li5kZDkxODE4YjBlOTBmNWU2MDdkZTczMjYxYjBmYmUxOTlhYWMzMDc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwLDYgKzIwLDcg
QEAKIAkJCQlCQzc3Rjk1NjE2RDA0NTkxMDBGOEY3OEEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAq
LywKIAkJCQlCQzgyODQ0NjE2QjRGRjY2MDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAq
LywKIAkJCQlCQzgyODNENTE2QjRDMDFGMDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAq
LywKKwkJCQkzOUU5RUNBOTIxQjg3NjQyMDBCQTVGMTkgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAq
LywKIAkJCSk7CiAJCQluYW1lID0gQWxsOwogCQkJcHJvZHVjdE5hbWUgPSBXZWJLaXQyOwpAQCAt
ODQ5LDYgKzg1MCwxOCBAQAogCQkzN0Y5MERFMzEzNzY1NjBFMDA1MUNGNjggLyogSFRUUENvb2tp
ZUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3ku
aCAqLzsgfTsKIAkJMzdGQzE5NDcxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UuaCAqLzsgfTsKKwkJMzkzRjI1OUYyMUM4RDQ2NTAwRTRDRTg1IC8qIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5M0YyNTlEMjFDOEQ0NDAwMEU0Q0U4
NSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCTM5M0YyNUEwMjFDOEQ0NjgwMEU0Q0U4NSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzOTNGMjU5RTIxQzhENDQxMDBFNENFODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQkzOTVDREM1RjIxQkI0NUQ1MDA3NjZFNEQgLyog
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5NUNEQzVFMjFCQjQ1MzMwMDc2NkU0RCAv
KiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICovOyB9OworCQkzOTVD
REM2MTIxQkI0NkQ3MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTVDREM2
MDIxQkI0NkNEMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2VzLmgg
Ki87IH07CisJCTM5NUNEQzY0MjFCQjVFNEUwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM5NUNEQzYzMjFCQjVFMkMwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzk1Q0RDNjUyMUJCNUU1
MTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTVD
REM2MjIxQkI1RTFCMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzk1Q0RDNkQyMUM0N0I2ODAwNzY2RTREIC8qIFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBh
eW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkzOTVDREM2RTIx
QzQ3QzVFMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJ
MzlFOUVDOTcyMUI3NUVENzAwQkE1RjE5IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3
OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OworCQkzOUU5RUM5OTIxQjc1RUQ3MDBCQTVG
MTkgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2ODE1QTkxNzYzMDA4RDI2RkMgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi87IH07CisJCTM5RTlFQzlBMjFCNzVFRDcwMEJBNUYxOSAvKiBXZWJLaXQu
ZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdC5mcmFtZXdvcmsgKi87IH07CisJ
CTM5RjhFNDM2MjFCNzU0RUQwMEYyQjk2QyAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNi
IGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAy
NDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsK
IAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3
OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkz
RjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CkBAIC05MDgsNiArOTIxLDgg
QEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5Nzkx
RERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlCMTI4OEM5NUUwMEFG
RkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNCMDA3MjcxN0EgLyog
V0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxMThFOUE5MUYy
OTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUg
LyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovOyB9OworCQk1MTE4RTlBQjFGMjk1OTc3MDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUw
MEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8q
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkw
MEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVt
U2hpbUxpYnJhcnkuaCAqLzsgfTsKIAkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0
ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0g
Ki87IH07CkBAIC05NTksNiArOTc0LDcgQEAKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8q
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1
MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZD
MDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMy
OTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTdE
RDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVudFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAwODE2
NjBCIC8qIFBheW1lbnRQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAw
Rjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1l
bnUuaCAqLzsgfTsKIAkJNTE4QUNBRUExMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNw
YWNlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4QUNGMTEx
MkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThBQ0YxMDEyQjAxNUY4MDBCMDRCODMgLyog
V0tDcmVkZW50aWFsVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTY5NSw2ICsxNzExLDI3IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmlu
ZyA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNDsKIAkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBT
b3VyY2VzIjsKIAkJfTsKKwkJMzlFOUVDOTIyMUI3NUVENzAwQkE1RjE5IC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNv
bnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEUxQUMy
RTI3MjBGN0I5NEMwMEIwODk3RDsKKwkJCXJlbW90ZUluZm8gPSAiVW5sb2NrIEtleWNoYWluIjsK
KwkJfTsKKwkJMzlFOUVDOTQyMUI3NUVENzAwQkE1RjE5IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94
eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBv
cnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJ
CXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJFRjRGMDQ4NkE2
OTQwMDk4QjIxNjsKKwkJCXJlbW90ZUluZm8gPSBXZWJLaXQ7CisJCX07CisJCTM5RTlFQ0E4MjFC
ODc2NDIwMEJBNUYxOSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQ
QlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQw
MjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJ
cmVtb3RlR2xvYmFsSURTdHJpbmcgPSAzOUU5RUM5MDIxQjc1RUQ3MDBCQTVGMTk7CisJCQlyZW1v
dGVJbmZvID0gUGF5bWVudHM7CisJCX07CiAJCUJDNzdGOTU1MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQ
QlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJv
eHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJv
amVjdCBvYmplY3QgKi87CkBAIC0xODQzLDYgKzE4ODAsNyBAQAogCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDA7CiAJCQlmaWxlcyA9ICgKIAkJCQlBNzhDQ0REQjE5M0FDOUY4MDA1RUNDMjUgLyogY29t
LmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIGluIENvcHlGaWxlcyAqLywKKwkJCQkzOUY4RTQz
NjIxQjc1NEVEMDBGMkI5NkMgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBDb3B5
RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yOTg0LDYgKzMwMjIsMzAgQEAKIAkJMzdG
QzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Jyb3dzaW5nQ29udGV4
dExvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdG
QzE5NDgxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5
NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkxMzYwMjQyMTkzQzE0MzAw
NTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzkzRjI1OUQyMUM4RDQ0MDAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzOTNGMjU5RTIx
QzhENDQxMDBFNENFODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzk1
Q0RDNEIyMUJBMUZBRDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzOTVDREM0QzIxQkExRkFEMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNEYyMUJCMEIwNjAw
NzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzk1Q0RDNTAyMUJCMEIwNjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTVDREM1MTIxQkIz
MEQ3MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNTMyMUJCMzNBNjAwNzY2RTREIC8qIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RD
NUUyMUJCNDUzMzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1BheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTM5NUNEQzYwMjFCQjQ2Q0QwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1BheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkz
OTVDREM2MjIxQkI1RTFCMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTM5NUNEQzYzMjFCQjVFMkMw
MDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJMzk1Q0RDNjcyMUMxOUZFMDAwNzY2RTREIC8qIFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTVDREM2ODIxQzFE
REM5MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5SU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5SU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTVDREM2OTIxQzFEREQ0MDA3NjZFNEQgLyog
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNkEyMUMxRERFMjAwNzY2RTREIC8qIFBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5
QkQwQUY1MjFBRTIwMkUwMEUzMjQzRiAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0g
IkluZm8taU9TLnBsaXN0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzlCRDBBRjYy
MUFFMjAyRTAwRTMyNDNGIC8qIFBheW1lbnRTZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFBheW1lbnRTZXJ2aWNlRW50cnlQb2ludC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzlCRDBBRkEyMUFGNDEyQTAwRTMyNDNGIC8qIFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5QkQwQUZCMjFBRjQxMkEw
MEUzMjQzRiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5RTlFQ0EyMjFCNzVFRDcwMEJBNUYxOSAvKiBjb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzLnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gIndyYXBwZXIueHBjLXNlcnZpY2UiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnhwYzsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKKwkJMzlFOUVDQTQyMUI3Njg4QzAwQkE1RjE5IC8qIFBheW1lbnRzLWlPUy1t
aW5pbWFsc2ltdWxhdG9yLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRs
ZW1lbnRzOyBwYXRoID0gIlBheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yLmVudGl0bGVtZW50
cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5RTlFQ0E1MjFCNzY4OEMwMEJBNUYx
OSAvKiBQYXltZW50cy1pT1MuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRp
dGxlbWVudHM7IHBhdGggPSAiUGF5bWVudHMtaU9TLmVudGl0bGVtZW50cyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0
MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxMTEs
NiArMzE3Myw3IEBACiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3Bv
bnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9u
c2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAw
QzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5k
ZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVu
dUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDRGNUExMUYxOUQ3Q0YwMDRDRjgy
MSAvKiBDb29raWVTdG9yYWdlVXRpbHNDRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTA1MjM3MTFDNzNEMjJCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEw
NTIzNzIxQzczRDM3QjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMzEzMywxMiArMzE5NiwxMiBA
QAogCQk1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW1EYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBBRTBBMTMzQzE2Q0IwMDcyNzE3
QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS0ljb25EYXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94
eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTExOEU5QTIxRjI5
NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTExOEU5QTMxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNDFG
Mjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNTEx
OEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk1MTE4RTlBNjFG
Mjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1N0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKLQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3Jh
Z2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTE4RTlB
NjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGN0QzRjFF
QjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGN0Q0MDFFQjFCQ0VFMDBFNDdC
ODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGli
cmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTZWNJdGVtU2hpbUxpYnJh
cnkuaDsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE1Niw2ICszMjE5LDcgQEAKIAkJNTEyOTM1
RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxl
UGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVk
QnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODhFMTJBODgzODgwMDYyOTUz
MCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4RjEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMkY1ODkwMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkRlY2lz
aW9uTGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0
aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTMyMjYsNiArMzI5MCw4IEBACiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJNTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFBheW1lbnRQcm9j
ZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVu
dFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0RENUJE
MTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hpbS54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRl
eHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRl
eHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNUExMjdDQjg5
RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MjQ1LDYgKzMzMTEsNyBAQAogCQk1MUE1NTYwMDEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0
TWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRl
eHRNZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdF
MUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJREJSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENCOTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJREJSZXN1bHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2
aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3MjhEQzFCMUJBRDJEMDAxMDJFRUUgLyogV0tC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxQTdGMkYyMTI1QkY4MjAwMDhBRUIxRCAvKiBMb2dnaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2luZy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzA0LDYgKzMzNzEsMTEgQEAKIAkJNTFERDlGMjcxNjM2
N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTUxRTM1MUM4MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCVXRpbGl0aWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8q
IElEQlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJVdGls
aXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkExODBGNUQwQjAw
RTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQ
cm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkIxODBGNUQw
QjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZDMTgwRjVEMEIwMEU1
M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzcy5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkQxODBGNUQw
QjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTFFMzUxRkUxODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM5OTA1MUQ2RjU0
QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYxRjI5MzU1MTAwRkQzNDM3IC8qIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbTsgcGF0
aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTYxMUYyOTM1Q0QwMEZEMzQzNyAvKiBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00NDUyLDYgKzQ1MjQsNyBAQAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0
RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudFByb2Nl
c3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTNGNTlCMUFDMUFEQjYw
MDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyog
TmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDUzOSw2ICs0NjEyLDE1IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CisJCTM5RTlFQzk4MjFCNzVFRDcwMEJBNUYxOSAvKiBGcmFtZXdv
cmtzICovID0geworCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJMzlFOUVDOTkyMUI3NUVE
NzAwQkE1RjE5IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
MzlFOUVDOUEyMUI3NUVENzAwQkE1RjE5IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
KwkJfTsKIAkJNTEwMDMxRUUxMzc5Q0FDQjAwQzhERkU0IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CkBAIC00NjAxLDYgKzQ2ODMsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQlCQzgyODNCMTE2QjRCRjc3MDBBMjc4RkUgLyogY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLnhwYyAqLywKKwkJCQkzOUU5RUNBMjIxQjc1RUQ3MDBCQTVGMTkgLyog
Y29tLmFwcGxlLldlYktpdC5QYXltZW50cy54cGMgKi8sCiAJCQkJQkM4MjgzRjkxNkI0RkRERTAw
QTI3OEZFIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjMyLnhwYyAqLywKIAkJCQlCQzgyODQx
RjE2QjRGREY2MDBBMjc4RkUgLyogY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjICovLAog
CQkJCTM3MkVCQjQ2MjAxN0U2NDMwMDA4NTA2NCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQuRGV2ZWxvcG1lbnQueHBjICovLApAQCAtNDYyNiw2ICs0NzA5LDcgQEAKIAkJCQkxQTFEMjEx
NjE5MUQ5OTVDMDAwMTYxOUYgLyogcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2ggKi8s
CiAJCQkJQkMyRTZFNzQxMTQxOTZGMDAwQTYzQjFFIC8qIFBsYXRmb3JtICovLAogCQkJCTFBQURE
RjRCMTBEODJBRjAwMEQzRDYzRCAvKiBTaGFyZWQgKi8sCisJCQkJNTFGN0RDMEExODBDQzQxMTAw
MjEyQ0EzIC8qIFBheW1lbnRQcm9jZXNzICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1
QSAvKiBVSVByb2Nlc3MgKi8sCiAJCQkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlBy
b2Nlc3MgKi8sCiAJCQkJNTEwQ0M3REExNjEzOEUwMTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNz
ICovLApAQCAtNDgzMSw2ICs0OTE1LDkgQEAKIAkJCQk0MUQwRkM3RDIwRTQzQTUxMDAwNzZBRTgg
LyogTmV0d29yay1PU1gtc2FuZGJveC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNUM3QUNGRDEyMThE
RDhCRDAwNENCQjU5IC8qIE5ldHdvcmstT1NYLmVudGl0bGVtZW50cyAqLywKIAkJCQlCQzgyODNB
QjE2QjRCRUFEMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2UueGNjb25maWcgKi8sCisJCQkJMzlF
OUVDQTQyMUI3Njg4QzAwQkE1RjE5IC8qIFBheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yLmVu
dGl0bGVtZW50cyAqLywKKwkJCQkzOUU5RUNBNTIxQjc2ODhDMDBCQTVGMTkgLyogUGF5bWVudHMt
aU9TLmVudGl0bGVtZW50cyAqLywKKwkJCQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5
bWVudFNlcnZpY2UueGNjb25maWcgKi8sCiAJCQkJQTFFREQyREIxODg0Qjk2NDAwQkJGRTk4IC8q
IFBsdWdpblByb2Nlc3NTaGltLnhjY29uZmlnICovLAogCQkJCUJDODI4M0YyMTZCNEZDNTMwMEEy
NzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnICovLAogCQkJCUJDODI4M0Y0MTZCNEZD
NTMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnICovLApAQCAtNjI4NCw2ICs2
MzcxLDUyIEBACiAJCQlwYXRoID0gUmVzb3VyY2VzL21hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTM5QkQwQUYxMjFBRTIwMkUwMEUzMjQzRiAvKiBFbnRyeVBvaW50ICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOUJEMEFGMjIx
QUUyMDJFMDBFMzI0M0YgLyogaW9zICovLAorCQkJKTsKKwkJCXBhdGggPSBFbnRyeVBvaW50Owor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMzlCRDBBRjIyMUFFMjAyRTAwRTMy
NDNGIC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMzlCRDBBRjMyMUFFMjAyRTAwRTMyNDNGIC8qIFhQQ1NlcnZpY2UgKi8sCisJCQkpOworCQkJ
cGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTM5QkQwQUYz
MjFBRTIwMkUwMEUzMjQzRiAvKiBYUENTZXJ2aWNlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzOUJEMEFGNDIxQUUyMDJFMDBFMzI0M0YgLyogUGF5bWVu
dFNlcnZpY2UgKi8sCisJCQkJMzlCRDBBRjYyMUFFMjAyRTAwRTMyNDNGIC8qIFBheW1lbnRTZXJ2
aWNlRW50cnlQb2ludC5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gWFBDU2VydmljZTsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTM5QkQwQUY0MjFBRTIwMkUwMEUzMjQzRiAv
KiBQYXltZW50U2VydmljZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJMzlCRDBBRjUyMUFFMjAyRTAwRTMyNDNGIC8qIEluZm8taU9TLnBsaXN0ICovLAor
CQkJKTsKKwkJCXBhdGggPSBQYXltZW50U2VydmljZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CisJCTM5QkQwQUY5MjFBRjQxMkEwMEUzMjQzRiAvKiBQYXltZW50cyAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzk1Q0RDNEMyMUJBMUZB
RDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTM5NUNE
QzRCMjFCQTFGQUQwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmggKi8sCisJ
CQkJMzk1Q0RDNTMyMUJCMzNBNjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3Iu
bWVzc2FnZXMuaW4gKi8sCisJCQkJMzlCRDBBRkIyMUFGNDEyQTAwRTMyNDNGIC8qIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJCQkzOUJEMEFGQTIxQUY0MTJBMDBFMzI0
M0YgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKKwkJCQkzOTVDREM2NzIx
QzE5RkUwMDA3NjZFNEQgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRzOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJNDEzMDc1OTcxREU4NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NjA0LDYgKzY3MzcsMTYg
QEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1
MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBQ
YXltZW50UHJvY2Vzc1Byb3h5LmNwcCAqLywKKwkJCQk1MTdERDVCRDE4MERBN0QzMDA4MTY2MEIg
LyogUGF5bWVudFByb2Nlc3NQcm94eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0
OSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGgg
PSBQYXltZW50czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYx
MTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02NjYwLDYgKzY4MDMsMjcgQEAKIAkJCXBhdGggPSBp
b3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MUY3REMwQTE4MENDNDEx
MDAyMTJDQTMgLyogUGF5bWVudFByb2Nlc3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTM5QkQwQUYxMjFBRTIwMkUwMEUzMjQzRiAvKiBFbnRyeVBvaW50
ICovLAorCQkJCUUxRkVGMzlCMTkwRjc5MUMwMDczMTY1OCAvKiBpb3MgKi8sCisJCQkJNTFFMzUx
RkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLywKKwkJCQk1MUUzNTFG
QjE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLywKKwkJCQk1MUUzNTFGQzE4
MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJMzk1
Q0RDNTAyMUJCMEIwNjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5j
cHAgKi8sCisJCQkJMzk1Q0RDNEYyMUJCMEIwNjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eS5oICovLAorCQkJCTM5NUNEQzUxMjFCQjMwRDcwMDc2NkU0RCAvKiBQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJMzk1Q0RDNkEy
MUMxRERFMjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLmgg
Ki8sCisJCQkJMzk1Q0RDNjkyMUMxRERENDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eUNvY29hLm1tICovLAorCQkJCTM5NUNEQzY4MjFDMUREQzkwMDc2NkU0RCAvKiBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gKi8sCisJCQkJNTFFMzUxRkQxODBG
NUQwQjAwRTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKKwkJ
CQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaCAqLywKKwkJCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1lbnRQ
cm9jZXNzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTcwQUI4RjYyMEFF
ODFBQjAwQjhCRTg3IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKQEAgLTcwNjQsNiArNzIyOCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAogCQkJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtpbmcuc2IgKi8sCisJCQkJMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNv
bS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8sCiAJCQkJQTc4Q0NERDcxOTNBQzlFMzAwNUVD
QzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLywKIAkJCQlBNzhDQ0REOTE5M0FD
OUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiICovLAogCQkJKTsK
QEAgLTcxMTIsNiArNzI3Nyw3IEBACiAJCQkJNEE0MTBGNDExOUFGN0IyNzAwMkVCQUI1IC8qIE1l
ZGlhU3RyZWFtICovLAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICov
LAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAq
LywKKwkJCQkzOUJEMEFGOTIxQUY0MTJBMDBFMzI0M0YgLyogUGF5bWVudHMgKi8sCiAJCQkJMUE2
RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1
OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8q
IFVzZXJDb250ZW50ICovLApAQCAtNzI3NCw2ICs3NDQwLDcgQEAKIAkJCQlCQ0NGMDg1QzExM0Yz
Qjc1MDBDNjUwQzUgLyogbWFjICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBO
ZXR3b3JrICovLAogCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25z
ICovLAorCQkJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBQYXltZW50cyAqLywKIAkJCQkx
QUVGQ0MwNTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKIAkJCQkyRDE1NTFBOTFGNUE5
QjQyMDAwNkUzRkUgLyogUmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQUYwODlFMTkyNjgxQUMw
MEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywKQEAgLTgzNzIsNiArODUzOSwxOCBAQAogCQkJCTVD
MEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAq
LywKIAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAv
KiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggKi8sCisJCQkJMzk1Q0RDNjMyMUJC
NUUyQzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTM5NUNEQzYwMjFCQjQ2Q0QwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yTWVzc2FnZXMuaCAqLywKKwkJCQkzOTVDREM2MjIxQkI1RTFCMDA3NjZFNEQgLyog
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJ
CQkzOTVDREM1RTIxQkI0NTMzMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5TWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNF
RjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5
QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1
MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovLAor
CQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTIxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAorCQkJCTUxMThF
OUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywK
IAkJCQlDREEyOUEyNDFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBMjlBMjUxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUNEQTI5QTI2MUNCRUI2N0Ew
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLApAQCAtODQwNiwxMCArODU4NSw2IEBACiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJCQkxQUIzMUE5NDE2QkM2ODgxMDBG
NkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQjMx
QTk1MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8sCi0JCQkJ
NTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKLQkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NN
ZXNzYWdlcy5oICovLAotCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQk1MTE4RTlBMjFGMjk1OTYzMDAz
RUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJNTExOEU5QTMx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQk1MTE4RTlBNDFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJCUNENDkxQjBCMUU3MzJFNEQw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CkBAIC04NTExLDYgKzg2ODYsOCBAQAogCQkJCTUxN0E1MkQ2MUY0M0E5QjYwMERDREMwQSAvKiBX
ZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJCTUxNTI2MkJBMUZCOTUxMzEw
MDcwRTU3OSAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTUxNTI2MkJCMUZCOTUxMzEwMDcwRTU3OSAvKiBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTM5M0YyNTlEMjFDOEQ0NDAwMEU0Q0U4
NSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJMzkzRjI1OUUyMUM4RDQ0MTAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQkxQUFGMDhCNTE5MjY5RTZEMDBCNjM5MEMgLyogV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUFGMDhC
NjE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZXMuaCAq
LywKIAkJCQk3QzM2MUQ3NjE5MjgwM0JEMDAzNkE1OUQgLyogV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODY5Miw2ICs4ODY5LDE0IEBACiAJ
CQluYW1lID0gUERGOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFGRUYz
OUIxOTBGNzkxQzAwNzMxNjU4IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9j
ZXNzSU9TLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQlFNDg5RDI4MjFBMEEyQkU4MDA3OEMwNkEgLyogY2FjaGUgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTE1Niw2ICs5MzQxLDEx
IEBACiAJCQkJMUFDNzUzN0MxODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBOEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQYWdlTG9hZFN0YXRl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAv
KiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTM5NUNEQzYxMjFCQjQ2RDcw
MDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTM5NUNEQzVGMjFCQjQ1RDUwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExOEU5QTkxRjI5NTk3
NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1Byb3h5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMUUxMjNCQTIwQTExNTczMDAyNjQ2
RjQgLyogUERGQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JG
RDcwMEI2MDg3NSAvKiBQREZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDZCRjEy
NDIxQUY1NkUxMDAxRTc5QzkgLyogUGVuY2lsS2l0U29mdExpbmsuaCBpbiBIZWFkZXJzICovLApA
QCAtOTUxNSw2ICs5NzA1LDcgQEAKIAkJCQk5MzU2RjJERDIxNTJCNkY2MDBFNkQ1REYgLyogV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTJEOTFGNDNBOURB
MDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxNTI2MkJDMUZCOTUxNUQwMDcwRTU3OSAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzkzRjI1QTAyMUM4RDQ2ODAw
RTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQTBFRjdGMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3RlcC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFBRjA4QUUxOTI2OTM2NzAwQjYzOTBDIC8qIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MwNjVGMkMxQzhDRDk1RjAwQzJE
OTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CkBAIC05OTUxLDYgKzEwMTQyLDI4IEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gMzcyRUJCNDYy
MDE3RTY0MzAwMDg1MDY0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVu
dC54cGMgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1z
ZXJ2aWNlIjsKIAkJfTsKKwkJMzlFOUVDOTAyMUI3NUVENzAwQkE1RjE5IC8qIFBheW1lbnRzICov
ID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlz
dCA9IDM5RTlFQzlFMjFCNzVFRDcwMEJBNUYxOSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWE5hdGl2ZVRhcmdldCAiUGF5bWVudHMiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJ
CQkJMzlFOUVDOTUyMUI3NUVENzAwQkE1RjE5IC8qIFJlbW92ZSBzdGFsZSBlbnRpdGxlbWVudHMg
ZmlsZSAqLywKKwkJCQkzOUU5RUM5NjIxQjc1RUQ3MDBCQTVGMTkgLyogU291cmNlcyAqLywKKwkJ
CQkzOUU5RUM5ODIxQjc1RUQ3MDBCQTVGMTkgLyogRnJhbWV3b3JrcyAqLywKKwkJCQkzOUU5RUM5
QjIxQjc1RUQ3MDBCQTVGMTkgLyogUmVzb3VyY2VzICovLAorCQkJCTM5RTlFQzlDMjFCNzVFRDcw
MEJBNUYxOSAvKiBVbmxvY2sga2V5Y2hhaW4gKi8sCisJCQkJMzlFOUVDOUQyMUI3NUVENzAwQkE1
RjE5IC8qIFByb2Nlc3MgUGF5bWVudCBlbnRpdGxlbWVudHMgKi8sCisJCQkpOworCQkJYnVpbGRS
dWxlcyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMzlFOUVDOTEyMUI3NUVE
NzAwQkE1RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCisJCQkJMzlFOUVDOTMyMUI3NUVE
NzAwQkE1RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCisJCQkpOworCQkJbmFtZSA9IFBh
eW1lbnRzOworCQkJcHJvZHVjdE5hbWUgPSBQYXltZW50czsKKwkJCXByb2R1Y3RSZWZlcmVuY2Ug
PSAzOUU5RUNBMjIxQjc1RUQ3MDBCQTVGMTkgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy54
cGMgKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2
aWNlIjsKKwkJfTsKIAkJNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICov
ID0gewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlz
dCA9IDUxMDAzMUYyMTM3OUNBQ0IwMEM4REZFNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWE5hdGl2ZVRhcmdldCAiU2VjSXRlbVNoaW0iICovOwpAQCAtMTAxMzEsNiArMTAzNDQs
NyBAQAogCQkJCUJDM0RFNDY1MTVBOTE3NjMwMDhEMjZGQyAvKiBXZWJDb250ZW50ICovLAogCQkJ
CTM3MkVCQjM4MjAxN0U2NDMwMDA4NTA2NCAvKiBXZWJDb250ZW50LkRldmVsb3BtZW50ICovLAog
CQkJCUJDODI4M0IwMTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3JraW5nICovLAorCQkJCTM5RTlF
QzkwMjFCNzVFRDcwMEJBNUYxOSAvKiBQYXltZW50cyAqLywKIAkJCQlCQzgyODNGODE2QjRGRERF
MDBBMjc4RkUgLyogUGx1Z2luLjMyICovLAogCQkJCUJDODI4NDFFMTZCNEZERjYwMEEyNzhGRSAv
KiBQbHVnaW4uNjQgKi8sCiAJCQkJQTdBQURBMTAxOTM5NUNBOTAwM0VBMUM3IC8qIFNhbmRib3gg
UHJvZmlsZXMgKi8sCkBAIC0xMDE0OCw2ICsxMDM2MiwxMyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQkzOUU5RUM5QjIxQjc1RUQ3
MDBCQTVGMTkgLyogUmVzb3VyY2VzICovID0geworCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJ
OERDMkVGNTIwNDg2QTY5NDAwOThCMjE2IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpA
QCAtMTAzNzgsNiArMTA1OTksNDkgQEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVs
bFNjcmlwdCA9ICJpZiBbWyBcIiR7V0tfTUFOVUFMX1NBTkRCT1hJTkdfRU5BQkxFRH1cIiAhPSBc
IllFU1wiIHx8IFwiJHtXS19QTEFURk9STV9OQU1FfVwiID09IFwibWFjb3N4XCIgfHwgXCIke1dL
X1BMQVRGT1JNX05BTUV9XCIgPT0gXCJpb3NtYWNcIiBdXTsgdGhlblxuICAgIGV4aXRcbmZpXG5c
bmlmIFtbIFwiJHtBQ1RJT059XCIgPT0gXCJidWlsZFwiIHx8IFwiJHtBQ1RJT059XCIgPT0gXCJp
bnN0YWxsXCIgXV07IHRoZW5cbiAgICBmb3IgKChpID0gMDsgaSA8ICR7U0NSSVBUX0lOUFVUX0ZJ
TEVfQ09VTlR9OyArK2kpKTsgZG9cbiAgICAgICAgZXZhbCBTQU5EQk9YX1BST0ZJTEU9XFwke1ND
UklQVF9JTlBVVF9GSUxFXyR7aX19XG4gICAgICAgIGRpdHRvIFwiJHtTQU5EQk9YX1BST0ZJTEV9
XCIgXCIke1RBUkdFVF9CVUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VTX0ZPTERFUl9Q
QVRIfS8ke1NBTkRCT1hfUFJPRklMRSMjKi99XCJcbiAgICBkb25lXG5maVxuIjsKIAkJfTsKKwkJ
MzlFOUVDOTUyMUI3NUVENzAwQkE1RjE5IC8qIFJlbW92ZSBzdGFsZSBlbnRpdGxlbWVudHMgZmls
ZSAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhz
ID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiUmVtb3ZlIHN0YWxlIGVudGl0bGVtZW50cyBmaWxlIjsK
KwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0g
IiMgV2UgYXV0b2dlbmVyYXRlIHRoaXMgZmlsZSwgc28gZG9uJ3Qgd2FudCB0byByZXRhaW4gYW4g
b2xkIGNvcHkgZHVyaW5nIGJ1aWxkcy5cbnJtIC1mICR7VEVNUF9GSUxFX0RJUn0vJHtGVUxMX1BS
T0RVQ1RfTkFNRX0ueGNlbnRcbiI7CisJCX07CisJCTM5RTlFQzlDMjFCNzVFRDcwMEJBNUYxOSAv
KiBVbmxvY2sga2V5Y2hhaW4gKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhh
c2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkp
OworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIlVubG9jayBrZXljaGFpbiI7
CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9
ICJVTkxPQ0tfU0NSSVBUX1BBVEg9XCIke1NSQ1JPT1R9Ly4uLy4uLy4uL0ludGVybmFsL1Rvb2xz
L1NjcmlwdHMvdW5sb2NrLXNhZmFyaS1lbmdpbmVlcmluZy1rZXljaGFpbi1pZi1uZWVkZWRcIlxu
XG5bWyAteCBcIiR7VU5MT0NLX1NDUklQVF9QQVRIfVwiIF1dICYmIGV4ZWMgXCIke1VOTE9DS19T
Q1JJUFRfUEFUSH1cIlxuXG5leGl0IDBcbiI7CisJCX07CisJCTM5RTlFQzlEMjFCNzVFRDcwMEJB
NUYxOSAvKiBQcm9jZXNzIFBheW1lbnQgZW50aXRsZW1lbnRzICovID0geworCQkJaXNhID0gUEJY
U2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
KwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9
ICJQcm9jZXNzIFBheW1lbnQgZW50aXRsZW1lbnRzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJ
KTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIgorIjsKKwkJfTsKIAkJNDE1Nzg1Mzcy
MTI3OUNDNjAwREQzODAwIC8qIENvcHkgQ3VzdG9tIFdlYkNvbnRlbnQgUmVzb3VyY2VzIHRvIEZy
YW1ld29yayBQcml2YXRlIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1
aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTA2MzAsNiAr
MTA4OTQsNyBAQAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvY29tLmFwcGxlLldlYktpdC5Q
bHVnaW4uNjQueHBjIiwKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpLyQoV0tfU1RPUkFHRV9T
RVJWSUNFX1BST0RVQ1RfTkFNRSkueHBjIiwKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGMiLAorCQkJCSIkKEJVSUxU
X1BST0RVQ1RTX0RJUikvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy54cGMiLAogCQkJKTsKIAkJ
CW5hbWUgPSAiQ29weSBYUEMgc2VydmljZXMgZm9yIGVuZ2luZWVyaW5nIGJ1aWxkcyI7CiAJCQlv
dXRwdXRQYXRocyA9ICgKQEAgLTEwNjM5LDEwICsxMDkwNCwxMSBAQAogCQkJCSIkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2aWNlcy9jb20uYXBwbGUuV2ViS2l0
LlBsdWdpbi42NC54cGMiLAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1l
d29yay9YUENTZXJ2aWNlcy8kKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUUpLnhwYyIs
CiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJLaXQuZnJhbWV3b3JrL1hQQ1NlcnZpY2Vz
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGMiLAorCQkJCSIkKEJV
SUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2aWNlcy9jb20uYXBwbGUu
V2ViS2l0LlBheW1lbnRzLnhwYyIsCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQg
PSAiaWYgW1sgXCIke0NPTkZJR1VSQVRJT059XCIgPT0gXCJQcm9kdWN0aW9uXCIgXV07IHRoZW5c
biAgICBleGl0XG5maVxuXG5pZiBbWyAke1dLX1BMQVRGT1JNX05BTUV9ICE9IFwibWFjb3N4XCIg
XV07IHRoZW5cbiAgICBYUENfU0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9X
ZWJLaXQuZnJhbWV3b3JrL1hQQ1NlcnZpY2VzXCJcbmVsc2VcbiAgICBYUENfU0VSVklDRVNfUEFU
SD1cIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBD
U2VydmljZXNcIlxuZmlcblxubWtkaXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRIfVwiXG5kaXR0
byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBj
XCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBj
XCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtXS19TVE9SQUdFX1NF
UlZJQ0VfUFJPRFVDVF9OQU1FfS54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9LyR7V0tfU1RP
UkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCJcblxuaWYgW1sgJHtXS19QTEFURk9STV9O
QU1FfSA9PSBtYWNvc3ggXV07IHRoZW5cbiAgICBkaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElS
fS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9
L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLnhwY1wiXG4gICAgZGl0dG8gXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIke1hQQ19TRVJWSUNF
U19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZmlcbiI7CisJCQlzaGVs
bFNjcmlwdCA9ICJpZiBbWyBcIiR7Q09ORklHVVJBVElPTn1cIiA9PSBcIlByb2R1Y3Rpb25cIiBd
XTsgdGhlblxuICAgIGV4aXRcbmZpXG5cbmlmIFtbICR7V0tfUExBVEZPUk1fTkFNRX0gIT0gXCJt
YWNvc3hcIiBdXTsgdGhlblxuICAgIFhQQ19TRVJWSUNFU19QQVRIPVwiJHtCVUlMVF9QUk9EVUNU
U19ESVJ9L1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXNcIlxuZWxzZVxuICAgIFhQQ19TRVJW
SUNFU19QQVRIPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L1dlYktpdC5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9YUENTZXJ2aWNlc1wiXG5maVxubWtkaXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRIfVwi
XG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQu
TmV0d29ya2luZy54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQu
TmV0d29ya2luZy54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxl
LldlYktpdC5QYXltZW50cy54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5X
ZWJLaXQuUGF5bWVudHMueHBjXCJcblxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtX
S19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FfS54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BB
VEh9LyR7V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCJcblxuaWYgW1sgJHtX
S19QTEFURk9STV9OQU1FfSA9PSBtYWNvc3ggXV07IHRoZW5cbiAgICBkaXR0byBcIiR7QlVJTFRf
UFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGNcIiBcIiR7WFBDX1NF
UlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLnhwY1wiXG4gICAgZGl0dG8gXCIk
e0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIk
e1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZmlc
biI7CiAJCX07CiAJCUMwQ0U3Mjg0MTI0N0U2NjgwMEJDMEVDNCAvKiBHZW5lcmF0ZSBEZXJpdmVk
IFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CkBAIC0x
MDY5MSw2ICsxMDk1NywxNCBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OworCQkzOUU5RUM5NjIxQjc1RUQ3MDBCQTVGMTkgLyogU291cmNl
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTM5RTlFQzk3MjFCNzVFRDcwMEJB
NUYxOSAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1MTAwMzFFQzEzNzlD
QUNCMDBDOERGRTQgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBo
YXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTEwNzU5LDYgKzExMDMz
LDEwIEBACiAJCQkJMkQ5MTM0NDcyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZU9iamVjdE1h
cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0ODIxMkNGOUYwMDAxMjhBRkQgLyogTlBS
dW50aW1lVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzk0MjEyQjZBRDQw
MEY0OTNGRCAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM5NUNEQzY0
MjFCQjVFNEUwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM5NUNEQzY1MjFCQjVFNTEwMDc2NkU0RCAvKiBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMzk1Q0RDNkUyMUM0N0M1RTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM5NUNEQzZEMjFDNDdCNjgwMDc2
NkU0RCAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNCRUI2
N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdp
bi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTExMDQyLDYgKzExMzIwLDcgQEAKIAkJCQk1MTdBNTJE
ODFGNDNBOURBMDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkUwMjE1MkI3NTIwMEU2RDVERiAvKiBXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1MjYy
QkQxRkI5NTE2MTAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzOTNGMjU5RjIxQzhENDY1MDBFNENF
ODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3OEUyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYlRvdWNoRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjA4QjcxOTI2OUU2RDAwQjYzOTBDIC8qIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QzM2MUQ3ODE5MjgwM0JEMDAzNkE1OUQgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMTE0MCw2ICsxMTQx
OSwyMSBAQAogCQkJdGFyZ2V0ID0gQzBDRTcyODUxMjQ3RTY2ODAwQkMwRUM0IC8qIERlcml2ZWQg
U291cmNlcyAqLzsKIAkJCXRhcmdldFByb3h5ID0gMzdGNzQwNzgxMjcyMUY3NDAwOTM4NjlCIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMzlFOUVDOTEyMUI3NUVENzAwQkE1
RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OworCQkJdGFyZ2V0ID0gRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9jayBL
ZXljaGFpbiAqLzsKKwkJCXRhcmdldFByb3h5ID0gMzlFOUVDOTIyMUI3NUVENzAwQkE1RjE5IC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKwkJMzlFOUVDOTMyMUI3NUVENzAwQkE1
RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OworCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdCAq
LzsKKwkJCXRhcmdldFByb3h5ID0gMzlFOUVDOTQyMUI3NUVENzAwQkE1RjE5IC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKwkJMzlFOUVDQTkyMUI4NzY0MjAwQkE1RjE5IC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owor
CQkJdGFyZ2V0ID0gMzlFOUVDOTAyMUI3NUVENzAwQkE1RjE5IC8qIFBheW1lbnRzICovOworCQkJ
dGFyZ2V0UHJveHkgPSAzOUU5RUNBODIxQjg3NjQyMDBCQTVGMTkgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOworCQl9OwogCQlCQzc3Rjk1NjE2RDA0NTkxMDBGOEY3OEEgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJn
ZXQgPSBCQzgyODNGODE2QjRGRERFMDBBMjc4RkUgLyogUGx1Z2luLjMyICovOwpAQCAtMTEzMzQs
NiArMTE2MjgsNjMgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMzlF
OUVDOUYyMUI3NUVENzAwQkE1RjE5IC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENv
bmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxQTYwQjI5MTgw
Q0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0
dGluZ3MgPSB7CisJCQkJQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VDSF9OTyA9ICJD
b25maWd1cmF0aW9ucy9QYXltZW50cy1pT1MuZW50aXRsZW1lbnRzIjsKKwkJCQlJTkZPUExJU1Rf
RklMRSA9ICJQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRT
ZXJ2aWNlL0luZm8taU9TLnBsaXN0IjsKKwkJCQkiSU5GT1BMSVNUX0ZJTEVbc2RrPWlwaG9uZSpd
IiA9ICJQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2
aWNlL0luZm8taU9TLnBsaXN0IjsKKwkJCQkiSU5GT1BMSVNUX0ZJTEVbc2RrPW1hY29zeCpdIiA9
ICJQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNl
L0luZm8taU9TLnBsaXN0IjsKKwkJCQlQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gY29tLmFw
cGxlLldlYktpdC5QYXltZW50czsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRT
X0JBU0VfYXBwbGV0dm9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9T
X0VOVElUTEVNRU5UU19CQVNFX2FwcGxldHZzaW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsKKwkJ
CQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0VfaW9zbWFjID0gIlBheW1lbnRz
LWlPUy1taW5pbWFsc2ltdWxhdG9yIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1F
TlRTX0JBU0VfaXBob25lb3MgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9J
T1NfRU5USVRMRU1FTlRTX0JBU0VfaXBob25lc2ltdWxhdG9yID0gIlBheW1lbnRzLWlPUyI7CisJ
CQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX3dhdGNob3MgPSAiUGF5bWVu
dHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0Vfd2F0Y2hz
aW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07
CisJCTM5RTlFQ0EwMjFCNzVFRDcwMEJBNUYxOSAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUx
QTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLzsKKwkJ
CWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VD
SF9OTyA9ICJDb25maWd1cmF0aW9ucy9QYXltZW50cy1pT1MuZW50aXRsZW1lbnRzIjsKKwkJCQlJ
TkZPUExJU1RfRklMRSA9ICJQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNl
L1BheW1lbnRTZXJ2aWNlL0luZm8taU9TLnBsaXN0IjsKKwkJCQkiSU5GT1BMSVNUX0ZJTEVbc2Rr
PWlwaG9uZSpdIiA9ICJQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1Bh
eW1lbnRTZXJ2aWNlL0luZm8taU9TLnBsaXN0IjsKKwkJCQkiSU5GT1BMSVNUX0ZJTEVbc2RrPW1h
Y29zeCpdIiA9ICJQYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1l
bnRTZXJ2aWNlL0luZm8taU9TLnBsaXN0IjsKKwkJCQlQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVS
ID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50czsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5U
SVRMRU1FTlRTX0JBU0VfYXBwbGV0dm9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NF
UlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2FwcGxldHZzaW11bGF0b3IgPSAiUGF5bWVudHMt
aU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0VfaW9zbWFjID0g
IlBheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1Nf
RU5USVRMRU1FTlRTX0JBU0VfaXBob25lb3MgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENf
U0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0VfaXBob25lc2ltdWxhdG9yID0gIlBheW1lbnRz
LWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX3dhdGNob3Mg
PSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JB
U0Vfd2F0Y2hzaW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsKKwkJCX07CisJCQluYW1lID0gUmVs
ZWFzZTsKKwkJfTsKKwkJMzlFOUVDQTEyMUI3NUVENzAwQkE1RjE5IC8qIFByb2R1Y3Rpb24gKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhj
Y29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlDT0RFX1NJR05fRU5USVRMRU1F
TlRTX0NPQ09BX1RPVUNIX05PID0gIkNvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlPUy5lbnRpdGxl
bWVudHMiOworCQkJCUlORk9QTElTVF9GSUxFID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQv
aW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZP
UExJU1RfRklMRVtzZGs9aXBob25lKl0iID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9z
L1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJ
U1RfRklMRVtzZGs9bWFjb3N4Kl0iID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQ
Q1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5mby1pT1MucGxpc3QiOworCQkJCVBST0RVQ1RfQlVO
RExFX0lERU5USUZJRVIgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzOworCQkJCVdLX1hQQ19T
RVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9hcHBsZXR2b3MgPSAiUGF5bWVudHMtaU9TIjsK
KwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0VfYXBwbGV0dnNpbXVsYXRv
ciA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNf
QkFTRV9pb3NtYWMgPSAiUGF5bWVudHMtaU9TLW1pbmltYWxzaW11bGF0b3IiOworCQkJCVdLX1hQ
Q19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9pcGhvbmVvcyA9ICJQYXltZW50cy1pT1Mi
OworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9pcGhvbmVzaW11bGF0
b3IgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRT
X0JBU0Vfd2F0Y2hvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19F
TlRJVExFTUVOVFNfQkFTRV93YXRjaHNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOworCQkJfTsK
KwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1MTAwMzFGMzEzNzlDQUNCMDBDOERGRTQg
LyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gQTFFREQyREMxODg0QjlCNTAwQkJGRTk4IC8qIFNlY0l0
ZW1TaGltLnhjY29uZmlnICovOwpAQCAtMTE2MDUsNiArMTE5NTYsMTYgQEAKIAkJCWRlZmF1bHRD
b25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9
IFByb2R1Y3Rpb247CiAJCX07CisJCTM5RTlFQzlFMjFCNzVFRDcwMEJBNUYxOSAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiUGF5bWVudHMiICovID0gewor
CQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAo
CisJCQkJMzlFOUVDOUYyMUI3NUVENzAwQkE1RjE5IC8qIERlYnVnICovLAorCQkJCTM5RTlFQ0Ew
MjFCNzVFRDcwMEJBNUYxOSAvKiBSZWxlYXNlICovLAorCQkJCTM5RTlFQ0ExMjFCNzVFRDcwMEJB
NUYxOSAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNW
aXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJ
CX07CiAJCTUxMDAzMUYyMTM3OUNBQ0IwMEM4REZFNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiU2VjSXRlbVNoaW0iICovID0gewogCQkJaXNhID0gWEND
b25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFiZGE2YmViZWNlZjAxNDg3Y2Y4YmRlYjM5
NmE3M2FiYTRhNGViYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDIzNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yLmgiCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZ
TUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlBh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRDb29yZGluYXRvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIAorUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvcjo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvcihXZWJQYWdl
JiB3ZWJQYWdlKQorICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCit7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZS5wYWdlSUQoKSwgKnRo
aXMpOworfQorCitQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjp+UGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKCp0aGlzKTsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpzdXBw
b3J0c1ZlcnNpb24odW5zaWduZWQgdmVyc2lvbikKK3sKKyAgICBBU1NFUlQodmVyc2lvbiA+IDAp
OworICAgIAorI2lmICFFTkFCTEUoQVBQTEVfUEFZX1NFU1NJT05fVjMpCisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGN1cnJlbnRWZXJzaW9uID0gMjsKKyNlbGlmICFFTkFCTEUoQVBQTEVfUEFZ
X1NFU1NJT05fVjQpCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGN1cnJlbnRWZXJzaW9uID0g
MzsKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGN1cnJlbnRWZXJzaW9uID0gNTsK
KyNlbmRpZgorICAgIAorICAgIHJldHVybiB2ZXJzaW9uIDw9IGN1cnJlbnRWZXJzaW9uOworfQor
Citjb25zdCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpBdmFpbGFibGVQYXltZW50TmV0d29y
a3NTZXQmIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmF2YWlsYWJsZVBheW1lbnROZXR3b3Jr
cygpCit7CisgICAgaWYgKG1fYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKQorICAgICAgICByZXR1
cm4gKm1fYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzOworICAgIAorICAgIG1fYXZhaWxhYmxlUGF5
bWVudE5ldHdvcmtzID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6QXZhaWxhYmxlUGF5bWVu
dE5ldHdvcmtzU2V0KCk7CisgICAgCisgICAgVmVjdG9yPFN0cmluZz4gYXZhaWxhYmxlUGF5bWVu
dE5ldHdvcmtzOworICAgIHVzaW5nIEF2YWlsYWJsZVBheW1lbnROZXR3b3Jrc01lc3NhZ2UgPSBN
ZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpBdmFpbGFibGVQYXltZW50
TmV0d29ya3M7CisgICAgaWYgKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKEF2YWlsYWJsZVBh
eW1lbnROZXR3b3Jrc01lc3NhZ2UoKSwgQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzTWVzc2FnZTo6
UmVwbHkoYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKSwgMCkpIHsKKyAgICAgICAgZm9yIChhdXRv
JiBuZXR3b3JrIDogYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKQorICAgICAgICAgICAgbV9hdmFp
bGFibGVQYXltZW50TmV0d29ya3MtPmFkZChuZXR3b3JrKTsKKyAgICB9CisgICAgCisgICAgcmV0
dXJuICptX2F2YWlsYWJsZVBheW1lbnROZXR3b3JrczsKK30KKworc3RkOjpvcHRpb25hbDxTdHJp
bmc+IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OnZhbGlkYXRlZFBheW1lbnROZXR3b3JrKGNv
bnN0IFN0cmluZyYgcGF5bWVudE5ldHdvcmspCit7CisgICAgYXV0byYgcGF5bWVudE5ldHdvcmtz
ID0gYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCk7CisgICAgYXV0byByZXN1bHQgPSBwYXltZW50
TmV0d29ya3MuZmluZChwYXltZW50TmV0d29yayk7CisgICAgaWYgKHJlc3VsdCA9PSBwYXltZW50
TmV0d29ya3MuZW5kKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJu
ICpyZXN1bHQ7Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y2FuTWFrZVBh
eW1lbnRzKCkKK3sKKyAgICBib29sIGNhbk1ha2VQYXltZW50czsKKyAgICBpZiAoIVdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHk6OkNhbk1ha2VQYXltZW50cygpLCBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRv
clByb3h5OjpDYW5NYWtlUGF5bWVudHM6OlJlcGx5KGNhbk1ha2VQYXltZW50cyksIDApKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIGNhbk1ha2VQYXltZW50czsKK30K
Kworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRS
ZXBseUlEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2
ZUNhcmRSZXBseUlEOworICAgIAorICAgIHJldHVybiArK2Nhbk1ha2VQYXltZW50c1dpdGhBY3Rp
dmVDYXJkUmVwbHlJRDsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjYW5N
YWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZXBseUlEID0gZ2VuZXJhdGVDYW5NYWtl
UGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5SUQoKTsKKyAgICAKKyAgICBtX3BlbmRpbmdDYW5N
YWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZENhbGxiYWNrcy5hZGQocmVwbHlJRCwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Q2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2
ZUNhcmQobWVyY2hhbnRJZGVudGlmaWVyLCBkb21haW5OYW1lLCByZXBseUlEKSwgMCk7Cit9CisK
K3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZU9wZW5QYXltZW50U2V0dXBSZXBseUlEKCkKK3sKKyAg
ICBzdGF0aWMgdWludDY0X3Qgb3BlblBheW1lbnRTZXR1cFJlcGx5SUQ7CisgICAgCisgICAgcmV0
dXJuICsrb3BlblBheW1lbnRTZXR1cFJlcGx5SUQ7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvcjo6b3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZXBseUlEID0gZ2VuZXJhdGVPcGVu
UGF5bWVudFNldHVwUmVwbHlJRCgpOworICAgIAorICAgIG1fcGVuZGluZ09wZW5QYXltZW50U2V0
dXBDYWxsYmFja3MuYWRkKHJlcGx5SUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6Ok9wZW5QYXltZW50U2V0dXAobWVyY2hhbnRJZGVudGlmaWVyLCBkb21haW5OYW1l
LCByZXBseUlEKSwgMCk7Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6c2hv
d1BheW1lbnRVSShjb25zdCBXZWJDb3JlOjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCYgcGF5bWVudFJlcXVlc3QpCit7CisgICAgVmVjdG9yPFN0cmlu
Zz4gbGlua0ljb25VUkxTdHJpbmdzOworICAgIGZvciAoY29uc3QgYXV0byYgbGlua0ljb25VUkwg
OiBsaW5rSWNvblVSTHMpCisgICAgICAgIGxpbmtJY29uVVJMU3RyaW5ncy5hcHBlbmQobGlua0lj
b25VUkwuc3RyaW5nKCkpOworICAgIAorICAgIGJvb2wgcmVzdWx0OworICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eTo6U2hvd1BheW1lbnRVSShvcmlnaW5hdGluZ1VSTC5zdHJpbmcoKSwgbGlua0ljb25VUkxT
dHJpbmdzLCBwYXltZW50UmVxdWVzdCksIE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6OlNob3dQYXltZW50VUk6OlJlcGx5KHJlc3VsdCksIDApKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yOjpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3Jl
OjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JQcm94eTo6Q29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24ocGF5bWVudE1lcmNoYW50U2Vzc2lv
biksIDApOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhv
ZFVwZGF0ZT4mJiB1cGRhdGUpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVNoaXBwaW5nTWV0aG9k
U2VsZWN0aW9uKHVwZGF0ZSksIDApOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkNvbXBs
ZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSksIDApOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JQcm94eTo6Q29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKHVwZGF0ZSksIDApOworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24o
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJiByZXN1
bHQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVBheW1lbnRTZXNzaW9uKHJlc3VsdCksIDApOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmFib3J0UGF5bWVudFNlc3Npb24o
KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6QWJvcnRQYXltZW50U2Vzc2lvbigpLCAwKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjYW5jZWxQYXltZW50U2Vzc2lvbigpCit7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRv
clByb3h5OjpDYW5jZWxQYXltZW50U2Vzc2lvbigpLCAwKTsKK30KKwordm9pZCBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yOjpwYXltZW50Q29vcmRpbmF0b3JEZXN0cm95ZWQoKQoreworICAgIGRl
bGV0ZSB0aGlzOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OnZhbGlkYXRl
TWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKQoreworICAgIHBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3IoKS52YWxpZGF0ZU1lcmNoYW50KFdlYkNvcmU6OlVSTChXZWJD
b3JlOjpVUkwoKSwgdmFsaWRhdGlvblVSTFN0cmluZykpOworfQorCit2b2lkIFBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3I6OmRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVu
dCYgcGF5bWVudCkKK3sKKyAgICBwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkuZGlkQXV0aG9y
aXplUGF5bWVudChwYXltZW50KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
OjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQoreworICAgIHBh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKS5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZChzaGlwcGlu
Z01ldGhvZCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6ZGlkU2VsZWN0
U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBzaGlwcGluZ0Nv
bnRhY3QpCit7CisgICAgcGF5bWVudFByb2Nlc3NDb29yZGluYXRvcigpLmRpZFNlbGVjdFNoaXBw
aW5nQ29udGFjdChzaGlwcGluZ0NvbnRhY3QpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3I6OmRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgV2ViQ29yZTo6UGF5bWVudE1l
dGhvZCYgcGF5bWVudE1ldGhvZCkKK3sKKyAgICBwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCku
ZGlkU2VsZWN0UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kKTsKK30KKwordm9pZCBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yOjpkaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpCit7CisgICAgcGF5
bWVudFByb2Nlc3NDb29yZGluYXRvcigpLmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2
ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQorewor
ICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZENhbGxiYWNrcy50YWtlKHJlcXVlc3RJRCk7CisgICAgY2FsbGJhY2soY2FuTWFrZVBheW1lbnRz
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpvcGVuUGF5bWVudFNldHVw
UmVwbHkodWludDY0X3QgcmVxdWVzdElELCBib29sIHJlc3VsdCkKK3sKKyAgICBhdXRvIGNhbGxi
YWNrID0gbV9wZW5kaW5nT3BlblBheW1lbnRTZXR1cENhbGxiYWNrcy50YWtlKHJlcXVlc3RJRCk7
CisgICAgY2FsbGJhY2socmVzdWx0KTsKK30KKworV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9y
JiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkK
K3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLmNvcmVQYWdlKCktPnBheW1lbnRDb29yZGluYXRvcigp
OworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmFjYmJjYWRmODU3MjdmNzgzMWQ3MzU1NmVhNGM3OWY0YzAyZWQ2NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yLmgKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRDb29yZGlu
YXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVz
cGFjZSBJUEMgeworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yOworY2xhc3MgUGF5bWVudENvbnRhY3Q7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRv
ckNsaWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcihXZWJQYWdlJik7CisgICAgflBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3IoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6UGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50LgorICAgIGJvb2wgc3VwcG9ydHNWZXJzaW9uKHVuc2lnbmVk
IHZlcnNpb24pIG92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB2YWxpZGF0ZWRQ
YXltZW50TmV0d29yayhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIGNhbk1ha2VQ
YXltZW50cygpIG92ZXJyaWRlOworICAgIHZvaWQgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNh
cmQoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWlu
TmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBvdmVy
cmlkZTsKKyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKKyAgICBib29sIHNob3dQYXltZW50
VUkoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0
aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0
ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5n
Q29udGFjdFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRo
b2RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgb3ZlcnJpZGU7CisgICAg
CisgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5j
ZWxQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRlOworICAgIAorICAgIHZvaWQgcGF5bWVudENvb3Jk
aW5hdG9yRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgCisgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICAKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgorICAg
IHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25VUkxTdHJpbmcp
OworICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50Jik7
CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAgICB2b2lkIGRpZFNl
bGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpOworICAg
IHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9k
Jik7CisgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpOworICAgIHZvaWQgY2FuTWFr
ZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2Fu
TWFrZVBheW1lbnRzKTsKKyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KTsKKyAgICAKKyAgICBXZWJDb3JlOjpQYXltZW50Q29vcmRp
bmF0b3ImIHBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKTsKKyAgICAKKyAgICB1c2luZyBBdmFp
bGFibGVQYXltZW50TmV0d29ya3NTZXQgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPjsKKyAgICBjb25zdCBBdmFpbGFibGVQYXltZW50TmV0d29ya3NTZXQmIGF2YWls
YWJsZVBheW1lbnROZXR3b3JrcygpOworICAgIAorICAgIFdlYlBhZ2UmIG1fd2ViUGFnZTsKKyAg
ICAKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+PiBtX3Bl
bmRpbmdDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZENhbGxiYWNrczsKKyAgICBIYXNoTWFw
PHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+PiBtX3BlbmRpbmdPcGVuUGF5bWVu
dFNldHVwQ2FsbGJhY2tzOworICAgIAorICAgIHN0ZDo6b3B0aW9uYWw8QXZhaWxhYmxlUGF5bWVu
dE5ldHdvcmtzU2V0PiBtX2F2YWlsYWJsZVBheW1lbnROZXR3b3JrczsKK307CisKK30KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYWUyNzFlODY0NjVlMWFjN2I0NThhN2VhOTAyMzU3YjMxYmQ2ZTdlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyMvCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
IHsKKworICAgIFZhbGlkYXRlTWVyY2hhbnQoU3RyaW5nIHZhbGlkYXRpb25VUkxTdHJpbmcpCisg
ICAgRGlkQXV0aG9yaXplUGF5bWVudChXZWJDb3JlOjpQYXltZW50IHBheW1lbnQpCisgICAgRGlk
U2VsZWN0U2hpcHBpbmdNZXRob2QoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nTWV0aG9kIHNoaXBwaW5nTWV0aG9kKQorICAgIERpZFNlbGVjdFNoaXBwaW5n
Q29udGFjdChXZWJDb3JlOjpQYXltZW50Q29udGFjdCBzaGlwcGluZ0NvbnRhY3QpCisgICAgRGlk
U2VsZWN0UGF5bWVudE1ldGhvZChXZWJDb3JlOjpQYXltZW50TWV0aG9kIHBheW1lbnRNZXRob2Qp
CisgICAgRGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKQorICAgIENhbk1ha2VQYXltZW50c1dpdGhB
Y3RpdmVDYXJkUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBib29sIGNhbk1ha2VQYXltZW50cykK
KyAgICBPcGVuUGF5bWVudFNldHVwUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBib29sIHJlc3Vs
dCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5
bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZDRjZDJjN2QxNmE0NDRiOTYyYjUzMGZkNTc3YjRjNGFlZGY1YmViCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9j
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllciwgKnRoaXMpKQoreworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQor
CitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6dmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJp
bmcmIHZhbGlkYXRpb25VUkxTdHJpbmcpCit7CisgICAgVU5VU0VEX1BBUkFNKHZhbGlkYXRpb25V
UkxTdHJpbmcpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOworCit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVudCYg
cGF5bWVudCkKK3sKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
U2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3sKK30KKwordm9pZCBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNv
bnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBzaGlwcGluZ0NvbnRhY3QpCit7Cit9CisKK3Zv
aWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNlbGVjdFBheW1lbnRNZXRob2Qo
Y29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYgcGF5bWVudE1ldGhvZCkKK3sKK30KKwordm9p
ZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24o
KQoreworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjYW5NYWtlUGF5
bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtl
UGF5bWVudHMpCit7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246Om9w
ZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQorewor
fQorCisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlhOTA1MjdkYjE4YTRlMzUyNDNkOTViOTU0Mjc2N2M1ZDYwNjg2YWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1BheW1lbnRDb250YWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50
TWV0aG9kLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisgICAgCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBJ
UEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQsIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlm
aWVyKSk7CisgICAgfQorICAgIH5XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
IAorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlv
bi5nZXQoKTsgfQorICAgICAgICAKKyAgICB2b2lkIHZhbGlkYXRlTWVyY2hhbnQoY29uc3QgU3Ry
aW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKTsKKyAgICB2b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQo
Y29uc3QgV2ViQ29yZTo6UGF5bWVudCYpOworICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRo
b2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
TWV0aG9kJik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgV2ViQ29y
ZTo6UGF5bWVudENvbnRhY3QmKTsKKyAgICB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29u
c3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYpOworICAgIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNl
c3Npb24oKTsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkodWlu
dDY0X3QgcmVxdWVzdElELCBib29sIGNhbk1ha2VQYXltZW50cyk7CisgICAgdm9pZCBvcGVuUGF5
bWVudFNldHVwUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBib29sIHJlc3VsdCk7CisKKworcHJp
dmF0ZToKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgSVBD
OjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJu
IG1fY29ubmVjdGlvbi5wdHIoKTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAgUmVmPElQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTg5OTgwN2M2MDNiYmUyMTAwMjVmNzgx
ZGU0MjBmODgyYTY5ZTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjLwor
CisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVz
c2FnZXMgLT4gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24geworCisgICAgVmFsaWRhdGVN
ZXJjaGFudChTdHJpbmcgdmFsaWRhdGlvblVSTFN0cmluZykKKyAgICBEaWRBdXRob3JpemVQYXlt
ZW50KFdlYkNvcmU6OlBheW1lbnQgcGF5bWVudCkKKyAgICBEaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qg
c2hpcHBpbmdNZXRob2QpCisgICAgRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KFdlYkNvcmU6OlBh
eW1lbnRDb250YWN0IHNoaXBwaW5nQ29udGFjdCkKKyAgICBEaWRTZWxlY3RQYXltZW50TWV0aG9k
KFdlYkNvcmU6OlBheW1lbnRNZXRob2QgcGF5bWVudE1ldGhvZCkKKyAgICBEaWRDYW5jZWxQYXlt
ZW50U2Vzc2lvbigpCisgICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50
NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQorICAgIE9wZW5QYXltZW50U2V0
dXBSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKaW5kZXggZGNkNmRhNTgwNmJiMzMyYzI0ZmZlYzg1MThlZTUwOTZjYmFlN2Y4
My4uYjc2ZTNjMTg1NTllYjAwZWUyYzZjODEzZjI0Nzg4ZWVmNDMyZTg4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlc29sdmVSZWdp
c3RyYXRpb25Qcm9taXNlKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25L
ZXkmKSBmaW5hbDsKIAogICAgIHZvaWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY2hlZHVsZVBheW1lbnRKb2IoY29u
c3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZvaWQgcnVuT3JEZWxh
eVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmU2YmVmYjgxNDc4
NjVmYzBlODFlODEyMjNiNmM0OTZhYjdmMWJkNS4uN2FhYzEyZTA3YWI4MmNlNWU3ZGIxYTVlODg1
MzZlYTMzYjlmZmFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aCIKICNpbmNsdWRlICJQYWdlQmFubmVyLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvci5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCkBAIC00NTMsNyArNDU0
LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50
UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlci5wdHIoKTsKICAgICBwYWdlQ29uZmln
dXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6Omdl
dE9yQ3JlYXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKTsKIAotI2lmIEVOQUJMRShB
UFBMRV9QQVkpCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wYXltZW50Q29vcmRpbmF0b3JDbGllbnQgPSBuZXcg
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvcigqdGhpcyk7CisjZWxpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnBheW1lbnRDb29yZGluYXRvckNsaWVudCA9IG5ldyBX
ZWJQYXltZW50Q29vcmRpbmF0b3IoKnRoaXMpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0
b3JUYXJnZXRDb250cm9sbGVyLmNwcAppbmRleCBiMGQ3MDNjNTM3ZjAwNzkwYzRmZmNhOWYzYjFk
OWI0MWRkMDhhNDNlLi43YjVkMDAxNjBkZTM1OTk4ZjVkNTc3YTRiZjM1NThiMTk2NTFjNmJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXIuY3BwCkBAIC02Myw3ICs2Myw3
IEBAIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI6OnJlbW92ZVRhcmdldChJ
bnNwZWN0b3I6Okluc3BlY3RvclRhcmdldCYKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0
Q29udHJvbGxlcjo6Y29ubmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdldElkLCBJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5cGUpCiB7
Ci0gICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsK
KyAgICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKICAgICBpZiAoIXRh
cmdldCkKICAgICAgICAgcmV0dXJuOwogCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViUGFnZUlu
c3BlY3RvclRhcmdldENvbnRyb2xsZXI6OmNvbm5lY3RJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiB0
YXJnZXRJZCwKIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcjo6ZGlzY29u
bmVjdEluc3BlY3Rvcihjb25zdCBTdHJpbmcmIHRhcmdldElkKQogewotICAgIEluc3BlY3RvclRh
cmdldCogdGFyZ2V0ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CisgICAgYXV0byogdGFyZ2V0
ID0gbV90YXJnZXRzLmdldCh0YXJnZXRJZCk7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250
cm9sbGVyOjpkaXNjb25uZWN0SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgdGFyZ2V0SQogCiB2b2lk
IFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOjpzZW5kTWVzc2FnZVRvVGFyZ2V0QmFj
a2VuZChjb25zdCBTdHJpbmcmIHRhcmdldElkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgSW5zcGVjdG9yVGFyZ2V0KiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKKyAg
ICBhdXRvKiB0YXJnZXQgPSBtX3RhcmdldHMuZ2V0KHRhcmdldElkKTsKICAgICBpZiAoIXRhcmdl
dCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggMDljZWE5NTM1NTMxMWI2NGMzYWUwYmM2MzFlZGE4YjEwODUyZmZmYi4uYTYwZDZh
MjBjMzgwNWY1YjQwZGZiZGFkOGE1Yjk3MmY3ZjYxYjg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTM2LDYgKzEzNiwxMSBAQAogI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKwogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGlt
LmgiCiAjZW5kaWYKQEAgLTM4NSw2ICszOTAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxp
emVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
ICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24o
KTsKIAogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIGVuc3VyZVdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAgICBzZXRUZXJtaW5hdGlvblRpbWVv
dXQocGFyYW1ldGVycy50ZXJtaW5hdGlvblRpbWVvdXQpOwogCkBAIC0xMjQzLDYgKzEyNDksMzEg
QEAgV2ViTG9hZGVyU3RyYXRlZ3kmIFdlYlByb2Nlc3M6OndlYkxvYWRlclN0cmF0ZWd5KCkKIHsK
ICAgICByZXR1cm4gbV93ZWJMb2FkZXJTdHJhdGVneTsKIH0KKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQordm9pZCBXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNs
b3NlZChXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBB
U1NFUlQobV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik7CisgICAgQVNTRVJUKG1fd2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CisKKyAgICBtX3dlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKK30KKworV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24pIHsK
KyAgICAgICAgSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcjsKKwor
ICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVu
Y29kZWRDb25uZWN0aW9uSWRlbnRpZmllciksIDApKQorICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxp
ZChlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKSkKKyAgICAgICAgICAgIENSQVNI
KCk7CisKKyAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVy
LnBvcnQoKSk7CisKKyAgICB9CisgICAgcmV0dXJuICptX3dlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAKIHZvaWQgV2Vi
UHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDIzZGVjMDNjOTg1MGIyZTFhNjk3ZTNhYTYx
MzRhOGFiNDE2ZDdiM2MuLmI4MGE4NDYwYmJjZjBiNjJkNTBkNGFhNDZkYjBkMTZjYjkxOWZmNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtOTgsNiArOTgsOSBAQCBj
bGFzcyBXZWJMb2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBXZWJQYWdlR3Jv
dXBQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NTdXBwbGVtZW50OworI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCitjbGFzcyBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CiBz
dHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQYWdlR3JvdXBEYXRh
OwpAQCAtMTc1LDYgKzE3OCwxMSBAQCBwdWJsaWM6CiAKICAgICBMaWJXZWJSVENOZXR3b3JrJiBs
aWJXZWJSVENOZXR3b3JrKCk7CiAKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHZv
aWQgd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24qKTsKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJl
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVO
VF9QUk9DRVNTKQorCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAogICAgIHZv
aWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsK
QEAgLTQ0NCw2ICs0NTIsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5PiBtX2F1dG9tYXRpb25TZXNzaW9uUHJveHk7CiAKKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFJlZlB0cjxXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbj4gbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsKKyNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAg
ICAgUmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gbV9wbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggMmU5YTA0ZDAxYmRkMTQyMWM0YjQ1NzExNGJmODljM2M3ODRlZjljMC4uYWQ2YjVmMzg5ZTM3
NGFmZDdjMDUwODQxMTA3ODc5ZWZhODJhN2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTI5Miw2ICsyOTIsNyBAQCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVfY29jb2F0
b3VjaCA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJMRV9OT1RJRklDQVRJT05T
ID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9O
T1RJRklDQVRJT05TX21hY29zeCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogCitFTkFCTEVfUEFZ
TUVOVF9QUk9DRVNTID0gRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUzsKIEVOQUJMRV9QQVlNRU5UX1JF
UVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUERGS0lUX1BMVUdJTiA9
ICQoRU5BQkxFX1BERktJVF9QTFVHSU5fJChXS19QTEFURk9STV9OQU1FKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjlmYjc0NGM2ZDljZWE2
NGFmYWFjMjFmZjk1YTkxMGUzM2JkN2Y0Zi4uMmZlZmQzMmI2YTYxZDExMTQwMTEzZjg1ZjE0OTc4
NmViYzM4N2I2MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTExLTI3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVA
YXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEy
OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vz
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzTmFtZSk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpwYXltZW50UHJvY2Vzc0RpZENyYXNoKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAx
OC0xMi0xOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFsbG93IGNsaWVudHMgdG8gc2V0IHRoZSBuYXZpZ2F0b3IgcGxhdGZvcm0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCmluZGV4IDJlOWEwNGQwMWJkZDE0MjFjNGI0NTcxMTRiZjg5YzNjNzg0ZWY5YzAu
LmFkNmI1ZjM4OWUzNzRhZmQ3YzA1MDg0MTEwNzg3OWVmYTgyYTdhZTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwpAQCAtMjkyLDYgKzI5Miw3IEBAIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORV9j
b2NvYXRvdWNoID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PVElGSUNB
VElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5B
QkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiAKK0VOQUJM
RV9QQVlNRU5UX1BST0NFU1MgPSBFTkFCTEVfUEFZTUVOVF9QUk9DRVNTOwogRU5BQkxFX1BBWU1F
TlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QREZLSVRfUExV
R0lOID0gJChFTkFCTEVfUERGS0lUX1BMVUdJTl8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5
NDQyYTBjYWY1MDg0Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8v
IEVuc3VyZSB0aGUgc2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUg
b3BlcmF0aW9ucyB3ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNz
UG9vbCAqc2hhcmVkUHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bv
b2xdOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1l
bnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQ
cm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUg
PSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3
IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hl
ZCkKIAogICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmls
ZUV4aXN0c0F0UGF0aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkw
LCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVY
UEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50
XSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJjM2Q2M2E5ZWE4N2MyNmVj
YTBkMWJmZDY2Nzc2NTczMDkxNi4uZTY0MDNlOWUwZmY2ZWFiZGE5ZWNlMGYyOWNmZmE2NWU1NTVj
ZGM4NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTEwNDYsNiArMTA0Niw5IEBAIFRFU1Qo
U2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBN
YWtlIHN1cmUgcGF5bWVudCBwcm9jZXNzIGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEo
MCwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vz
c0lkZW50aWZpZXIpOworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxl
IHBhZ2UgZGlkIG5vdCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBF
Q1RfRVEoMXUsIHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJv
Y2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWQpOwogCkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNU
KFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAg
Ly8gVGhlcmUgc2hvdWxkIGJlIG5vIHBheW1lbnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVD
VF9FUSgwLCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQ
cm9jZXNzSWRlbnRpZmllcik7CisKICAgICAvLyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEg
c3RvcmUgdGhhdCBoYXMgc2VydmljZSB3b3JrZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0Nv
bmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBkYTAyMmM0ZjBj
NzY5MmU3YzZkZjRkNjJlNDU5NmYxODllYWRiYzVlLi42NzY5MTZmOTA3MjMyNjkzM2M0NjdkNzQz
NWRiN2VkYjExZjc0MjJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMzNSw2ICsz
MzUsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAKICAgICB2b2lkIHRlcm1pbmF0ZU5ldHdv
cmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcygpOwor
ICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGRpZENhbmNlbENsaWVudFJlZGlyZWN0OwogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAyMjU3
OWU4OTE4NTU5YjhlMzI4ZjQxODM2ZjcwZDE1NzExNzYwODkyLi4xOWU2MjU3MTUxZTQ1NTAwNWI4
N2M4NDA5OWM5NzM5YTQ4ODU5ODczIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTIsNiArMTI5MiwxNCBAQCB2
b2lkIFRlc3RSdW5uZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAgICBXS0J1
bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCBu
dWxscHRyKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVQYXltZW50UHJvY2Vzcygp
Cit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IlRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzIikpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJv
bm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCkt
PnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisgICAgCiBzdGF0aWMgdW5zaWduZWQgbmV4dFVJ
U2NyaXB0Q2FsbGJhY2tJRCgpCiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBG
aXJzdFVJU2NyaXB0Q2FsbGJhY2tJRDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMTIwZWZjODI2M2VjNzcyNDliM2IwZDdk
YTYxNDc2YTNjOGE3YWYxNy4uNGQ1Zjk4NmMzMDFjZmEwNzMxNzMzNmYwZmVkNmY0NDQzMGIzY2Rh
NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKQEAgLTQ0OCw2ICs0NDgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0
ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vz
cygpOworICAgIHZvaWQgdGVybWluYXRlUGF5bWVudFByb2Nlc3MoKTsKIAogICAgIHZvaWQgcmVt
b3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKEpTVmFsdWVSZWYpOwogICAgIHZvaWQgY2FsbERpZFJl
bW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDJmOThlZDMyMzk2ZGE3NTlmNmZmZGVkZGVhZGM5
MzVkMTFlNTU4ZDIuLjVlYzNlZDcxNTI1ZDQ2NWFlZjdhNmIyOGIwMmE4OTEyYjEzM2RlYTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDc1LDYgKzEw
NzUsMTMgQEAgY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgp
CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitjb25zdCBjaGFyKiBU
ZXN0Q29udHJvbGxlcjo6cGF5bWVudFByb2Nlc3NOYW1lKCkKK3sKKyAgICByZXR1cm4gImNvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMiOworfQorI2VuZGlmCisKIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4
dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNv
bnRleHQoKSwgYWxsb3dzKTsKQEAgLTE1MTEsNiArMTUxOCwxMyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2
b2lkICpjbAogICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CiB9CiAKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goV0tDb250ZXh0UmVmIGNvbnRleHQs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVu
dEluZm8pKS0+cGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOworI2VuZGlmCit9CisgICAgCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJvbm91
cykKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4ga2V5S2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiS2V5IikpOwpAQCAtMTg0NCw2ICsxODU4LDE1IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogICAgIGV4aXQo
MSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBheW1lbnRQcm9jZXNzRGlkQ3Jhc2goKQor
eworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgcGlkX3QgcGlkID0gV0tDb250ZXh0
R2V0UGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKG1fY29udGV4dC5nZXQoKSk7CisgICAgZnByaW50
ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgcGF5bWVudFByb2Nlc3NOYW1l
KCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOworICAgIGV4aXQoMSk7CisjZW5kaWYKK30KKwog
Ly8gV0tQYWdlTmF2aWdhdGlvbkNsaWVudAogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21t
aXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwg
V0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMjY0Myw2ICsyNjY2LDEzIEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCkKICAg
ICBXS0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyhwbGF0Zm9ybUNvbnRleHQo
KSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCkK
K3sKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIFdLQ29udGV4dFRlcm1pbmF0ZVBh
eW1lbnRQcm9jZXNzKHBsYXRmb3JtQ29udGV4dCgpKTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRG
T1JNKENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25z
dCBUZXN0SW52b2NhdGlvbiYpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggMTNhMzljNjkwNWYwZDg3YmE4N2I5ZGI1N2Y4ZGFkNWMxN2FjNzFiYy4uYmY5ZGU1
MzdlYThmMzE5Mzk4ZjMyNmRlMzg5ODJjOGM1ZDVmYTQ4NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTY4LDcgKzE2OCwxMCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHdlYlByb2Nlc3NOYW1lKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIq
IG5ldHdvcmtQcm9jZXNzTmFtZSgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkYXRhYmFzZVBy
b2Nlc3NOYW1lKCk7Ci0KKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBwYXltZW50UHJvY2Vzc05hbWUoKTsKKyNlbmRpZgorICAgIAogICAgIFdvcmtR
dWV1ZU1hbmFnZXImIHdvcmtRdWV1ZU1hbmFnZXIoKSB7IHJldHVybiBtX3dvcmtRdWV1ZU1hbmFn
ZXI7IH0KIAogICAgIHZvaWQgc2V0UmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9y
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGJvb2wgdmFsdWUpIHsgbV9yZWplY3RzUHJvdGVjdGlv
blNwYWNlQW5kQ29udGludWVGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgPSB2YWx1ZTsgfQpA
QCAtMjM5LDcgKzI0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1By
b2Nlc3MoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKCk7Ci0KKyAg
ICB2b2lkIHRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzKCk7CisgICAgCiAgICAgdm9pZCByZW1vdmVB
bGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKIAogICAgIHZvaWQgY2xlYXJTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9ucygpOwpAQCAtMzQ4LDYgKzM1Miw4IEBAIHByaXZhdGU6CiAgICAgLy8gV0tDb250
ZXh0Q2xpZW50CiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXS0NvbnRl
eHRSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKTsK
KyAgICBzdGF0aWMgdm9pZCBwYXltZW50UHJvY2Vzc0RpZENyYXNoKFdLQ29udGV4dFJlZiwgY29u
c3Qgdm9pZCopOworICAgIHZvaWQgcGF5bWVudFByb2Nlc3NEaWRDcmFzaCgpOwogCiAgICAgLy8g
V0tQYWdlTmF2aWdhdGlvbkNsaWVudAogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdE5hdmlnYXRp
b24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAx
YTkxZWIyODQzNGQ0ZWQ3ZDFiOTYxMjIwMDYzODUwNTQwYWQ3ODJiLi43MmZiYjllOGNiM2YwMGRk
OWE2N2U1YTcxYTlmOTJjYTdiZjk4NmNkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcApAQCAtMTQ1Myw2ICsxNDUzLDE0IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJl
Zj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0
ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorI2lmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJUZXJtaW5hdGVQYXltZW50UHJvY2VzcyIpKSB7CisgICAgICAgIEFTU0VSVCghbWVzc2Fn
ZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWluYXRlUGF5
bWVudFByb2Nlc3MoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorI2VuZGlmCisg
ICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJU
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKSB7CiAgICAgICAgIEFTU0VSVCghbWVzc2FnZUJvZHkp
OwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudGVybWluYXRlTmV0d29ya1By
b2Nlc3MoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357834</attachid>
            <date>2018-12-20 11:00:45 -0800</date>
            <delta_ts>2018-12-20 15:08:16 -0800</delta_ts>
            <desc>Patch #2</desc>
            <filename>bug-191298-20181220110042.patch</filename>
            <type>text/plain</type>
            <size>193006</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5Mzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NDQzYmIwOTg5ZWExZmNhNzgzODdmMDQ5MGI3OTRkMzE5MGQxNmFiLi5mZDQzZmFhZWNmY2RiNjIy
ZjM3ZTNiYzkyNWI5OTRlYjczMDE4OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhhNGQ2MTc2Y2MyMWEwZTE2MzBlMzUyZmEwMzU1NjI0
N2IwZDJkMTAuLmRiN2U2MDQ3MjE4NTIwMGRiZTBmNGUyY2I1ZTkyNTIxYWFjYzk5NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0xMi0yMCAgWmFtaXVsIEhhcXVlICA8emhhcXVl
QGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUg
ZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMTgtMTEtMTQgIFphbWl1bCBI
YXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIg
d2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAg
ICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0yNyAgWmFtaXVs
IEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1
YiB3aXRoIGZlYXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggODIzNGNhNjcwN2NlMGJj
ZmRhZTUyMDA2ZTQxZWRmNTg2ZDQwMmUyMi4uNzZkNTBmNDcxZTZhYzc2OWYyMDg3NTViZTAxN2Rh
NTA2ZDA2ZWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMTIt
MjAgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBw
cm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oOgorICAg
ICAgICAqIHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsubW06CisgICAgICAgICogcGFsL3NwaS9j
b2NvYS9QYXNzS2l0U1BJLmg6CisKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMjcgIFphbWl1
bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0
dWIgd2l0aCBmZWF0dXJlIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmQ4ZjUyNzhlZTlmMjM2NDYwYTBjZTNh
ZTgzYjZjM2ExYmE2NzAwOC4uNzAwMmI5ODQzNGFjODIwNTExNmI3NTU2Y2QxZjc4MDY2N2UxNGJi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MyBAQAorMjAxOC0xMi0yMCAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZXN0
cm95U2Vzc2lvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaDoK
KyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2Nv
YS5oOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eUNvY29hLm1tOgorICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
ckRlbGVnYXRlIGluaXRXaXRoUGF5bWVudENvb3JkaW5hdG9yUHJveHk6XSk6CisgICAgICAgICgt
W1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgaW52YWxpZGF0ZV0pOgor
ICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjpkaWRSZXF1ZXN0TWVyY2hhbnRTZXNzaW9uOl0pOgor
ICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjpkaWRBdXRob3JpemVQYXltZW50OmhhbmRsZXI6XSk6
CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOmRpZFNlbGVjdFBheW1lbnRNZXRob2Q6aGFuZGxl
cjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0
ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Q6
aGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6ZGlkU2VsZWN0U2hpcHBpbmdD
b250YWN0OmhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUgcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOmRpZEF1dGhvcml6
ZVBheW1lbnQ6Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlv
bkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6ZGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2Q6Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXI6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZDpjb21wbGV0aW9uOl0pOgorICAgICAgICAoLVtXS1Bh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlcjpkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6Y29tcGxldGlvbjpdKToKKyAgICAg
ICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXJEaWRGaW5pc2g6XSk6CisgICAgICAgIChXZWJLaXQ6OnRvUEtT
aGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6OnRvUEtQYXltZW50UmVxdWVzdCk6Cisg
ICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnZhbGlkYXRlTWVy
Y2hhbnQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQXV0aG9yaXplUGF5bWVudCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Qp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDYW5jZWxQYXltZW50U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZFJlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
Om9wZW5QYXltZW50U2V0dXBSZXBseSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9FeHRyYVByaXZh
dGVTeW1ib2xzRm9yVEFQSS5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQ
YXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6dG9QS1BheW1lbnRSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudHMv
UGF5bWVudFByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
UHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmNyZWF0ZVBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp+V2ViUHJvY2Vzc1Bvb2wpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jh
c2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBN
aWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
YXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp2YWxpZGF0ZU1lcmNoYW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEF1dGhvcml6
ZVBheW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNlbGVjdFBheW1lbnRN
ZXRob2QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpvcGVuUGF5bWVu
dFNldHVwUmVwbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fc2hvdWxkQXR0YWNoRHJhd2luZ0FyZWFPblBhZ2VU
cmFuc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxOC0xMS0yNyAgWmFtaXVs
IEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1
YiB3aXRoIGZlYXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9QYXNzS2l0U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvUGFz
c0tpdFNvZnRMaW5rLmgKaW5kZXggYzA4NzQ4OTU1NjUxZDljYzNiN2YzMTUzZGY1NTI5ZTE2MzNk
M2VhMS4uNTNhMzcyZDA0MDQ0ODk4MDA4MzA0YjkwNmNlZjliMjU0OTM3M2E0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oCkBAIC0zNiw2ICsz
Niw3IEBAIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgUEtDb250YWN0KQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1Bhc3NMaWJyYXJ5KQogU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBQS1BheW1lbnQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQ
QUwsIFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlcikKK1NPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIpCiBTT0ZU
X0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFBLUGF5bWVudE1ldGhvZCkKIFNPRlRfTElOS19D
TEFTU19GT1JfSEVBREVSKFBBTCwgUEtQYXltZW50TWVyY2hhbnRTZXNzaW9uKQogU09GVF9MSU5L
X0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1BheW1lbnRSZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5tbQppbmRleCAzMmY3YmUwOWNhYWM1
NmYwZjA2ZjJkODc3M2U3N2MwYjg0ZGU4ZjkzLi4wODY0NTJiYWJkOTgzN2FkZGUxOWI0ZjRmOGM0
OWUwYjAyZDg3OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bh
c3NLaXRTb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NL
aXRTb2Z0TGluay5tbQpAQCAtMzksNiArMzksNyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0LCBQS0NvbnRhY3QsIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NL
aXQsIFBLUGFzc0xpYnJhcnksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQsIFBLUGF5bWVudCwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXltZW50
QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQsIFBLUGF5bWVudEF1dGhvcml6YXRpb25W
aWV3Q29udHJvbGxlciwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXltZW50TWVyY2hhbnRTZXNzaW9uLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0
LCBQS1BheW1lbnRNZXRob2QsIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9QYXNzS2l0U1BJLmgKaW5kZXggMTg5NThlOTI2MTRjMWUzYjZhNGYwNGE2OGFk
MTQzM2FiMTk3MTgxNy4uOGI4YmFlYTY5NzFjOTg2MzEzOWUyYTUxMjk2NjBiNWVlMDYzNjNhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUGFzc0tpdFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaApAQCAt
NDAsNiArNDAsNyBAQCBXVEZfRVhURVJOX0NfRU5ECiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKIAogI2ltcG9ydCA8UGFzc0tpdC9QYXNzS2l0Lmg+CisjaW1wb3J0IDxQYXNzS2l0L1BLUGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQgPFBhc3NLaXQv
UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFBhc3NLaXQvUEtQYXltZW50UmVxdWVzdF9Qcml2YXRlLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwppbmRleCA0MDVkNjNiYmIwMTJh
MzllNjVkYThiYThiODkwODM1OGEyNThiZDZjLi5lZWI3YTI2YWRhMTQ2M2QyYWQ1YThkY2ZkYjIw
NmE0ZDYzY2YzZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jh
c2VUYXJnZXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNl
VGFyZ2V0LnhjY29uZmlnCkBAIC0xMTEsNiArMTExLDggQEAgV0tfSEFWRV9DT1JFX1BSRURJQ1RJ
T05bc2RrPW1hY29zeCpdW2FyY2g9aTM4Nl0gPSBOTzsKIFdLX0NPUkVfUFJFRElDVElPTl9ERUZJ
TkVTID0gJChXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU18kKFdLX0hBVkVfQ09SRV9QUkVESUNU
SU9OKSk7CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU19ZRVMgPSBIQVZFX0NPUkVfUFJFRElD
VElPTjsKIAorV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJL
aXQuUGF5bWVudHM7CisKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUUgPSAkKFdLX1NU
T1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfJChXS19VU0VfTEVHQUNZX1NUT1JBR0VfU0VSVklD
RV9OQU1FKSk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FXyA9ICQoV0tfU1RPUkFH
RV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9O
QU1FX05PID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcKaW5kZXggNzRkMzg4OGM4
ZGYwYmRhYmQzYTMyNzE0ZTYxMGNiMmVmZTU3NDM4ZC4uYWNiNWMzZDhiYmY2ZTE2MzMyY2I4YTI2
NjA1MTBmZWI0MTU3MzY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9QYXltZW50U2VydmljZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCkBAIC0yNSw5ICsyNSwxNCBAQAogCiBXS19QQVlN
RU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEX05PID0gOwogCitXS19YUENfU0VSVklDRV9JT1Nf
RU5USVRMRU1FTlRTX0JBU0UgPSAkKFdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFT
RV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNf
QkFTRV9pcGhvbmVvcyA9IFBheW1lbnRzLWlPUzsKK1dLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExF
TUVOVFNfQkFTRV9pcGhvbmVzaW11bGF0b3IgPSBQYXltZW50cy1pT1M7CisKK0NPREVfU0lHTl9F
TlRJVExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JF
U1RSSUNURURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKIENPREVfU0lHTl9F
TlRJVExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JF
U1RSSUNURURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKIE9USEVSX0NPREVf
U0lHTl9GTEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CiAK
LVBST0RVQ1RfTkFNRSA9ICQoV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9E
VUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzOwogUFJPRFVDVF9CVU5ETEVfSURF
TlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsKIElORk9QTElTVF9GSUxFW3Nkaz1pcGhvbmUqXSA9
IFBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2Uv
SW5mby1pT1MucGxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9TLW1pbmltYWxzaW11bGF0b3IuZW50aXRsZW1l
bnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkN2FhMzI1ZTg5ODkwOTBlN2Q5NDJlNGYwYWVhZDI4OGMzZTZjM2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRz
LWlPUy1taW5pbWFsc2ltdWxhdG9yLmVudGl0bGVtZW50cwpAQCAtMCwwICsxLDEwIEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJ
QyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFRE
cy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0Pgor
CTxrZXk+c2VhdGJlbHQtcHJvZmlsZXM8L2tleT4KKwk8YXJyYXk+CisJCTxzdHJpbmc+Y29tLmFw
cGxlLldlYktpdC5QYXltZW50czwvc3RyaW5nPgorCTwvYXJyYXk+Cis8L2RpY3Q+Cis8L3BsaXN0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50cy1pT1Mu
ZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50cy1pT1Mu
ZW50aXRsZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYTQwYmJkYzY4YjI2ZjA0YzQ0YTE5ZGFjOGExNWMz
ZDVmY2FkNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0Fw
cGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVy
dHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNv
bS5hcHBsZS5wYXltZW50LmFsbC1hY2Nlc3M8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5jb20uYXBw
bGUucHJpdmF0ZS5pbi1hcHAtcGF5bWVudHM8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5zZWF0YmVs
dC1wcm9maWxlczwva2V5PgorCTxhcnJheT4KKwkJPHN0cmluZz5jb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzPC9zdHJpbmc+CisJPC9hcnJheT4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggODYwNWU3YjZjY2FkZWRhYjljOGQ3N2VhN2RhMDc4MmQzZTUz
NDgzOC4uOTIwYzA4OWFiOWU0MDU2NDA0ZDNlYTFlYzZhODM5ODYzZjIzZWVhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTIsNiArNTIsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0
YSBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BheW1lbnRzIFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTEyMiw2ICsx
MjMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkgXAogICAgIFBheW1lbnRQcm9jZXNzIFwKICAgICBQYXltZW50UHJvY2Vzc1Byb3h5IFwK
KyAgICBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yIFwKKyAgICBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHkgXAogICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBQ
bHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3MgXApAQCAtMTg3LDYgKzE5
MCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlNXU2VydmVyQ29ubmVjdGlvbiBc
CiAgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIFwKICAgICBXZWJTb2NrZXRTdHJl
YW0gXAorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIgXAogICAgIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5IFwKICMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKaW5k
ZXggMzJhMzQxMjEwMjk4NTI5NzNjNjg1MThiYTBjYjU2YWU0Y2JkZjFjZi4uNWI4YzZmYmZmNDcy
MWRmNzdiZTEyYTk5OGU2ZmY4NmM3ZTI4ZDM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
YXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKQEAgLTI4LDYgKzI4LDE2IEBACiAKICNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC0zOSw2ICs0OSw4IEBAIFBheW1lbnRQcm9jZXNzJiBQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKCkKIH0KIAogUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkK
KyAgICA6IG1fcGF5bWVudENvb3JkaW5hdG9yKHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5PigqdGhpcykpCisgICAgLCBtX2Nvbm5lY3Rpb24obnVsbHB0cikK
IHsKIH0KIApAQCAtNTUsMTQgKzY3LDExIEBAIGJvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRl
cm1pbmF0ZSgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0KLXZvaWQgUGF5bWVudFByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIAordm9pZCBQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGlm
IChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cikpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
ewotICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgbV9wYXltZW50Q29vcmRpbmF0b3ItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC03MCwxMSArNzksMzMgQEAgdm9pZCBQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIKICAgICAgICAg
Q2hpbGRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLX0KIAotdm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK30KKyAgICAKK3Zv
aWQgUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkK
K3sKKyAgICAvLyBDcmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxp
c3RlbmluZ1BvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2Fs
bG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVu
aW5nUG9ydCk7CisgICAgaWYgKGtyICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzLCAiUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOiBDb3VsZCBub3QgYWxsb2NhdGUgbWFjaCBwb3J0LCBlcnJvciAleCIs
IGtyKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisgICAgaWYgKCFNQUNIX1BPUlRfVkFMSUQo
bGlzdGVuaW5nUG9ydCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIlBh
eW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjogQ291bGQg
bm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgcmV0dXJuZWQgcG9ydCB3YXMgaW52YWxpZCIpOworICAg
ICAgICBDUkFTSCgpOworICAgIH0KKyAgICAKKyAgICAvLyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29u
bmVjdGlvbi4KKyAgICBtX2Nvbm5lY3Rpb24gPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSk7Cisg
ICAgCisgICAgSVBDOjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9N
U0dfVFlQRV9NQUtFX1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKK30KKyAgICAKK3ZvaWQgUGF5bWVudFByb2Nl
c3M6OmRlc3Ryb3lTZXNzaW9uKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFRP
RE86IGRlbGV0ZSBjb29yZGluYXRvciBwcm94eQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaAppbmRleCAy
ZjZkZTQ3ZTAwMTc0MDcxNWRjNjc2N2NlNjEwZjQ3NjEyN2VhNWI2Li40MmVlZWZhMTE0Y2VkMGI1
ZDY2YjAyMWM0MjgzYWJjOWI5YWFhODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50UHJvY2Vzcy5oCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitjbGFzcyBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk7CiAKIGNsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGlj
IENoaWxkUHJvY2VzcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3Mp
OwpAQCAtNDYsOCArNDcsMTYgQEAgcHVibGljOgogCiAgICAgflBheW1lbnRQcm9jZXNzKCk7CiAK
LSAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZVByb2Nl
c3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplU2FuZGJv
eChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5PiBtX3BheW1lbnRDb29yZGluYXRvcjsKKyAg
ICBSZWZQdHI8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICAKIHByaXZhdGU6CiAgICAgUGF5bWVudFByb2Nlc3MoKTsKIApAQCAtNTUsMTEgKzY0LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24q
KSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOwogCi0gICAg
Ly8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotCiAgICAgLy8gTWVzc2Fn
ZSBIYW5kbGVycwotICAgIHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Ym9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
Jik7CisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
IHZvaWQgZGVzdHJveVNlc3Npb24oKTsKKyAgICAKICAgICAKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDk4YjkxNGZjNGE4ZjQ0NzE4Y2ZhMTI1NzZkMzM4ZGFlNTkyYWEwZTMuLjY5NGU2ZTYzZDNj
MThmNTYwZDFjOGI0YjdlYWNjYjhlOWY4Y2JhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjQsNSAr
MjQsNyBAQAogCiBtZXNzYWdlcyAtPiBQYXltZW50UHJvY2VzcyB7CiAgICAgCisgICAgQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQorICAgIERlc3Ryb3lTZXNzaW9uKCkKIH0K
ICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5M2IzMGI3ZTBjNTgyMzI5MWZjNmYyYzYyMzI3MDBjNzNiNjA5
NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTAsMCArMSwzNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5LmgiCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkq
IGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5OworCitQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eShQYXltZW50UHJvY2VzcyYg
cGF5bWVudFByb2Nlc3MpCisgICAgOiBtX3BheW1lbnRQcm9jZXNzKHBheW1lbnRQcm9jZXNzKQor
ICAgICwgbV9zdGF0ZShTdGF0ZTo6SWRsZSkKKyAgICAsIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3Rh
dGUoTWVyY2hhbnRWYWxpZGF0aW9uU3RhdGU6OklkbGUpCit7CisgICAgbV9wYXltZW50UHJvY2Vz
cy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1BheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6flBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSgpCit7Cisg
ICAgaWYgKGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5ID09IHRoaXMpCisgICAgICAgIGFj
dGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5ID0gbnVsbHB0cjsKKyAgICAKKyAgICBpZiAobV9z
dGF0ZSAhPSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgaGlkZVBheW1lbnRVSSgpOworICAgIAorICAg
IG1fcGF5bWVudFByb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjphdmFpbGFibGVQYXltZW50TmV0d29y
a3MoVmVjdG9yPFN0cmluZz4mIG5ldHdvcmtzKQoreworICAgIG5ldHdvcmtzID0gcGxhdGZvcm1B
dmFpbGFibGVQYXltZW50TmV0d29ya3MoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50cyhib29sJiByZXBseSkKK3sKKyAgICByZXBseSA9
IHBsYXRmb3JtQ2FuTWFrZVBheW1lbnRzKCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcm
IG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50NjRfdCBy
ZXF1ZXN0SUQpCit7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAg
ICBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKG1lcmNoYW50SWRlbnRpZmll
ciwgZG9tYWluTmFtZSwgW3dlYWtUaGlzLCByZXF1ZXN0SURdKGJvb2wgY2FuTWFrZVBheW1lbnRz
KSB7CisgICAgICAgIGF1dG8gcGF5bWVudENvb3JkaW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQo
KTsKKyAgICAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0b3JQcm94eSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgCisgICAgICAgIHBheW1lbnRDb29yZGluYXRvclByb3h5LT5tX3BheW1l
bnRQcm9jZXNzLm1fY29ubmVjdGlvbi0+Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBs
eShyZXF1ZXN0SUQsIGNhbk1ha2VQYXltZW50cyk7CisgICAgfSk7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYg
bWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJl
cXVlc3RJRCkKK3sKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAg
IHBsYXRmb3JtT3BlblBheW1lbnRTZXR1cChtZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUs
IFt3ZWFrVGhpcywgcmVxdWVzdElEXShib29sIHJlc3VsdCkgeworICAgICAgICBhdXRvIHBheW1l
bnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMuZ2V0KCk7CisgICAgICAgIGlmICghcGF5bWVu
dENvb3JkaW5hdG9yUHJveHkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAg
ICBwYXltZW50Q29vcmRpbmF0b3JQcm94eS0+bV9wYXltZW50UHJvY2Vzcy5tX2Nvbm5lY3Rpb24t
Pm9wZW5QYXltZW50U2V0dXBSZXBseShyZXF1ZXN0SUQsIHJlc3VsdCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpzaG93UGF5bWVudFVJKGNvbnN0
IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsaW5r
SWNvblVSTFN0cmluZ3MsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0JiBwYXltZW50UmVxdWVzdCwgYm9vbCYgcmVzdWx0KQoreworICAgIC8vIEZJWE1FOiBNYWtl
IHRoaXMgYSBtZXNzYWdlIGNoZWNrLgorICAgIEFTU0VSVChjYW5CZWdpbigpKTsKKyAgICAKKyAg
ICBpZiAoYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgYWN0aXZlUGF5
bWVudENvb3JkaW5hdG9yUHJveHktPmhpZGVQYXltZW50VUkoKTsKKyAgICAgICAgYWN0aXZlUGF5
bWVudENvb3JkaW5hdG9yUHJveHktPmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7CisgICAgfQor
ICAgIAorICAgIGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5ID0gdGhpczsKKyAgICAKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2YXRpbmc7CisgICAgCisgICAgV2ViQ29yZTo6VVJMIG9y
aWdpbmF0aW5nVVJMKFdlYkNvcmU6OlVSTCgpLCBvcmlnaW5hdGluZ1VSTFN0cmluZyk7CisgICAg
CisgICAgVmVjdG9yPFdlYkNvcmU6OlVSTD4gbGlua0ljb25VUkxzOworICAgIGZvciAoY29uc3Qg
YXV0byYgbGlua0ljb25VUkxTdHJpbmcgOiBsaW5rSWNvblVSTFN0cmluZ3MpCisgICAgICAgIGxp
bmtJY29uVVJMcy5hcHBlbmQoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBsaW5rSWNvblVS
TFN0cmluZykpOworICAgIAorICAgIHBsYXRmb3JtU2hvd1BheW1lbnRVSShvcmlnaW5hdGluZ1VS
TCwgbGlua0ljb25VUkxzLCBwYXltZW50UmVxdWVzdCwgW3RoaXNdKGJvb2wgcmVzdWx0KSB7Cisg
ICAgICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmF0aW5nKTsKKyAgICAgICAgaWYg
KCFyZXN1bHQpIHsKKyAgICAgICAgICAgIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fc3RhdGUgPSBT
dGF0ZTo6QWN0aXZlOworICAgIH0pOworICAgIAorICAgIHJlc3VsdCA9IHRydWU7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZU1lcmNoYW50VmFsaWRh
dGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJiBwYXltZW50TWVyY2hh
bnRTZXNzaW9uKQoreworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMg
YmVlbiBjYW5jZWxlZCBhbHJlYWR5LgorICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgTUVT
U0FHRV9DSEVDSy4KKyAgICBBU1NFUlQobV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9PSBNZXJj
aGFudFZhbGlkYXRpb25TdGF0ZTo6VmFsaWRhdGluZyk7CisgICAgCisgICAgcGxhdGZvcm1Db21w
bGV0ZU1lcmNoYW50VmFsaWRhdGlvbihwYXltZW50TWVyY2hhbnRTZXNzaW9uKTsKKyAgICBtX21l
cmNoYW50VmFsaWRhdGlvblN0YXRlID0gTWVyY2hhbnRWYWxpZGF0aW9uU3RhdGU6OlZhbGlkYXRp
b25Db21wbGV0ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAgICAvLyBJdCdzIHBvc3NpYmxl
IHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KKyAgICBpZiAobV9z
dGF0ZSA9PSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSBhIE1FU1NBR0VfQ0hFQ0suCisgICAgQVNTRVJUKG1fc3RhdGUgPT0g
U3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQpOworICAgIAorICAgIHBsYXRmb3JtQ29tcGxl
dGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
QWN0aXZlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpT
aGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRhdGUpCit7CisgICAgLy8gSXQncyBwb3NzaWJsZSB0
aGF0IHRoZSBwYXltZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCisgICAgaWYgKG1fc3Rh
dGUgPT0gU3RhdGU6OklkbGUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgYmUgYSBNRVNTQUdFX0NIRUNLLgorICAgIEFTU0VSVChtX3N0YXRlID09IFN0
YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZCk7CisgICAgCisgICAgcGxhdGZvcm1Db21wbGV0
ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
QWN0aXZlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5
bWVudE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQg
dGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KKyAgICBpZiAobV9zdGF0ZSA9
PSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSBhIE1FU1NBR0VfQ0hFQ0suCisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6
OlBheW1lbnRNZXRob2RTZWxlY3RlZCk7CisgICAgCisgICAgcGxhdGZvcm1Db21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5bWVu
dFNlc3Npb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlv
blJlc3VsdD4mIHJlc3VsdCkKK3sKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1l
bnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KKyAgICBpZiAoIWNhbkNvbXBsZXRlUGF5bWVu
dCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgYm9vbCBpc0ZpbmFsU3RhdGVSZXN1bHQg
PSBXZWJDb3JlOjppc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKKyAgICAKKyAgICBwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KTsKKyAgICAKKyAgICBpZiAoIWlzRmluYWxT
dGF0ZVJlc3VsdCkgeworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAKKyAgICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmFib3J0UGF5bWVudFNlc3Npb24oKQor
eworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxl
ZCBhbHJlYWR5LgorICAgIGlmICghY2FuQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIGhpZGVQYXltZW50VUkoKTsKKyAgICAKKyAgICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbmNlbFBheW1lbnRTZXNz
aW9uKCkKK3sKKyAgICBpZiAoIWNhbkNhbmNlbCgpKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgaGlkZVBheW1lbnRVSSgpOworICAgIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpkaWRDYW5jZWxQYXltZW50U2Vz
c2lvbigpCit7CisgICAgQVNTRVJUKGNhbkNhbmNlbCgpKTsKKyAgICAKKyAgICBtX3BheW1lbnRQ
cm9jZXNzLm1fY29ubmVjdGlvbi0+ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsKKyAgICAKKyAg
ICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6OnZhbGlkYXRlTWVyY2hhbnQoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCit7Cisg
ICAgQVNTRVJUKG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPT0gTWVyY2hhbnRWYWxpZGF0aW9u
U3RhdGU6OklkbGUpOworICAgIAorICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJj
aGFudFZhbGlkYXRpb25TdGF0ZTo6VmFsaWRhdGluZzsKKyAgICBtX3BheW1lbnRQcm9jZXNzLm1f
Y29ubmVjdGlvbi0+dmFsaWRhdGVNZXJjaGFudCh1cmwuc3RyaW5nKCkpOworfQorCit2b2lkIFBh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBX
ZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QXV0aG9y
aXplZDsKKyAgICBtX3BheW1lbnRQcm9jZXNzLm1fY29ubmVjdGlvbi0+ZGlkQXV0aG9yaXplUGF5
bWVudChwYXltZW50KTsKKworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3sKKyAgICBB
U1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6QWN0aXZlKTsKKyAgICAKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQ7CisgICAgbV9wYXltZW50UHJvY2Vzcy5tX2Nvbm5l
Y3Rpb24tPmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmRpZFNlbGVjdFNoaXBwaW5nQ29udGFj
dChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYgc2hpcHBpbmdDb250YWN0KQoreworICAg
IEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOworICAgIAorICAgIG1fc3RhdGUgPSBT
dGF0ZTo6U2hpcHBpbmdDb250YWN0U2VsZWN0ZWQ7CisgICAgbV9wYXltZW50UHJvY2Vzcy5tX2Nv
bm5lY3Rpb24tPmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChzaGlwcGluZ0NvbnRhY3QpOworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlkU2VsZWN0UGF5bWVudE1l
dGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKQoreworICAg
IEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOworICAgIAorICAgIG1fc3RhdGUgPSBT
dGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVjdGVkOworICAgIG1fcGF5bWVudFByb2Nlc3MubV9jb25u
ZWN0aW9uLT5kaWRTZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOworCit9CisKK2Jv
b2wgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpjYW5CZWdpbigpIGNvbnN0Cit7Cisg
ICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgY2FzZSBTdGF0ZTo6SWRsZToKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIAorICAgIGNhc2UgU3RhdGU6OkFjdGl2YXRpbmc6CisgICAgY2Fz
ZSBTdGF0ZTo6QWN0aXZlOgorICAgIGNhc2UgU3RhdGU6OkF1dGhvcml6ZWQ6CisgICAgY2FzZSBT
dGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ0Nv
bnRhY3RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQ6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5OjpjYW5DYW5jZWwoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9zdGF0ZSkg
eworICAgIGNhc2UgU3RhdGU6OkFjdGl2YXRpbmc6CisgICAgY2FzZSBTdGF0ZTo6QWN0aXZlOgor
ICAgIGNhc2UgU3RhdGU6OkF1dGhvcml6ZWQ6CisgICAgY2FzZSBTdGF0ZTo6U2hpcHBpbmdNZXRo
b2RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZDoKKyAg
ICBjYXNlIFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQ6CisgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAKKyAgICBjYXNlIFN0YXRlOjpJZGxlOgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorfQorCitib29sIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y2FuQ29t
cGxldGVQYXltZW50KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNl
IFN0YXRlOjpBdXRob3JpemVkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAg
Y2FzZSBTdGF0ZTo6SWRsZToKKyAgICBjYXNlIFN0YXRlOjpBY3RpdmF0aW5nOgorICAgIGNhc2Ug
U3RhdGU6OkFjdGl2ZToKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ01ldGhvZFNlbGVjdGVkOgor
ICAgIGNhc2UgU3RhdGU6OlNoaXBwaW5nQ29udGFjdFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6
OlBheW1lbnRNZXRob2RTZWxlY3RlZDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30K
KworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbkFib3J0KCkgY29uc3QK
K3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNlIFN0YXRlOjpBY3RpdmF0aW5nOgor
ICAgIGNhc2UgU3RhdGU6OkFjdGl2ZToKKyAgICBjYXNlIFN0YXRlOjpBdXRob3JpemVkOgorICAg
IGNhc2UgU3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQ6CisgICAgY2FzZSBTdGF0ZTo6U2hp
cHBpbmdDb250YWN0U2VsZWN0ZWQ6CisgICAgY2FzZSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVj
dGVkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgY2FzZSBTdGF0ZTo6SWRs
ZToKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHk6OmRpZFJlYWNoRmluYWxTdGF0ZSgpCit7CisgICAgbV9zdGF0ZSA9
IFN0YXRlOjpJZGxlOworICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJjaGFudFZh
bGlkYXRpb25TdGF0ZTo6SWRsZTsKKyAgICAKKyAgICBBU1NFUlQoYWN0aXZlUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkgPT0gdGhpcyk7CisgICAgYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkg
PSBudWxscHRyOworfQorICAgIAorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAyMzdmNjQ4M2M5OTJjZTZkODI2NjM1YjA0MjFkYzExYmQ0NDI4NjAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eS5oCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Q
YXltZW50SGVhZGVycy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMg
eworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBj
bGFzcyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czsKK2NsYXNzIFBheW1lbnQ7CitjbGFzcyBQ
YXltZW50Q29udGFjdDsKK2NsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247CitjbGFzcyBQYXlt
ZW50TWV0aG9kOworY2xhc3MgVVJMOworfQorCitPQkpDX0NMQVNTIE5TT2JqZWN0OworT0JKQ19D
TEFTUyBOU1dpbmRvdzsKK09CSkNfQ0xBU1MgUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXI7CitPQkpDX0NMQVNTIFdLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBQYXlt
ZW50UHJvY2VzczsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5IDogcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eT4geworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eShQYXltZW50UHJvY2VzcyYpOworICAgIH5QYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRT
ZXNzaW9uKCk7CisgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFdlYkNvcmU6OlVSTCYp
OworICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50Jik7
CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAgICB2b2lkIGRpZFNl
bGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpOworICAg
IHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9k
Jik7CisgICAgCisgICAgdm9pZCBoaWRlUGF5bWVudFVJKCk7CisgICAgCisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICAKK3ByaXZhdGU6CisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICAKKyAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzLgorICAgIHZvaWQgYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKFZlY3RvcjxT
dHJpbmc+Jik7CisgICAgdm9pZCBjYW5NYWtlUGF5bWVudHMoYm9vbCYgcmVwbHkpOworICAgIHZv
aWQgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXJjaGFudElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKTsK
KyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKTsKKyAgICB2
b2lkIHNob3dQYXltZW50VUkoY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBib29sJiByZXN1bHQpOworICAgIHZvaWQgY29t
cGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vz
c2lvbiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYpOworICAgIHZvaWQg
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRN
ZXRob2RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9k
VXBkYXRlPiYpOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOworICAgIHZvaWQg
YWJvcnRQYXltZW50U2Vzc2lvbigpOworICAgIHZvaWQgY2FuY2VsUGF5bWVudFNlc3Npb24oKTsK
KyAgICAKKyAgICBib29sIGNhbkJlZ2luKCkgY29uc3Q7CisgICAgYm9vbCBjYW5DYW5jZWwoKSBj
b25zdDsKKyAgICBib29sIGNhbkNvbXBsZXRlUGF5bWVudCgpIGNvbnN0OworICAgIGJvb2wgY2Fu
QWJvcnQoKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIGRpZFJlYWNoRmluYWxTdGF0ZSgpOworICAg
IAorICAgIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCk7
CisgICAgYm9vbCBwbGF0Zm9ybUNhbk1ha2VQYXltZW50cygpOworICAgIHZvaWQgcGxhdGZvcm1D
YW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgcGxhdGZvcm1PcGVuUGF5bWVudFNldHVw
KGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5h
bWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAg
dm9pZCBwbGF0Zm9ybVNob3dQYXltZW50VUkoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaW5hdGlu
Z1VSTCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZU1l
cmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7
CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3Qg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lk
IHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7CisgICAgdm9pZCBwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlUGF5
bWVudFNlc3Npb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdD4mKTsKKyAgICAKKyAgICBQYXltZW50UHJvY2VzcyYgbV9wYXltZW50UHJvY2Vz
czsKKyAgICAKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgLy8gSWRsZSAtIE5vdGhp
bmcncyBoYXBwZW5pbmcuCisgICAgICAgIElkbGUsCisgICAgICAgIAorICAgICAgICAvLyBBY3Rp
dmF0aW5nIC0gV2FpdGluZyB0byBzaG93IHRoZSBwYXltZW50IFVJLgorICAgICAgICBBY3RpdmF0
aW5nLAorICAgICAgICAKKyAgICAgICAgLy8gQWN0aXZlIC0gU2hvd2luZyBwYXltZW50IFVJLgor
ICAgICAgICBBY3RpdmUsCisgICAgICAgIAorICAgICAgICAvLyBBdXRob3JpemVkIC0gRGlzcGF0
Y2hpbmcgdGhlIGF1dGhvcml6ZWQgZXZlbnQgYW5kIHdhaXRpbmcgZm9yIHRoZSBwYXltZW50U2Vz
c2lvbkNvbXBsZXRlZCBtZXNzYWdlLgorICAgICAgICBBdXRob3JpemVkLAorICAgICAgICAKKyAg
ICAgICAgLy8gU2hpcHBpbmdNZXRob2RTZWxlY3RlZCAtIERpc3BhdGNoaW5nIHRoZSBzaGlwcGlu
Z21ldGhvZHNlbGVjdGVkIGV2ZW50IGFuZCB3YWl0aW5nIGZvciBhIHJlcGx5LgorICAgICAgICBT
aGlwcGluZ01ldGhvZFNlbGVjdGVkLAorICAgICAgICAKKyAgICAgICAgLy8gU2hpcHBpbmdDb250
YWN0U2VsZWN0ZWQgLSBEaXNwYXRjaGluZyB0aGUgc2hpcHBpbmdjb250YWN0c2VsZWN0ZWQgZXZl
bnQgYW5kIHdhaXRpbmcgZm9yIGEgcmVwbHkuCisgICAgICAgIFNoaXBwaW5nQ29udGFjdFNlbGVj
dGVkLAorICAgICAgICAKKyAgICAgICAgLy8gUGF5bWVudE1ldGhvZFNlbGVjdGVkIC0gRGlzcGF0
Y2hpbmcgdGhlIHBheW1lbnRtZXRob2RzZWxlY3RlZCBldmVudCBhbmQgd2FpdGluZyBmb3IgYSBy
ZXBseS4KKyAgICAgICAgUGF5bWVudE1ldGhvZFNlbGVjdGVkLAorICAgIH0gbV9zdGF0ZTsKKyAg
ICAKKyAgICBlbnVtIGNsYXNzIE1lcmNoYW50VmFsaWRhdGlvblN0YXRlIHsKKyAgICAgICAgLy8g
SWRsZSAtIE5vdGhpbmcncyBoYXBwZW5pbmcuCisgICAgICAgIElkbGUsCisgICAgICAgIAorICAg
ICAgICAvLyBWYWxpZGF0aW5nIC0gRGlzcGF0Y2hpbmcgdGhlIHZhbGlkYXRlbWVyY2hhbnQgZXZl
bnQgYW5kIHdhaXRpbmcgZm9yIGEgcmVwbHkuCisgICAgICAgIFZhbGlkYXRpbmcsCisgICAgICAg
IAorICAgICAgICAvLyBWYWxpZGF0aW9uQ29tcGxldGUgLSBBIG1lcmNoYW50IHNlc3Npb24gaGFz
IGJlZW4gc2VudCBhbG9uZyB0byBQYXNzS2l0LgorICAgICAgICBWYWxpZGF0aW9uQ29tcGxldGUK
KyAgICB9IG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGU7CisgICAgCisgICAgUmV0YWluUHRyPFBL
UGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyPiBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8V0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZT4gbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZTsKKyAgICAK
KyNpZiBQTEFURk9STShNQUMpCisgICAgdWludDY0X3QgbV9zaG93UGF5bWVudFVJUmVxdWVzdFNl
ZWQgeyAwIH07CisgICAgUmV0YWluUHRyPE5TV2luZG93PiBtX3NoZWV0V2luZG93OworICAgIFJl
dGFpblB0cjxOU09iamVjdCAqPiBtX3NoZWV0V2luZG93V2lsbENsb3NlT2JzZXJ2ZXI7CisjZW5k
aWYKK307CisgICAgCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTc1YWNkZDI5MDc1OWMwYTRkNDVjZGRhNzczYmRl
ODZiM2ZhYWMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0
NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWYg
RU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMg
LT4gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5IHsKKworICAgIEF2YWlsYWJsZVBheW1l
bnROZXR3b3JrcygpIC0+IChWZWN0b3I8U3RyaW5nPiBhdmFpbGFibGVQYXltZW50TmV0d29ya3Mp
IExlZ2FjeVN5bmMKKyAgICBDYW5NYWtlUGF5bWVudHMoKSAtPiAoYm9vbCByZXN1bHQpIExlZ2Fj
eVN5bmMKKyAgICBDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcgbWVyY2hhbnRJ
ZGVudGlmaWVyLCBTdHJpbmcgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKQorICAgIE9w
ZW5QYXltZW50U2V0dXAoU3RyaW5nIG1lcmNoYW50SWRlbnRpZmllciwgU3RyaW5nIGRvbWFpbk5h
bWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKworICAgIFNob3dQYXltZW50VUkoU3RyaW5nIG9yaWdp
bmF0aW5nVVJMU3RyaW5nLCBWZWN0b3I8U3RyaW5nPiBsaW5rSWNvblVSTFN0cmluZ3MsIFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0IHBheW1lbnRSZXF1ZXN0KSAtPiAoYm9v
bCByZXN1bHQpIExlZ2FjeVN5bmMKKyAgICBDb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihXZWJD
b3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCisgICAg
Q29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiB1cGRhdGUpCisgICAgQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IHVw
ZGF0ZSkKKyAgICBDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiB1cGRhdGUpCisgICAgQ29tcGxldGVQYXltZW50
U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiByZXN1bHQpCisgICAgQWJvcnRQYXltZW50U2Vzc2lvbigpCisgICAgQ2FuY2VsUGF5bWVudFNl
c3Npb24oKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaCBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZDcwN2NlYmZhMjE3NDhmNjU0MjkyMzQ3NDRlOTE0NGJjZWVlMDI3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvUGFzc0tpdFNQSS5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFVSTDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7Citj
bGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk7
CisKK1JldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5bWVudFJlcXVlc3QoY29uc3Qg
VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVSTD4mIGxpbmtJY29u
VVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKKyAg
ICAKK30KKworQGludGVyZmFjZSBXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVn
YXRlIDogTlNPYmplY3QgPFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUs
CisgICAgUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJQcml2YXRlRGVsZWdhdGU+IHsK
K0BwYWNrYWdlCisgICAgV2ViS2l0OjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkqIF9w
YXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX3Bh
eW1lbnRTdW1tYXJ5SXRlbXM7CisgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9zaGlwcGluZ01ldGhv
ZHM7CisKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5bWVudE1lcmNoYW50U2Vzc2lvbiAqLCBOU0Vy
cm9yICopPiBfc2Vzc2lvbkJsb2NrOworCisgICAgQk9PTCBfZGlkUmVhY2hGaW5hbFN0YXRlOwor
I2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgIEJsb2NrUHRyPHZvaWQoUEtQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdCAqKT4gX3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbjsKKyAgICBCbG9j
a1B0cjx2b2lkKFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICopPiBfZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZENvbXBsZXRpb247CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRS
ZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKik+IF9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENv
bXBsZXRpb247CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250
YWN0VXBkYXRlICopPiBfZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0Q29tcGxldGlvbjsKKyNlbHNl
CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKT4gX3BheW1l
bnRBdXRob3JpemVkQ29tcGxldGlvbjsKKyAgICBCbG9ja1B0cjx2b2lkKE5TQXJyYXkgKik+IF9k
aWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbjsKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5
bWVudEF1dGhvcml6YXRpb25TdGF0dXMsIE5TQXJyYXkgKik+IF9kaWRTZWxlY3RTaGlwcGluZ01l
dGhvZENvbXBsZXRpb247CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzLCBOU0FycmF5ICosIE5TQXJyYXkgKik+IF9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RD
b21wbGV0aW9uOworI2VuZGlmCit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBheW1lbnRD
b29yZGluYXRvclByb3h5OihXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSYp
d2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk7CisKKy0gKHZvaWQpaW52YWxpZGF0ZTsKKworQGVu
ZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNhZDFiZDdiMjA5MmE1MjExZWRhNzE2NWM2ZjQ0ODViZmZmZDAxNzgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eUNvY29hLm1tCkBAIC0wLDAgKzEsNjk4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5Q29jb2EuaCIKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5oIgorI2lt
cG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVVJMLmg+CisjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+
CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisKKyNp
ZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSAxMDEzMDApCitTT0ZUX0xJTktfRlJBTUVXT1JLKENvbnRhY3RzKQorU09G
VF9MSU5LX0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdHJlZXRLZXksIE5TU3Ry
aW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdWJM
b2NhbGl0eUtleSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENO
UG9zdGFsQWRkcmVzc0NpdHlLZXksIE5TU3RyaW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKENv
bnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdWJBZG1pbmlzdHJhdGl2ZUFyZWFLZXksIE5TU3RyaW5n
ICopOworU09GVF9MSU5LX0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdGF0ZUtl
eSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRk
cmVzc1Bvc3RhbENvZGVLZXksIE5TU3RyaW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKENvbnRh
Y3RzLCBDTlBvc3RhbEFkZHJlc3NDb3VudHJ5S2V5LCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19D
T05TVEFOVChDb250YWN0cywgQ05Qb3N0YWxBZGRyZXNzSVNPQ291bnRyeUNvZGVLZXksIE5TU3Ry
aW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKFBBTDo6UGFzc0tpdCwgUEtQYXltZW50RXJyb3JE
b21haW4sIE5TU3RyaW5nICopOworI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBXS1BheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFBheW1lbnRDb29yZGluYXRvclByb3h5OihXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JQcm94eSYpd2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkKK3sKKyAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBfcGF5bWVudFBy
b2Vzc0Nvb3JkaW5hdG9yUHJveHkgPSAmd2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk7CisKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClpbnZhbGlkYXRlCit7CisgICAgX3BheW1lbnRQ
cm9lc3NDb29yZGluYXRvclByb3h5ID0gbnVsbHB0cjsKKyAgICBpZiAoX3BheW1lbnRBdXRob3Jp
emVkQ29tcGxldGlvbikgeworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgICAgICBfcGF5bWVu
dEF1dGhvcml6ZWRDb21wbGV0aW9uKGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0SW5zdGFuY2UoKSBpbml0V2l0aFN0YXR1czpQS1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzRmFpbHVyZSBlcnJvcnM6QFsgXV0pLmdldCgpKTsKKyNlbHNlCisgICAgICAgIF9w
YXltZW50QXV0aG9yaXplZENvbXBsZXRpb24oUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0Zh
aWx1cmUpOworI2VuZGlmCisgICAgICAgIF9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24gPSBu
dWxscHRyOworICAgIH0KK30KKworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciB3aWxsRmlu
aXNoV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKK30KKworLSAodm9pZClwYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICop
Y29udHJvbGxlciBkaWRSZXF1ZXN0TWVyY2hhbnRTZXNzaW9uOih2b2lkKF4pKFBLUGF5bWVudE1l
cmNoYW50U2Vzc2lvbiAqLCBOU0Vycm9yICopKXNlc3Npb25CbG9jaworeworICAgIEFTU0VSVCgh
X3Nlc3Npb25CbG9jayk7CisgICAgX3Nlc3Npb25CbG9jayA9IHNlc3Npb25CbG9jazsKKworICAg
IFtQQUw6OmdldFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlckNsYXNzKCkgcGF5
bWVudFNlcnZpY2VzTWVyY2hhbnRVUkw6XihOU1VSTCAqbWVyY2hhbnRVUkwsIE5TRXJyb3IgKmVy
cm9yKSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIExPR19FUlJPUigiUEtDYW5N
YWtlUGF5bWVudHNXaXRoTWVyY2hhbnRJZGVudGlmaWVyQW5kRG9tYWluIGVycm9yICVAIiwgZXJy
b3IpOworCisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IF57CisgICAgICAgICAgICBBU1NFUlQoX3Nlc3Npb25CbG9jayk7CisKKyAgICAgICAgICAgIGlm
ICghX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5KSB7CisgICAgICAgICAgICAgICAgX3Nl
c3Npb25CbG9jayhudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94
eS0+dmFsaWRhdGVNZXJjaGFudChtZXJjaGFudFVSTCk7CisgICAgICAgIH0pOworICAgIH1dOwor
fQorCitzdGF0aWMgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBw
aW5nTWV0aG9kIHRvU2hpcHBpbmdNZXRob2QoUEtTaGlwcGluZ01ldGhvZCAqc2hpcHBpbmdNZXRo
b2QpCit7CisgICAgQVNTRVJUKHNoaXBwaW5nTWV0aG9kKTsKKworICAgIFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCByZXN1bHQ7CisgICAgcmVz
dWx0LmxhYmVsID0gc2hpcHBpbmdNZXRob2QubGFiZWw7CisgICAgcmVzdWx0LmRldGFpbCA9IHNo
aXBwaW5nTWV0aG9kLmRldGFpbDsKKyAgICByZXN1bHQuYW1vdW50ID0gc2hpcHBpbmdNZXRob2Qu
YW1vdW50LnN0cmluZ1ZhbHVlOworICAgIHJlc3VsdC5pZGVudGlmaWVyID0gc2hpcHBpbmdNZXRo
b2QuaWRlbnRpZmllcjsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMzAwKSB8fCBQTEFU
Rk9STShJT1NfRkFNSUxZKQorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
cjooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEF1dGhv
cml6ZVBheW1lbnQ6KFBLUGF5bWVudCAqKXBheW1lbnQgaGFuZGxlcjoodm9pZCAoXikoUEtQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdCAqcmVzdWx0KSljb21wbGV0aW9uCit7CisjaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8
IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsK
KyAgICAgICAgY29tcGxldGlvbihhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdEluc3RhbmNlKCkgaW5pdFdpdGhTdGF0dXM6UEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1c0ZhaWx1cmUgZXJyb3JzOkBbIF1dKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBBU1NFUlQoIV9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24pOworICAgIF9w
YXltZW50QXV0aG9yaXplZENvbXBsZXRpb24gPSBjb21wbGV0aW9uOworCisgICAgX3BheW1lbnRQ
cm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRBdXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBheW1l
bnQocGF5bWVudCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25D
b250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIg
ZGlkU2VsZWN0UGF5bWVudE1ldGhvZDooUEtQYXltZW50TWV0aG9kICopcGF5bWVudE1ldGhvZCBo
YW5kbGVyOih2b2lkICheKShQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZSAqdXBk
YXRlKSljb21wbGV0aW9uCit7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5
bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgY29tcGxldGlvbihhZG9wdE5T
KFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGVJbnN0YW5jZSgp
IGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpAWyBdXSkuZ2V0KCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgQVNTRVJUKCFfZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBsZXRp
b24pOworICAgIF9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRpb247
CisgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RQYXltZW50TWV0
aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZCkpOworI2VuZGlmCit9CisK
Ky0gKHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3Jp
emF0aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Q6KFBL
U2hpcHBpbmdNZXRob2QgKilzaGlwcGluZ01ldGhvZCBoYW5kbGVyOih2b2lkICheKShQS1BheW1l
bnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKnVwZGF0ZSkpY29tcGxldGlvbiB7CisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEz
MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJv
eHkpIHsKKyAgICAgICAgY29tcGxldGlvbihhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVx
dWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5
SXRlbXM6QFsgXV0pLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VS
VCghX2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbik7CisgICAgX2RpZFNlbGVjdFNo
aXBwaW5nTWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3BheW1lbnRQcm9lc3ND
b29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZCh0b1NoaXBwaW5nTWV0aG9k
KHNoaXBwaW5nTWV0aG9kKSk7CisjZW5kaWYKK30KKworLSAodm9pZClwYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29udHJv
bGxlciBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6KFBLQ29udGFjdCAqKWNvbnRhY3QgaGFuZGxl
cjoodm9pZCAoXikoUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZSAqdXBkYXRl
KSljb21wbGV0aW9uCit7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5bWVu
dFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgY29tcGxldGlvbihhZG9wdE5TKFtQ
QUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUluc3RhbmNlKCkg
aW5pdFdpdGhFcnJvcnM6QFsgXSBwYXltZW50U3VtbWFyeUl0ZW1zOkBbIF0gc2hpcHBpbmdNZXRo
b2RzOkBbIF1dKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQo
IV9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uKTsKKyAgICBfZGlkU2VsZWN0U2hp
cHBpbmdDb250YWN0Q29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3BheW1lbnRQcm9lc3ND
b29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVu
dENvbnRhY3QoY29udGFjdCkpOworI2VuZGlmCit9CisKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMCkgfHwgKFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwg
MTEwMDAwKQorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjooUEtQYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEF1dGhvcml6ZVBheW1l
bnQ6KFBLUGF5bWVudCAqKXBheW1lbnQgY29tcGxldGlvbjoodm9pZCAoXikoUEtQYXltZW50QXV0
aG9yaXphdGlvblN0YXR1cykpY29tcGxldGlvbgoreworICAgIGlmICghX3BheW1lbnRQcm9lc3ND
b29yZGluYXRvclByb3h5KSB7CisgICAgICAgIGNvbXBsZXRpb24oUEtQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1c0ZhaWx1cmUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJU
KCFfcGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uKTsKKyAgICBfcGF5bWVudEF1dGhvcml6ZWRD
b21wbGV0aW9uID0gY29tcGxldGlvbjsKKworICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQ
cm94eS0+ZGlkQXV0aG9yaXplUGF5bWVudChXZWJDb3JlOjpQYXltZW50KHBheW1lbnQpKTsKK30K
KworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZDoo
UEtTaGlwcGluZ01ldGhvZCAqKXNoaXBwaW5nTWV0aG9kIGNvbXBsZXRpb246KHZvaWQgKF4pKFBL
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMgc3RhdHVzLCBOU0FycmF5PFBLUGF5bWVudFN1bW1h
cnlJdGVtICo+ICpzdW1tYXJ5SXRlbXMpKWNvbXBsZXRpb24KK3sKKyAgICBpZiAoIV9wYXltZW50
UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKFBLUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlLCBAWyBdKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEFTU0VSVCghX2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbik7CisgICAg
X2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3Bh
eW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZCh0b1No
aXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKSk7Cit9CisKKy0gKHZvaWQpcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAqKWNv
bnRyb2xsZXIgZGlkU2VsZWN0UGF5bWVudE1ldGhvZDooUEtQYXltZW50TWV0aG9kICopcGF5bWVu
dE1ldGhvZCBjb21wbGV0aW9uOih2b2lkICheKShOU0FycmF5PFBLUGF5bWVudFN1bW1hcnlJdGVt
ICo+ICpzdW1tYXJ5SXRlbXMpKWNvbXBsZXRpb24KK3sKKyAgICBpZiAoIV9wYXltZW50UHJvZXNz
Q29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKEBbIF0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKCFfZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBs
ZXRpb24pOworICAgIF9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRp
b247CisKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFBheW1l
bnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kKSk7Cit9CisKKy0g
KHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0
aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0OihQS0Nv
bnRhY3QgKiljb250YWN0IGNvbXBsZXRpb246KHZvaWQgKF4pKFBLUGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXMgc3RhdHVzLCBOU0FycmF5PFBLU2hpcHBpbmdNZXRob2QgKj4gKnNoaXBwaW5nTWV0
aG9kcywgTlNBcnJheTxQS1BheW1lbnRTdW1tYXJ5SXRlbSAqPiAqc3VtbWFyeUl0ZW1zKSljb21w
bGV0aW9uCit7CisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAg
ICAgICAgY29tcGxldGlvbihQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZSwgQFsg
XSwgQFsgXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIV9kaWRTZWxl
Y3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uKTsKKyAgICBfZGlkU2VsZWN0U2hpcHBpbmdDb250
YWN0Q29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRv
clByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVudENvbnRhY3Qo
Y29udGFjdCkpOworfQorCisjZW5kaWYKKworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXJEaWRGaW5pc2g6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29u
dHJvbGxlcgoreworICAgIGlmICghX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5KQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIV9kaWRSZWFjaEZpbmFsU3RhdGUpCisgICAgICAgIF9w
YXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eS0+ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsK
KworICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eS0+aGlkZVBheW1lbnRVSSgpOwor
fQorCitAZW5kCisKKy8vIEZJWE1FOiBPbmNlIHJkYXI6Ly9wcm9ibGVtLzI0NDIwMDI0IGhhcyBi
ZWVuIGZpeGVkLCBpbXBvcnQgUEtQYXltZW50UmVxdWVzdF9Qcml2YXRlLmggaW5zdGVhZC4KK0Bp
bnRlcmZhY2UgUEtQYXltZW50UmVxdWVzdCAoKQorQHByb3BlcnR5IChub25hdG9taWMsIHJldGFp
bikgTlNVUkwgKm9yaWdpbmF0aW5nVVJMOworQGVuZAorCitAaW50ZXJmYWNlIFBLUGF5bWVudFJl
cXVlc3QgKCkKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIGl0J3MgaW4gYW4gU0RLLgorQHBy
b3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNBcnJheSAqdGh1bWJuYWlsVVJMczsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TVVJMICp0aHVtYm5haWxVUkw7CisKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgZXhwZWN0c01lcmNoYW50U2Vzc2lvbjsKK0BlbmQK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5OjpwbGF0Zm9ybUNhbk1ha2VQYXltZW50cygpCit7CisgICAgcmV0dXJuIFtQQUw6OmdldFBL
UGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlckNsYXNzKCkgY2FuTWFrZVBheW1lbnRz
XTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ2Fu
TWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgIFBLQ2Fu
TWFrZVBheW1lbnRzV2l0aE1lcmNoYW50SWRlbnRpZmllckRvbWFpbkFuZFNvdXJjZUFwcGxpY2F0
aW9uKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgQCIiLCBCbG9ja1B0cjx2b2lkKEJP
T0wsIE5TRXJyb3IgKik+Ojpmcm9tQ2FsbGFibGUoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgY2FuTWFrZVBheW1lbnRzLCBOU0Vycm9yICplcnJv
cikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIExPR19FUlJPUigi
UEtDYW5NYWtlUGF5bWVudHNXaXRoTWVyY2hhbnRJZGVudGlmaWVyQW5kRG9tYWluIGVycm9yICVA
IiwgZXJyb3IpOworCisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2FuTWFrZVBheW1lbnRzXSB7
CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjYW5NYWtlUGF5bWVudHMpOworICAgICAg
ICB9KTsKKyAgICB9KS5nZXQoKSk7CisjZWxzZQorICAgIFBLQ2FuTWFrZVBheW1lbnRzV2l0aE1l
cmNoYW50SWRlbnRpZmllckFuZERvbWFpbihtZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUs
IEJsb2NrUHRyPHZvaWQoQk9PTCwgTlNFcnJvciAqKT46OmZyb21DYWxsYWJsZShbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQk9PTCBjYW5NYWtlUGF5bWVu
dHMsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAg
ICAgICAgTE9HX0VSUk9SKCJQS0Nhbk1ha2VQYXltZW50c1dpdGhNZXJjaGFudElkZW50aWZpZXJB
bmREb21haW4gZXJyb3IgJUAiLCBlcnJvcik7CisKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBj
YW5NYWtlUGF5bWVudHNdIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNhbk1ha2VQ
YXltZW50cyk7CisgICAgICAgIH0pOworICAgIH0pLmdldCgpKTsKKyNlbmRpZgorfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1PcGVuUGF5bWVudFNldHVw
KGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5h
bWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBhdXRvIHBhc3NMaWJyYXJ5ID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGFzc0xpYnJhcnlJbnN0
YW5jZSgpIGluaXRdKTsKKyAgICBbcGFzc0xpYnJhcnkgb3BlblBheW1lbnRTZXR1cEZvck1lcmNo
YW50SWRlbnRpZmllcjptZXJjaGFudElkZW50aWZpZXIgZG9tYWluOmRvbWFpbk5hbWUgY29tcGxl
dGlvbjpCbG9ja1B0cjx2b2lkKEJPT0wpPjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShCT09MIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcmVzdWx0XSB7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihyZXN1bHQpOworICAgICAgICB9KTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3N0YXRp
YyBQS1BheW1lbnRTdW1tYXJ5SXRlbVR5cGUgdG9QS1BheW1lbnRTdW1tYXJ5SXRlbVR5cGUoV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkxpbmVJdGVtOjpUeXBlIHR5cGUp
Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6TGluZUl0ZW06OlR5cGU6OkZpbmFsOgorICAgICAgICByZXR1cm4g
UEtQYXltZW50U3VtbWFyeUl0ZW1UeXBlRmluYWw7CisKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbTo6VHlwZTo6UGVuZGluZzoKKyAgICAg
ICAgcmV0dXJuIFBLUGF5bWVudFN1bW1hcnlJdGVtVHlwZVBlbmRpbmc7CisgICAgfQorfQorCitz
dGF0aWMgTlNEZWNpbWFsTnVtYmVyICp0b0RlY2ltYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBhbW91
bnQpCit7CisgICAgaWYgKCFhbW91bnQpCisgICAgICAgIHJldHVybiBbTlNEZWNpbWFsTnVtYmVy
IHplcm9dOworICAgIHJldHVybiBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRoU3Ry
aW5nOmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2VwYXJhdG9yIDogQCIuIiB9XTsK
K30KKworc3RhdGljIFJldGFpblB0cjxQS1BheW1lbnRTdW1tYXJ5SXRlbT4gdG9QS1BheW1lbnRT
dW1tYXJ5SXRlbShjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
TGluZUl0ZW0mIGxpbmVJdGVtKQoreworICAgIHJldHVybiBbUEFMOjpnZXRQS1BheW1lbnRTdW1t
YXJ5SXRlbUNsYXNzKCkgc3VtbWFyeUl0ZW1XaXRoTGFiZWw6bGluZUl0ZW0ubGFiZWwgYW1vdW50
OnRvRGVjaW1hbE51bWJlcihsaW5lSXRlbS5hbW91bnQpIHR5cGU6dG9QS1BheW1lbnRTdW1tYXJ5
SXRlbVR5cGUobGluZUl0ZW0udHlwZSldOworfQorCitzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+
IHRvUEtQYXltZW50U3VtbWFyeUl0ZW1zKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYgdG90YWxBbmRMaW5lSXRlbXMpCit7Cisg
ICAgYXV0byBwYXltZW50U3VtbWFyeUl0ZW1zID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CisgICAgZm9yIChhdXRvJiBsaW5lSXRlbSA6IHRvdGFsQW5kTGluZUl0ZW1z
LmxpbmVJdGVtcykgeworICAgICAgICBpZiAoYXV0byBzdW1tYXJ5SXRlbSA9IHRvUEtQYXltZW50
U3VtbWFyeUl0ZW0obGluZUl0ZW0pKQorICAgICAgICAgICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMg
YWRkT2JqZWN0OnN1bW1hcnlJdGVtLmdldCgpXTsKKyAgICB9CisKKyAgICBpZiAoYXV0byB0b3Rh
bEl0ZW0gPSB0b1BLUGF5bWVudFN1bW1hcnlJdGVtKHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsKSkK
KyAgICAgICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMgYWRkT2JqZWN0OnRvdGFsSXRlbS5nZXQoKV07
CisKKyAgICByZXR1cm4gcGF5bWVudFN1bW1hcnlJdGVtczsKK30KKworc3RhdGljIFJldGFpblB0
cjxQS1NoaXBwaW5nTWV0aG9kPiB0b1BLU2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhv
ZCkKK3sKKyAgICBSZXRhaW5QdHI8UEtTaGlwcGluZ01ldGhvZD4gcmVzdWx0ID0gW1BBTDo6Z2V0
UEtTaGlwcGluZ01ldGhvZENsYXNzKCkgc3VtbWFyeUl0ZW1XaXRoTGFiZWw6c2hpcHBpbmdNZXRo
b2QubGFiZWwgYW1vdW50OnRvRGVjaW1hbE51bWJlcihzaGlwcGluZ01ldGhvZC5hbW91bnQpXTsK
KyAgICBbcmVzdWx0IHNldElkZW50aWZpZXI6c2hpcHBpbmdNZXRob2QuaWRlbnRpZmllcl07Cisg
ICAgW3Jlc3VsdCBzZXREZXRhaWw6c2hpcHBpbmdNZXRob2QuZGV0YWlsXTsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK1JldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5bWVudFJl
cXVlc3QoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRv
cHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAK
KyAgICBbcmVzdWx0IHNldE9yaWdpbmF0aW5nVVJMOm9yaWdpbmF0aW5nVVJMXTsKKyAgICAKKyAg
ICBpZiAoW3Jlc3VsdCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFRodW1ibmFpbFVS
THM6KV0pIHsKKyAgICAgICAgYXV0byB0aHVtYm5haWxVUkxzID0gYWRvcHROUyhbW05TTXV0YWJs
ZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byYgbGlua0ljb25VUkwgOiBs
aW5rSWNvblVSTHMpCisgICAgICAgICAgICBbdGh1bWJuYWlsVVJMcyBhZGRPYmplY3Q6c3RhdGlj
X2Nhc3Q8TlNVUkwgKj4obGlua0ljb25VUkwpXTsKKyAgICAgICAgCisgICAgICAgIFtyZXN1bHQg
c2V0VGh1bWJuYWlsVVJMczp0aHVtYm5haWxVUkxzLmdldCgpXTsKKyAgICB9IGVsc2UgaWYgKCFs
aW5rSWNvblVSTHMuaXNFbXB0eSgpKQorICAgICAgICBbcmVzdWx0IHNldFRodW1ibmFpbFVSTDps
aW5rSWNvblVSTHNbMF1dOworICAgIAorI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA+PSAxMDEzMDQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgW3Jlc3VsdCBz
ZXRBUElUeXBlOnRvQVBJVHlwZShwYXltZW50UmVxdWVzdC5yZXF1ZXN0ZXIoKSldOworI2VuZGlm
CisgICAgCisgICAgW3Jlc3VsdCBzZXRDb3VudHJ5Q29kZTpwYXltZW50UmVxdWVzdC5jb3VudHJ5
Q29kZSgpXTsKKyAgICBbcmVzdWx0IHNldEN1cnJlbmN5Q29kZTpwYXltZW50UmVxdWVzdC5jdXJy
ZW5jeUNvZGUoKV07CisgICAgW3Jlc3VsdCBzZXRCaWxsaW5nQ29udGFjdDpwYXltZW50UmVxdWVz
dC5iaWxsaW5nQ29udGFjdCgpLnBrQ29udGFjdCgpXTsKKyAgICBbcmVzdWx0IHNldFNoaXBwaW5n
Q29udGFjdDpwYXltZW50UmVxdWVzdC5zaGlwcGluZ0NvbnRhY3QoKS5wa0NvbnRhY3QoKV07Cisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgW3Jlc3VsdCBzZXRSZXF1aXJlZEJpbGxpbmdDb250
YWN0RmllbGRzOnRvUEtDb250YWN0RmllbGRzKHBheW1lbnRSZXF1ZXN0LnJlcXVpcmVkQmlsbGlu
Z0NvbnRhY3RGaWVsZHMoKSkuZ2V0KCldOworICAgIFtyZXN1bHQgc2V0UmVxdWlyZWRTaGlwcGlu
Z0NvbnRhY3RGaWVsZHM6dG9QS0NvbnRhY3RGaWVsZHMocGF5bWVudFJlcXVlc3QucmVxdWlyZWRT
aGlwcGluZ0NvbnRhY3RGaWVsZHMoKSkuZ2V0KCldOworI2Vsc2UKKyAgICBbcmVzdWx0IHNldFJl
cXVpcmVkQmlsbGluZ0FkZHJlc3NGaWVsZHM6dG9QS0FkZHJlc3NGaWVsZChwYXltZW50UmVxdWVz
dC5yZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzKCkpXTsKKyAgICBbcmVzdWx0IHNldFJlcXVp
cmVkU2hpcHBpbmdBZGRyZXNzRmllbGRzOnRvUEtBZGRyZXNzRmllbGQocGF5bWVudFJlcXVlc3Qu
cmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHMoKSldOworI2VuZGlmCisgICAgCisgICAgW3Jl
c3VsdCBzZXRTdXBwb3J0ZWROZXR3b3Jrczp0b1N1cHBvcnRlZE5ldHdvcmtzKHBheW1lbnRSZXF1
ZXN0LnN1cHBvcnRlZE5ldHdvcmtzKCkpLmdldCgpXTsKKyAgICBbcmVzdWx0IHNldE1lcmNoYW50
Q2FwYWJpbGl0aWVzOnRvUEtNZXJjaGFudENhcGFiaWxpdGllcyhwYXltZW50UmVxdWVzdC5tZXJj
aGFudENhcGFiaWxpdGllcygpKV07CisgICAgCisgICAgW3Jlc3VsdCBzZXRTaGlwcGluZ1R5cGU6
dG9QS1NoaXBwaW5nVHlwZShwYXltZW50UmVxdWVzdC5zaGlwcGluZ1R5cGUoKSldOworICAgIAor
ICAgIGF1dG8gc2hpcHBpbmdNZXRob2RzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0XSk7CisgICAgZm9yIChhdXRvJiBzaGlwcGluZ01ldGhvZCA6IHBheW1lbnRSZXF1ZXN0
LnNoaXBwaW5nTWV0aG9kcygpKQorICAgICAgICBbc2hpcHBpbmdNZXRob2RzIGFkZE9iamVjdDp0
b1BLU2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpLmdldCgpXTsKKyAgICBbcmVzdWx0IHNl
dFNoaXBwaW5nTWV0aG9kczpzaGlwcGluZ01ldGhvZHMuZ2V0KCldOworICAgIAorICAgIGF1dG8g
cGF5bWVudFN1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dF0pOworICAgIGZvciAoYXV0byYgbGluZUl0ZW0gOiBwYXltZW50UmVxdWVzdC5saW5lSXRlbXMo
KSkgeworICAgICAgICBpZiAoYXV0byBzdW1tYXJ5SXRlbSA9IHRvUEtQYXltZW50U3VtbWFyeUl0
ZW0obGluZUl0ZW0pKQorICAgICAgICAgICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMgYWRkT2JqZWN0
OnN1bW1hcnlJdGVtLmdldCgpXTsKKyAgICB9CisgICAgCisgICAgaWYgKGF1dG8gdG90YWxJdGVt
ID0gdG9QS1BheW1lbnRTdW1tYXJ5SXRlbShwYXltZW50UmVxdWVzdC50b3RhbCgpKSkKKyAgICAg
ICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMgYWRkT2JqZWN0OnRvdGFsSXRlbS5nZXQoKV07CisgICAg
CisgICAgW3Jlc3VsdCBzZXRQYXltZW50U3VtbWFyeUl0ZW1zOnBheW1lbnRTdW1tYXJ5SXRlbXMu
Z2V0KCldOworICAgIAorICAgIFtyZXN1bHQgc2V0RXhwZWN0c01lcmNoYW50U2Vzc2lvbjpZRVNd
OworICAgIAorICAgIGlmICghcGF5bWVudFJlcXVlc3QuYXBwbGljYXRpb25EYXRhKCkuaXNOdWxs
KCkpIHsKKyAgICAgICAgYXV0byBhcHBsaWNhdGlvbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6cGF5bWVudFJlcXVlc3QuYXBwbGljYXRp
b25EYXRhKCkgb3B0aW9uczowXSk7CisgICAgICAgIFtyZXN1bHQgc2V0QXBwbGljYXRpb25EYXRh
OmFwcGxpY2F0aW9uRGF0YS5nZXQoKV07CisgICAgfQorICAgIAorI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEw
MDAwKQorICAgIFtyZXN1bHQgc2V0U3VwcG9ydGVkQ291bnRyaWVzOnRvTlNTZXQocGF5bWVudFJl
cXVlc3Quc3VwcG9ydGVkQ291bnRyaWVzKCkpLmdldCgpXTsKKyNlbmRpZgorICAgIAorICAgIC8v
IFRPRE86IHNldCBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgYXBwbGljYXRpb24gYnVuZGxlIGlkZW50
aWZpZXIgaGVyZQorICAgIC8vIGxpa2UgYW5hbG9nb3VzIGZ1bmN0aW9uIGluIFdlYlBheW1lbnRD
b29yZGluYXRvclByb3h5Q29jb2EubW0KKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMTAwMDApCitzdGF0aWMgUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1
cyB0b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMoV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMgc3RhdHVzKQoreworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6U3VjY2VzczoKKyAgICAgICAgcmV0
dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNTdWNjZXNzOworICAgIGNhc2UgV2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU6CisgICAgICAgIHJldHVybiBQ
S1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZTsKKyAgICBjYXNlIFdlYkNvcmU6OlBh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5SZXF1aXJlZDoKKyAgICAgICAgcmV0dXJuIFBL
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5SZXF1aXJlZDsKKyAgICBjYXNlIFdlYkNvcmU6
OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5JbmNvcnJlY3Q6CisgICAgICAgIHJldHVy
biBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzUElOSW5jb3JyZWN0OworICAgIGNhc2UgV2Vi
Q29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTkxvY2tvdXQ6CisgICAgICAgIHJl
dHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzUElOTG9ja291dDsKKyAgICB9Cit9CisK
K3N0YXRpYyBQS1BheW1lbnRFcnJvckNvZGUgdG9QS1BheW1lbnRFcnJvckNvZGUoV2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb2RlIGNvZGUpCit7CisgICAgc3dpdGNoIChjb2RlKSB7CisgICAgY2Fz
ZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlVua25vd246CisgICAgICAgIHJldHVybiBQ
S1BheW1lbnRVbmtub3duRXJyb3I7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNv
ZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRTaGlw
cGluZ0NvbnRhY3RJbnZhbGlkRXJyb3I7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZDoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJp
bGxpbmdDb250YWN0SW52YWxpZEVycm9yOworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJsZToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNo
aXBwaW5nQWRkcmVzc1Vuc2VydmljZWFibGVFcnJvcjsKKyAgICB9Cit9CisKK3N0YXRpYyBSZXRh
aW5QdHI8TlNFcnJvcj4gdG9OU0Vycm9yKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRFcnJvciYgZXJy
b3IpCit7CisgICAgYXV0byB1c2VySW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0XSk7CisgICAgW3VzZXJJbmZvIHNldE9iamVjdDplcnJvci5tZXNzYWdlIGZv
cktleTpOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5XTsKKworICAgIGlmIChlcnJvci5jb250YWN0
RmllbGQpIHsKKyAgICAgICAgTlNTdHJpbmcgKnBrQ29udGFjdEZpZWxkID0gbmlsOworICAgICAg
ICBOU1N0cmluZyAqcG9zdGFsQWRkcmVzc0tleSA9IG5pbDsKKworICAgICAgICBzd2l0Y2ggKCpl
cnJvci5jb250YWN0RmllbGQpIHsKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXI6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9
IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQaG9uZU51bWJlcigpOworICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RG
aWVsZDo6RW1haWxBZGRyZXNzOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6Omdl
dF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkRW1haWxBZGRyZXNzKCk7CisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpO
YW1lOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29u
dGFjdEZpZWxkTmFtZSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lOgorICAgICAgICAg
ICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUGhvbmV0
aWNOYW1lKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzOgorICAgICAgICAgICAgcGtD
b250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVz
cygpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzOgorICAgICAgICAgICAgcGtDb250YWN0
RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwor
ICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1N0cmVldEtl
eSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3ViTG9jYWxpdHk6CisgICAgICAgICAgICBwa0NvbnRhY3RG
aWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7Cisg
ICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViTG9jYWxp
dHlLZXkoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkxvY2FsaXR5OgorICAgICAgICAgICAgcGtDb250YWN0
RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwor
ICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc0NpdHlLZXko
KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbENvZGU6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVs
ZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CisgICAg
ICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzUG9zdGFsQ29kZUtl
eSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3ViQWRtaW5pc3RyYXRpdmVBcmVhOgorICAgICAgICAgICAg
cGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRk
cmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVz
c1N1YkFkbWluaXN0cmF0aXZlQXJlYUtleSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRp
dmVBcmVhOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BL
Q29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tl
eSA9IGdldENOUG9zdGFsQWRkcmVzc1N0YXRlS2V5KCk7CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpDb3VudHJ5
OgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFj
dEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdl
dENOUG9zdGFsQWRkcmVzc0NvdW50cnlLZXkoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkNvdW50cnlDb2Rl
OgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFj
dEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdl
dENOUG9zdGFsQWRkcmVzc0lTT0NvdW50cnlDb2RlS2V5KCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorCisgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6cGtDb250YWN0RmllbGQg
Zm9yS2V5OlBBTDo6Z2V0X1Bhc3NLaXRfUEtQYXltZW50RXJyb3JDb250YWN0RmllbGRVc2VySW5m
b0tleSgpXTsKKyAgICAgICAgaWYgKHBvc3RhbEFkZHJlc3NLZXkpCisgICAgICAgICAgICBbdXNl
ckluZm8gc2V0T2JqZWN0OnBvc3RhbEFkZHJlc3NLZXkgZm9yS2V5OlBBTDo6Z2V0X1Bhc3NLaXRf
UEtQYXltZW50RXJyb3JQb3N0YWxBZGRyZXNzVXNlckluZm9LZXkoKV07CisgICAgfQorCisgICAg
cmV0dXJuIGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpnZXRQS1BheW1l
bnRFcnJvckRvbWFpbigpIGNvZGU6dG9QS1BheW1lbnRFcnJvckNvZGUoZXJyb3IuY29kZSkgdXNl
ckluZm86dXNlckluZm8uZ2V0KCldKTsKK30KKworc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB0
b05TRXJyb3JzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+JiBlcnJvcnMpCit7
CisgICAgYXV0byByZXN1bHQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRd
KTsKKworICAgIGZvciAoYXV0byBlcnJvciA6IGVycm9ycykgeworICAgICAgICBpZiAoYXV0byBu
c0Vycm9yID0gdG9OU0Vycm9yKGVycm9yKSkKKyAgICAgICAgICAgIFtyZXN1bHQgYWRkT2JqZWN0
Om5zRXJyb3IuZ2V0KCldOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisjZWxzZQor
c3RhdGljIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMgdG9QS1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQ+JiByZXN1bHQpCit7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBQ
S1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzU3VjY2VzczsKKworICAgIGlmIChyZXN1bHQtPmVy
cm9ycy5zaXplKCkgPT0gMSkgeworICAgICAgICBhdXRvJiBlcnJvciA9IHJlc3VsdC0+ZXJyb3Jz
WzBdOworICAgICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHsKKyAgICAgICAgY2FzZSBXZWJDb3Jl
OjpQYXltZW50RXJyb3I6OkNvZGU6OlVua25vd246CisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJsZToKKyAgICAgICAgICAgIHJldHVy
biBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZTsKKworICAgICAgICBjYXNlIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlkOgorICAgICAg
ICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNJbnZhbGlkQmlsbGluZ1Bv
c3RhbEFkZHJlc3M7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6
OlNoaXBwaW5nQ29udGFjdEludmFsaWQ6CisgICAgICAgICAgICBpZiAoZXJyb3IuY29udGFjdEZp
ZWxkICYmIGVycm9yLmNvbnRhY3RGaWVsZCA9PSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRh
Y3RGaWVsZDo6UG9zdGFsQWRkcmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm4gUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1c0ludmFsaWRTaGlwcGluZ1Bvc3RhbEFkZHJlc3M7CisKKyAgICAg
ICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzSW52YWxpZFNoaXBwaW5n
Q29udGFjdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN3aXRjaCAocmVzdWx0LT5zdGF0dXMp
IHsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpTdWNjZXNz
OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nlc3M7Cisg
ICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZToKKyAg
ICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOworICAgIGNh
c2UgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTlJlcXVpcmVkOgorICAg
ICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1BJTlJlcXVpcmVkOworICAg
IGNhc2UgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTkluY29ycmVjdDoK
KyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5JbmNvcnJlY3Q7
CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6UElOTG9ja291
dDoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5Mb2Nrb3V0
OworICAgIH0KKworICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVy
ZTsKK30KKyNlbmRpZgorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxh
dGZvcm1Db21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiByZXN1bHQpCit7CisgICAgQVNTRVJUKG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyKTsKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9y
aXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7CisKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlckRlbGVnYXRlLT5fZGlkUmVhY2hGaW5hbFN0YXRlID0gV2ViQ29yZTo6aXNGaW5h
bFN0YXRlUmVzdWx0KHJlc3VsdCk7CisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBhdXRv
IHN0YXR1cyA9IHJlc3VsdCA/IHJlc3VsdC0+c3RhdHVzIDogV2ViQ29yZTo6UGF5bWVudEF1dGhv
cml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M7CisgICAgYXV0byBwa1BheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0ID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRJ
bnN0YW5jZSgpIGluaXRXaXRoU3RhdHVzOnRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhz
dGF0dXMpIGVycm9yczpyZXN1bHQgPyB0b05TRXJyb3JzKHJlc3VsdC0+ZXJyb3JzKS5nZXQoKSA6
IEBbIF1dKTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5f
cGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uKHBrUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQu
Z2V0KCkpOworI2Vsc2UKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVn
YXRlLT5fcGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uKHRvUEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1cyhyZXN1bHQpKTsKKyNlbmRpZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24gPSBudWxscHRyOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0
ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9u
JiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQoreworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3Jp
emF0aW9uQ29udHJvbGxlcik7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUpOworCisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZS0+X3Nlc3Npb25CbG9jayhwYXltZW50TWVyY2hhbnRTZXNzaW9uLnBrUGF5bWVudE1l
cmNoYW50U2Vzc2lvbigpLCBudWxscHRyKTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlckRlbGVnYXRlLT5fc2Vzc2lvbkJsb2NrID0gbnVsbHB0cjsKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhv
ZFNlbGVjdGlvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBk
YXRlPiYgdXBkYXRlKQoreworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJv
bGxlcik7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdh
dGUpOworCisgICAgaWYgKHVwZGF0ZSkKKyAgICAgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRTdW1tYXJ5SXRlbXMgPSB0b1BLUGF5bWVudFN1bW1h
cnlJdGVtcyh1cGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKTsKKworI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTEwMDAwKQorICAgIGF1dG8gcGtTaGlwcGluZ01ldGhvZFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6
YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRX
aXRoUGF5bWVudFN1bW1hcnlJdGVtczptX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRl
bGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKV0pOworICAgIG1fcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBs
ZXRpb24ocGtTaGlwcGluZ01ldGhvZFVwZGF0ZS5nZXQoKSk7CisjZWxzZQorICAgIG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZENvbXBsZXRpb24oUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nlc3MsIG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zLmdl
dCgpKTsKKyNlbmRpZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdh
dGUtPl9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBsZXRpb24gPSBudWxscHRyOworfQorCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEw
MTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIDwgMTEwMDAwKQorc3RhdGljIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMg
dG9QS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQoreworICAgIGlmICghdXBkYXRlIHx8
IHVwZGF0ZS0+ZXJyb3JzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhv
cml6YXRpb25TdGF0dXNTdWNjZXNzOworCisgICAgaWYgKHVwZGF0ZS0+ZXJyb3JzLnNpemUoKSA9
PSAxKSB7CisgICAgICAgIGF1dG8mIGVycm9yID0gdXBkYXRlLT5lcnJvcnNbMF07CisgICAgICAg
IHN3aXRjaCAoZXJyb3IuY29kZSkgeworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJv
cjo6Q29kZTo6VW5rbm93bjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNv
ZGU6OkFkZHJlc3NVbnNlcnZpY2VhYmxlOgorICAgICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb2RlOjpCaWxsaW5nQ29udGFjdEludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4g
UEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0ludmFsaWRCaWxsaW5nUG9zdGFsQWRkcmVzczsK
KworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250
YWN0SW52YWxpZDoKKyAgICAgICAgICAgIGlmIChlcnJvci5jb250YWN0RmllbGQgJiYgZXJyb3Iu
Y29udGFjdEZpZWxkID09IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0
YWxBZGRyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzSW52YWxpZFNoaXBwaW5nUG9zdGFsQWRkcmVzczsKKworICAgICAgICAgICAgcmV0dXJu
IFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNJbnZhbGlkU2hpcHBpbmdDb250YWN0OworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNG
YWlsdXJlOworfQorI2VuZGlmCisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQoreworICAgIEFT
U0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcik7CisgICAgQVNTRVJUKG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUpOworCisgICAgaWYgKHVwZGF0ZSkg
eworICAgICAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5
bWVudFN1bW1hcnlJdGVtcyA9IHRvUEtQYXltZW50U3VtbWFyeUl0ZW1zKHVwZGF0ZS0+bmV3VG90
YWxBbmRMaW5lSXRlbXMpOworCisgICAgICAgIGF1dG8gc2hpcHBpbmdNZXRob2RzID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byYgc2hp
cHBpbmdNZXRob2QgOiB1cGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9kcykKKyAgICAgICAgICAgIFtz
aGlwcGluZ01ldGhvZHMgYWRkT2JqZWN0OnRvUEtTaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhv
ZCkuZ2V0KCldOworCisgICAgICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVs
ZWdhdGUtPl9zaGlwcGluZ01ldGhvZHMgPSBXVEZNb3ZlKHNoaXBwaW5nTWV0aG9kcyk7CisgICAg
fQorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgYXV0byBwa1NoaXBwaW5nQ29udGFjdFVw
ZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0
VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczp1cGRhdGUgPyB0b05TRXJyb3JzKHVwZGF0
ZS0+ZXJyb3JzKS5nZXQoKSA6IEBbIF0gcGF5bWVudFN1bW1hcnlJdGVtczptX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKSBz
aGlwcGluZ01ldGhvZHM6bV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+
X3NoaXBwaW5nTWV0aG9kcy5nZXQoKV0pOworICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uKHBrU2hp
cHBpbmdDb250YWN0VXBkYXRlLmdldCgpKTsKKyNlbHNlCisgICAgbV9wYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRp
b24odG9QS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKHVwZGF0ZSksIG1fcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9zaGlwcGluZ01ldGhvZHMuZ2V0KCksIG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1z
LmdldCgpKTsKKyNlbmRpZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVs
ZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uID0gbnVsbHB0cjsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVQ
YXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVu
dE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXIpOworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJv
bGxlckRlbGVnYXRlKTsKKworICAgIGlmICh1cGRhdGUpCisgICAgICAgIG1fcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zID0gdG9QS1Bh
eW1lbnRTdW1tYXJ5SXRlbXModXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyk7CisKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMw
MCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkKKyAgICBhdXRvIHBrUGF5bWVudE1ldGhvZFVwZGF0ZSA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZUluc3RhbmNl
KCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOm1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zLmdldCgpXSk7CisgICAgbV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFBheW1lbnRNZXRo
b2RDb21wbGV0aW9uKHBrUGF5bWVudE1ldGhvZFVwZGF0ZS5nZXQoKSk7CisjZWxzZQorICAgIG1f
cGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RQYXltZW50
TWV0aG9kQ29tcGxldGlvbihtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRl
LT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKSk7CisjZW5kaWYKKyAgICBtX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBs
ZXRpb24gPSBudWxscHRyOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OnBsYXRmb3JtQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCkKK3sKKyAgICBO
U0FycmF5PFBLUGF5bWVudE5ldHdvcms+ICphdmFpbGFibGVOZXR3b3JrcyA9IFtQQUw6OmdldFBL
UGF5bWVudFJlcXVlc3RDbGFzcygpIGF2YWlsYWJsZU5ldHdvcmtzXTsKKyAgICBWZWN0b3I8U3Ry
aW5nPiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYXZhaWxhYmxl
TmV0d29ya3MuY291bnQpOworICAgIGZvciAoUEtQYXltZW50TmV0d29yayBuZXR3b3JrIGluIGF2
YWlsYWJsZU5ldHdvcmtzKQorICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKG5ldHdvcmsp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5SU9TLm1tIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlJT1MubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGMwODY5ZjZjYTZhZDM2OWU2YjEzYzdiZjBjMTI2Yjk1MjU4MmZlNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5SU9TLm1tCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFQUExFX1BBWSkgJiYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKKyNpbXBv
cnQgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLmgiCisjaW1wb3J0IDxQYXNz
S2l0L1Bhc3NLaXQuaD4KKyNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXIuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KKyNpbXBvcnQgPHBhbC9j
b2NvYS9QYXNzS2l0U29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXltZW50VUkoY29uc3Qg
V2ViQ29yZTo6VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVSTD4m
IGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3QmIHJlcXVlc3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIW1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVy
KTsKKworICAgIGF1dG8gcGF5bWVudFJlcXVlc3QgPSB0b1BLUGF5bWVudFJlcXVlc3Qob3JpZ2lu
YXRpbmdVUkwsIGxpbmtJY29uVVJMU3RyaW5ncywgcmVxdWVzdCk7CisKKyAgICBtX3BheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50UmVxdWVzdDpwYXlt
ZW50UmVxdWVzdC5nZXQoKV0pOworICAgIGlmICghbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRy
b2xsZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIGFs
bG9jXSBpbml0V2l0aFBheW1lbnRDb29yZGluYXRvclByb3h5Oip0aGlzXSk7CisgICAgbV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRTdW1tYXJ5SXRlbXMg
PSBbcGF5bWVudFJlcXVlc3QgcGF5bWVudFN1bW1hcnlJdGVtc107CisgICAgbV9wYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3NoaXBwaW5nTWV0aG9kcyA9IFtwYXltZW50
UmVxdWVzdCBzaGlwcGluZ01ldGhvZHNdOworCisgICAgW21fcGF5bWVudEF1dGhvcml6YXRpb25D
b250cm9sbGVyIHNldERlbGVnYXRlOm1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVs
ZWdhdGUuZ2V0KCldOworICAgIFttX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciBzZXRQ
cml2YXRlRGVsZWdhdGU6bV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS5n
ZXQoKV07CisgICAgW21fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyIHByZXNlbnRXaXRo
Q29tcGxldGlvbjogbnVsbHB0cl07CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmhpZGVQYXltZW50VUkoKQor
eworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcik7CisgICAgQVNT
RVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUpOworCisgICAgW21f
cGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyIGRpc21pc3NXaXRoQ29tcGxldGlvbjpudWxs
cHRyXTsKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6
bmlsXTsKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgc2V0UHJpdmF0ZURl
bGVnYXRlOm5pbF07CisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgPSBudWxs
cHRyOworCisgICAgW21fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgaW52
YWxpZGF0ZV07CisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSA9
IG51bGxwdHI7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmlu
ZGV4IGMzMWM0MDg4YTJkNmJjZDk0MWJjNzc3YzllYTM5NTFhOTE5OWU3OGUuLmMxNjEwYTUzNWYz
MjQ1YTU0OGFlMTRhNGJhZjM3NDQ1ZjVmZDUyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KQEAgLTQ5LDcgKzUwLDcgQEAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWQK
IHsKICAgICAvLyBOT1RFOiB3ZSBtdXN0IHNldCB0aGlzIHRvIHRydWUgYmVjYXVzZSB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIG1heSByZS1lbnRlciB3aGVuIHNlbmRpbmcKICAgICAvLyBhIHN5bmMg
SVBDIGFuZCB0aGlzIGlzIGEgaHVnZSBzb3VyY2Ugb2Ygc2VjdXJpdHkgYnVncwotICAgIG1fY29u
bmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpCisgICAgbV9jb25uZWN0aW9uLT5z
ZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblBy
b2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiB9
CiAKQEAgLTYxLDcgKzYyLDEyIEBAIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogdm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7Ci0gICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlUGF5bWVu
dFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xl
dG9uKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTcwLDkgKzc2LDYxIEBAIHZvaWQgUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
CiAKIHZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgUGF5bWVudFByb2Nlc3M6OnNpbmds
ZXRvbigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOworICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1l
bnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICB9
CisgICAgCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OnZhbGlkYXRlTWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0
aW9uVVJMU3RyaW5nKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlZhbGlkYXRlTWVyY2hhbnQodmFsaWRhdGlvblVSTFN0
cmluZyksIDApOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRB
dXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCit7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6RGlkQXV0aG9yaXplUGF5bWVudChwYXltZW50KSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBp
bmdNZXRob2QpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6RGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRo
b2QpLCAwKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2Vs
ZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBzaGlwcGlu
Z0NvbnRhY3QpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6RGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KHNoaXBwaW5nQ29u
dGFjdCksIDApOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRT
ZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmIHBheW1lbnRN
ZXRob2QpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6RGlkU2VsZWN0UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kKSwg
MCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhbmNlbFBh
eW1lbnRTZXNzaW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpLCAwKTsK
K30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y2FuTWFrZVBheW1lbnRz
V2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1l
bnRzKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OkNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkocmVxdWVz
dElELCBjYW5NYWtlUGF5bWVudHMpLCAwKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6b3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9v
bCByZXN1bHQpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6T3BlblBheW1lbnRTZXR1cFJlcGx5KHJlcXVlc3RJRCwgcmVz
dWx0KSwgMCk7Cit9CisgICAgCiB2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDg0OWE5ZWI0YTEzNzY0
NDExNmNhY2VkMDM4MzA3YWIzNDA4MWNmZmMuLjdiMzE0YTAyYTg4NjNiZDNiZGRhOTBjMWRkZmRj
NmE4YmJmMTFiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQwLDYgKzQwLDE1IEBA
IHB1YmxpYzoKICAgICB+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAogICAgIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsg
fQorICAgIAorICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRp
b25VUkxTdHJpbmcpOworICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3Jl
OjpQYXltZW50Jik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAg
ICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29u
dGFjdCYpOworICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQ
YXltZW50TWV0aG9kJik7CisgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpOworICAg
IHZvaWQgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0
SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKTsKKyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXBSZXBs
eSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KTsKIAogcHJpdmF0ZToKICAgICBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9y
VEFQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQ
SS5oCmluZGV4IGRmMDhlYTI4YWY4ZWNiNDA2NGM5OWM3YmUzM2U3MmZkNGQ4Yjk0YzguLjFhMzJk
ZGFkN2QxZGE0OWQ1MmI1MDBkZGRkYjM5ZjY0NTYwODk5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmgKQEAgLTMwLDYgKzMw
LDcgQEAgZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAogLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBhZnRl
ciA8cmRhcjovL3Byb2JsZW0vMzA3NzIwMzM+IGlzIGZpeGVkLgordm9pZCBQYXltZW50U2Vydmlj
ZUluaXRpYWxpemVyKCk7CiB2b2lkIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXIoKTsKIHZvaWQg
UGx1Z2luU2VydmljZUluaXRpYWxpemVyKCk7CiB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlh
bGl6ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLXBheW1l
bnRzLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nl
c3MtcGF5bWVudHMtc2FuZGJveC1lbnRpdGxlbWVudHMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA0ZjI4MGZi
ODYzN2FmMTMzOTA4NThkMjQ4MGJkOTQ5ZGFjYWVhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLXBheW1lbnRzLXNhbmRib3gtZW50aXRsZW1lbnRzLnNo
CkBAIC0wLDAgKzEsMTQgQEAKKyMhL2Jpbi9zaAorc2V0IC1lCisKK1BST0NFU1NFRF9YQ0VOVF9G
SUxFPSIke1RFTVBfRklMRV9ESVJ9LyR7RlVMTF9QUk9EVUNUX05BTUV9LnhjZW50IgorCitpZiBb
WyAke1dLX1BMQVRGT1JNX05BTUV9ID09ICJtYWNvc3giIF1dOyB0aGVuCisKKyAgICBpZiBbWyAk
e1dLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UU30gPT0gIllFUyIgXV07IHRoZW4KKyAgICAg
ICAgZWNobyAiUHJvY2Vzc2luZyByZXN0cmljdGVkIGVudGl0bGVtZW50cyBmb3IgSW50ZXJuYWwg
U0RLIjsKKworICAgICAgICBlY2hvICJBZGRpbmcgc2FuZGJveCBlbnRpdGxlbWVudHMgZm9yIFBh
eW1lbnRzIHByb2Nlc3MuIjsKKyAgICAgICAgL3Vzci9saWJleGVjL1BsaXN0QnVkZHkgLWMgIk1l
cmdlIENvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlvcy5lbnRpdGxlbWVudHMiICIke1BST0NFU1NF
RF9YQ0VOVF9GSUxFfSI7CisgICAgZmkKK2ZpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5o
CmluZGV4IDMxZTgxZjJiNmVhOTU5ZGNkYzRlMjE2ODY4NzI0NDlmOGFiOTVhNmMuLmRlM2U3YWE4
YWQ1ZDFjMDFiZjFlODgxYjE4ZDMyOGY4NTlkMTBmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5oCkBAIC01Miw2ICs1Miw5IEBAIHB1YmxpYzoKICAgICAgICAgUGF5bWVudCwKICNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBQbHVnaW4KKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKICAgICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzM3MDk3MzQwM2Q0NjM0MDhlZDYzYmJjZWY0NTYzYmQw
MDk5ODFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2lu
Y2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMoKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lv
bklEOworfQorCitib29sIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYzg2M2MwMGE4YTQwNzAxMzUxMmNhMjMx
YzA1NTgzNTE3YjllZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
YXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRi
b3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2Ns
YXNzIEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzKCk7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmKTsKKworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAppbmRleCAyN2RmYmYxZDVlMzFlYzliNTg3N2Q5NmVkOGMzZTlhOTg2ZjY5ZGExLi5k
ZTBiMTNjM2QxNTNmMzVjOTViOWE3NzU4YTEwNjNiMDI4YjY1ZjgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAg
LTczLDkgKzczLDYgQEAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3Vy
Y2VzRW50cnkuY3BwCiAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVy
LmNwcAogCi1QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKLVBheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAotCiAvLyBUT0RPOiBXZSBzaG91bGQg
dW5pZnkgdGhlc2UgZmlsZXMgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgog
UGxhdGZvcm0vTG9nZ2luZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9Nb2R1bGUuY3BwIEBuby11
bmlmeQpAQCAtMjA0LDYgKzIwMSw3IEBAIFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QlJlc3VsdC5jcHAKIAogU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCiAKKwogLy8gVE9E
TzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNz
MiBpcyByZW1vdmVkLgogU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAgQG5vLXVu
aWZ5CiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAgQG5vLXVuaWZ5
CkBAIC0zNzcsOCArMzc1LDYgQEAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwCiAKLVVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcAotCiBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NN
YW5hZ2VyLmNwcApAQCAtNDgwLDggKzQ3Niw2IEBAIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCi1XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcAotCiAvLyBUT0RPOiBUaGVzZSBmaWxlcyBzaG91bGQgYmUg
dW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
YTNmNWI5MWUxOTc3MjQ0ZDFlYzYzNDAzMjA1YmVhMDNhODQxYjBlZi4uZDQ4Y2FjM2ViZDZkYTA0
ZmM2NTRiYjJiNDQxZjlmMzRjOWZiZDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTg0
LDcgKzE4NCwxMyBAQCBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMv
V2ViSGl0VGVzdFJlc3VsdERhdGEubW0KIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMu
bW0KIAorUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2Vy
dmljZUVudHJ5UG9pbnQubW0KIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5t
bQorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCitQYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuY3BwCitQYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eUlPUy5tbQorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5Q29jb2EubW0KIAogU2hhcmVkL1BsdWdpbnMvbWFjL1BsdWdpblNhbmRib3hQcm9m
aWxlLm1tCiAKQEAgLTQ0MSw2ICs0NDcsOCBAQCBVSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0
cmF0ZWd5Lm1tCiAKIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eS5jcHAKIAorVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQ
cm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVN
YWMubW0KIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbQog
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtNTEwLDYg
KzUxOCw5IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFj
Lm1tCiAKIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNw
cAogCitXZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuY3BwCitX
ZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCiBXZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGUzNmZkNGFhODEwNDZl
ZTZhYmJhZDJkODlmZDA0YzlkMGVjZDkxZDkuLmNkZjNhNmI0MWVmNmRkMzM5ZGUyMmI5OWQwNTYw
YzJlZjAzNzdkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcApAQCAtNjIzLDYgKzYyMywxMyBAQCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiB9CiAKK3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250
ZXh0UmVmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0b0lt
cGwoY29udGV4dCktPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRHZXRO
ZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAg
cmV0dXJuIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIoKTsKQEAgLTYzNyw2ICs2NDQsMTUgQEAgUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQ
cm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKICNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogfQogCitQcm9jZXNzSUQgV0tDb250ZXh0R2V0UGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+cGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit9CisKIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2lu
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkb21haW5SZWYsIFdLU3RyaW5n
UmVmIG5hbWVSZWYsIFdLQXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5UmVmIGV4dGVuc2lv
bnNSZWYpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggOGVkNGI0Zjc2
NDE1MWUxODM2YjU5OGRkYmEwYTZjNjJjNjM3ZGQ1Yi4uMTUxMjYzOTc5NGQ0ZGRlYWU2NzE1ZTQ0
YzdhYTMzZjIzYTNiOWI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTIsNiArOTIsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsKIAogV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmKTsK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKFdL
Q29udGV4dFJlZik7CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQ
YXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eUNvY29hLmgKaW5kZXggYzRkNzlmZTRjMTJjOWFiODU0ZmJiZDQyNTEzYjc4
NTM4MzA3MmFlNy4uN2RiYTVmNTRiYWM2N2MyNjdjMTE3MTc3NzlkNmE2NzBmMzc3OWMxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Fw
cGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaApAQCAtMzEsMTEg
KzMxLDE1IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBVUkw7Cit9CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk7CiAKLVJldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5
bWVudFJlcXVlc3QoV2ViUGFnZVByb3h5JiwgY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29u
c3QgVmVjdG9yPFVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QmKTsKK1JldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5
bWVudFJlcXVlc3QoY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3QmKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHlDb2NvYS5tbQppbmRleCBhNjc1ZWJkZWE5NzUxMDVlZDRiOWVhMmJjNTA3MDFkNmFhMWI0
MDhkLi5kMTJjYjQ2OWYyNjcyOTA2NDNlYzlmYWU5NzE1ZWQ4YzlhNGYzZjkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5
L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KQEAgLTQ0MSw4ICs0NDEs
OCBAQCBzdGF0aWMgUEtQYXltZW50UmVxdWVzdEFQSVR5cGUgdG9BUElUeXBlKFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OgogICAgIH0KIH0KICNlbmRpZgotCi1SZXRhaW5Q
dHI8UEtQYXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1ZXN0KFdlYlBhZ2VQcm94eSYgd2Vi
UGFnZVByb3h5LCBjb25zdCBVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8VVJMPiYg
bGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dCYgcGF5bWVudFJlcXVlc3QpCisgICAgCitSZXRhaW5QdHI8UEtQYXltZW50UmVxdWVzdD4gdG9Q
S1BheW1lbnRSZXF1ZXN0KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VVJMPiYgbGlua0lj
b25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcGF5
bWVudFJlcXVlc3QpCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQ
YXltZW50UmVxdWVzdEluc3RhbmNlKCkgaW5pdF0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCmluZGV4IDdl
N2I1NDU1MmY2OWY1OTE2YWNmNGFmMzc2YTU1YTM0MDcwNmU4ZGQuLjc0OWFlOWJiMTRmNTc3NjFl
OTQ1Yzg2ODBkYTY3NGFiMTA4M2E2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCkBAIC0zNSw2ICszNSw4
IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAKKyNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hF
Q0tfQkFTRShhc3NlcnRpb24sIGNvbm5lY3Rpb24oKSkKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDgsNiArNTAsOCBAQCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkK
IAogUGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQogeworICAgIGZv
ciAoYXV0byYgcmVwbHkgOiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcykKKyAgICAgICAgcmVw
bHkoeyB9KTsKIH0KIAogdm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0
aW5nKCkKQEAgLTU5LDE1ICs2MywxNCBAQCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2NlcwogewogICAg
IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CiAgICAg
Ci0gICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5jaGluZykgeworICAgIGlmIChzdGF0ZSgp
ICE9IFN0YXRlOjpSdW5uaW5nKSB7CiAgICAgICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1
ZXN0cysrOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIGJvb2wgaXNTZXJ2aWNl
V29ya2VyUHJvY2VzcyA9IGZhbHNlOwotICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9y
aWdpbjsKICAgICAKLSAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc2VjdXJp
dHlPcmlnaW4pLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXlt
ZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgMCk7CisK
IH0KICAgICAKIHZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9j
ZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCkBAIC04MSwxNCArODQs
NiBAQCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhp
cy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKIH0KIAotdm9pZCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgewotICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KIHZvaWQgUGF5
bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIHsKICAgICBhdXRv
IHByb3RlY3RlZFByb2Nlc3NQb29sID0gbWFrZVJlZihtX3Byb2Nlc3NQb29sKTsKQEAgLTk5LDI1
ICs5NCwzMCBAQCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQogICAgIC8vIFRlbGwgUHJv
Y2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMgcGF5bWVudCBwcm9jZXNzLiBUaGlzIG1heSBj
YXVzZSB1cyB0byBiZSBkZWxldGVkLgotICAgIG1fcHJvY2Vzc1Bvb2wucGF5bWVudFByb2Nlc3ND
cmFzaGVkKCp0aGlzKTsKKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0
aGlzKTsKIH0KIAogdm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCiB7CiB9Ci0KLXZvaWQg
ZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpCisgICAgCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVj
dGlvbklkZW50aWZpZXIpCiB7CisgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGll
cy5pc0VtcHR5KCkpOworICAgIAorICAgIC8vIEdyYWIgdGhlIGZpcnN0IHBlbmRpbmcgY29ubmVj
dGlvbiByZXBseS4KKyAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMu
dGFrZUZpcnN0KCk7CisgICAgTUVTU0FHRV9DSEVDSyhNQUNIX1BPUlRfVkFMSUQoY29ubmVjdGlv
bklkZW50aWZpZXIucG9ydCgpKSk7CisgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KGNvbm5lY3Rp
b25JZGVudGlmaWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyAgICAKIH0K
ICAgICAKLXZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmll
cikKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgUGF5bWVudFBy
b2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIs
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAg
ICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25uZWN0
aW9uSWRlbnRpZmllcik7Cit7ICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIGlmICghSVBDOjpDb25u
ZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKICAgICAg
ICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVwIGhlcmUuCkBAIC0xMjUsMTAgKzEyNSwxMiBA
QCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1
bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbgogICAgIH0KIAogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKLSAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKLSAgICAKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UGF5
bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCksIDApOwor
CiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisjdW5kZWYgTUVTU0FHRV9DSEVDSwogI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaAppbmRleCBlMDMxYzdjNjdiNGYwZTk0MjZiMTFkMTBm
MWU1NTQ1OTU3ODRmMDVjLi43YmYxMzAwNDkxMzE0Nzg2ZTMyOTc2Y2Y4YmQwNDIzNmVmZmE1MmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVu
dFByb2Nlc3NQcm94eS5oCkBAIC02NiwxMCArNjYsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0KICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAg
ICAgdm9pZCBkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6
OkF0dGFjaG1lbnQmKTsKKyAgICB2b2lkIGNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKCk7CiAKICAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZvaWQgZGlkRmlu
aXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggNjUxMDIwNjIzYTdlYTY1MTFiMDczMzY2MTMwYzY1NjlhNzRkZWYwNy4uYzQwNGZmY2Vl
NzFhZWJkMTYxYWI2MWQ3MWY3NGFlNTVjZTFjNjZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMzMxLDYgKzMzMSw5IEBAIFdlYlByb2Nlc3NQb29s
Ojp+V2ViUHJvY2Vzc1Bvb2woKQogCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAg
IG1fbmV0d29ya1Byb2Nlc3MtPnNodXREb3duUHJvY2VzcygpOworICAgIAorICAgIGlmIChtX3Bh
eW1lbnRQcm9jZXNzKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzLT5zaHV0RG93blByb2Nlc3Mo
KTsKIAogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIGlmICghbV9wcm9jZXNzZXNVc2luZ0dhbWVw
YWRzLmlzRW1wdHkoKSkKQEAgLTYzMCwxMyArNjMzLDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKICAgICAgICAgbV9wYXltZW50UHJvY2VzcyA9IHN0ZDo6
bWFrZV91bmlxdWU8UGF5bWVudFByb2Nlc3NQcm94eT4oKnRoaXMpOwogfQogICAgIAotdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94
eSYgd2ViUHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQogewogICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CiAgICAgbV9wYXltZW50UHJv
Y2Vzcy0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92
ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNo
ZWQoUGF5bWVudFByb2Nlc3NQcm94eSYgcGF5bWVudFByb2Nlc3NQcm94eSkKK3ZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXlt
ZW50UHJvY2Vzc1Byb3h5KQogewogICAgIEFTU0VSVChtX3BheW1lbnRQcm9jZXNzKTsKICAgICBB
U1NFUlQocGF5bWVudFByb2Nlc3NQcm94eSA9PSBtX3BheW1lbnRQcm9jZXNzLmdldCgpKTsKQEAg
LTczMCw3ICs3MzMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdo
dEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLSAg
ICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0
cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CisvLyAgICAg
ICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95
U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CiAjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgfQpAQCAtODQ1LDYgKzg0OCw5IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cywgV2Vic2l0ZURhCiAgICAgfSk7CiAKICAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyNl
bmRpZgogCiAgICAgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogCkBA
IC0xNDAxLDYgKzE0MDcsMTQgQEAgUHJvY2Vzc0lEIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXIoKQogCiAgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBX
ZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1f
cGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVu
dFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhU
ZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDVmNzAwMzNkYWRjZmYwYWJiYzg0ZTczM2Q1NjQz
MjUxZTRiNTk4MTUuLjM0NjFmYTM0Y2U3NDUxNGIxOTQ0OTk0ODk1ZTg5ZDBhMzc0YTM4YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMTc3LDYgKzE3Nyw3
IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb05ldHdvcmtp
bmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CiAKICNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIC8vIFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdlYlByb2Nl
c3Mgb3IgUGF5bWVudFByb2Nlc3MgYXMgYXBwcm9wb3JpYXRlIGZvciBjdXJyZW50IHByb2Nlc3Mg
bW9kZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2Vz
cyhUJiYgbWVzc2FnZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXlt
ZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCkBAIC0zNjEsNyArMzYyLDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9pZCBlbnN1cmVQYXltZW50UHJvY2Vzcygp
OwogICAgIFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzKCkgeyByZXR1cm4gbV9w
YXltZW50UHJvY2Vzcy5nZXQoKTsgfQotICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcGF5bWVudFByb2Nlc3NDcmFz
aGVkKFBheW1lbnRQcm9jZXNzUHJveHkqKTsKICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVjZjFjNWE0ODZjY2I3NTUwOWY1ZmY1NTA2N2Q3
MDcyYWJmOTVmN2UuLjZkNzY2MjY0MzBhZjE4MmE3NTBlZTM2ODExNTRiZGRiM2RhZmQwMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjMyLDkg
KzYzMiw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBtX3Byb2Nlc3NQb29sLT5nZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUo
cmVwbHkpKTsKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KnRoaXMsIFdURk1vdmUocmVwbHkpKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDIy
OWVlYTM3N2ZiNWM3YTFlN2IyMDY1OWM4ODFjNThiYzdmNGZjN2MuLjUyOWE4NzBmZGIzMGJiY2Jk
MWFjYjdlM2M0ODUyNWZjODc5MTZiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC0yOTEsNyArMjkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAogI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCi0gICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29u
c3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggOGY1ZTFkNjY2MGIxNTBkNzU3MzBhNjNlMWYwOTNkNDNmNmEzNmQyNy4uNWExNDgy
NzkwZTkzYzJjMTVkYjc2NzUxY2YxNTE4NGU5ZGExOGIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzgsNyArMzgs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlm
CiAgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCiAjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLSAg
ICBHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Np
b25JRCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisgICAg
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0
aW9uSGFuZGxlKSBEZWxheWVkCiAjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAg
ICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYjk3YjlmOTIwZGU5YjVhNTBlNzE0ZDRlNWI5NGVkN2U0
ODBhZTBmMS4uZjQzM2RkZTc0OGU0YjhjZTY5Y2JmZWZlZDI4NWIyMzNiOGZhOTE1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKQEAgLTEzMjksNyArMTMyOSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
CiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRlc3Ryb3lQYXltZW50UHJvY2Vzc1Nlc3Npb24oV2Vi
UHJvY2Vzc1Bvb2wqIHBvb2wpCiB7CiAjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLSAgICBw
b29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ry
b3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisgICAgcG9vbC0+c2VuZFRvUGF5bWVudFByb2Nlc3Mo
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbigpKTsKICNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogfQogICAgIApAQCAtMTYzNyw2ICsxNjM3LDE5IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9j
ZXNzZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRl
RGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJl
Y3Rvcmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25J
RDsKKworICAgIHJldHVybiBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBl
bmRpbmdDb29raWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGlu
Z0Nvb2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDdhMDkwNzFjYzYxYzJkOWVmYTExNDg4M2UyY2U3
ZWFmYWZlNWFiYjkuLjIyN2M0NzcyNzM4NTU3OWI4NTg4ODYzYmUxNGMwMzMxNGIwOTZjMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKQEAgLTY3LDYgKzY3LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFz
cyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBz
dHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDc1YWM2ZTU1NDA1NjU3MDkxOTYzMWEwNTUwNGRjZWRkODY1N2I0YzIuLmQyNmQyYTQ2
OTFkNWU2MmMyNGE0NGY4YzY0OThlYzA0NDk1NWNjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAsNiArMjAsNyBAQAogCQkJCUJD
NzdGOTU2MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJD
ODI4NDQ2MTZCNEZGNjYwMEEyNzhGRSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJD
ODI4M0Q1MTZCNEMwMUYwMEEyNzhGRSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJCTM5
RTlFQ0E5MjFCODc2NDIwMEJBNUYxOSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsK
IAkJCW5hbWUgPSBBbGw7CiAJCQlwcm9kdWN0TmFtZSA9IFdlYktpdDI7CkBAIC04NDksNyArODUw
LDE4IEBACiAJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4
OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9Owog
CQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oICovOyB9OwotCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktp
dC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dHMuc2IgKi87IH07CisJCTM5M0YyNTlGMjFDOEQ0NjUwMEU0Q0U4NSAvKiBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTNGMjU5RDIxQzhENDQwMDBFNENFODUgLyogV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkz
OTNGMjVBMDIxQzhENDY4MDBFNENFODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzkzRjI1OUUyMUM4RDQ0MTAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzk1Q0RDNUYyMUJCNDVENTAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTVDREM1RTIxQkI0NTMzMDA3NjZFNEQgLyogUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzk1Q0RDNjEyMUJC
NDZENzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzk1Q0RDNjAyMUJCNDZD
RDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovOyB9Owor
CQkzOTVDREM2NDIxQkI1RTRFMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzOTVDREM2MzIxQkI1RTJDMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTM5NUNEQzY1MjFCQjVFNTEwMDc2NkU0
RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzk1Q0RDNjIyMUJC
NUUxQjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CisJCTM5NUNEQzZEMjFDNDdCNjgwMDc2NkU0RCAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzk1Q0RDNkUyMUM0N0M1RTAw
NzY2RTREIC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE1MUYyOTU5NjMwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTM5RTlFQzk3
MjFCNzVFRDcwMEJBNUYxOSAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBY
UENTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKKwkJMzlFOUVDOTkyMUI3NUVENzAwQkE1RjE5IC8qIEZv
dW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrICovOyB9OworCQkzOUU5RUM5QTIxQjc1RUQ3MDBCQTVGMTkgLyogV2ViS2l0LmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhEQzJF
RjVCMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQuZnJhbWV3b3JrICovOyB9OworCQkzOUY4RTQz
NjIxQjc1NEVEMDBGMkI5NkMgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBDb3B5
RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzkxMzYwMjQyMTkzQzE0
MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi87IH07CiAJCTNGNDE4
RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNG
NDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJ
M0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OwpAQCAtOTA5LDkgKzkyMSw3IEBACiAJCTUx
MEY1OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTc5MURERDc4NTQw
MDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyog
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51
SXRlbURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRh
dGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTE4RTlBODFGMjk1OTc3MDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTExOEU5QTkx
RjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07Ci0JCTUxMThFOUFBMUYyOTU5Nzcw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5
QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovOyB9
OwogCQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3
RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9
OwogCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0
NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CkBAIC05OTIsOCArMTAw
Miw2IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MUREOUYy
OTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlG
MjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxQzkx
ODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9OwotCQk1MUUzNTFGRjE4MEY1
RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1l
bnRQcm9jZXNzLmNwcCAqLzsgfTsKLQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZDMTY0MUYyOTM1REQwMEZEMzQz
NyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYxMUYyOTM1Q0QwMEZE
MzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLzsgfTsK
IAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkQ1
NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUYwNjBFMDE2NTQz
MTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUxNjU0MzE3NTAwRjMyODFC
IC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTE1NzYsNyArMTU4NCw2
IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMy
QjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1Jh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1
RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07Ci0JCUUxMTVDNzE0
MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAv
KiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3
IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxl
LldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0
OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vz
c1Byb3h5LmggKi87IH07CkBAIC0xNzA0LDYgKzE3MTEsMjcgQEAKIAkJCXJlbW90ZUdsb2JhbElE
U3RyaW5nID0gQzBDRTcyODUxMjQ3RTY2ODAwQkMwRUM0OwogCQkJcmVtb3RlSW5mbyA9ICJEZXJp
dmVkIFNvdXJjZXMiOwogCQl9OworCQkzOUU5RUM5MjIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5Owor
CQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qg
b2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0g
RTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEOworCQkJcmVtb3RlSW5mbyA9ICJVbmxvY2sgS2V5Y2hh
aW4iOworCQl9OworCQkzOUU5RUM5NDIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFp
bmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICov
OworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOERDMkVGNEYw
NDg2QTY5NDAwOThCMjE2OworCQkJcmVtb3RlSW5mbyA9IFdlYktpdDsKKwkJfTsKKwkJMzlFOUVD
QTgyMUI4NzY0MjAwQkE1RjE5IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlz
YSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkw
RkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7
CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDM5RTlFQzkwMjFCNzVFRDcwMEJBNUYxOTsKKwkJ
CXJlbW90ZUluZm8gPSBQYXltZW50czsKKwkJfTsKIAkJQkM3N0Y5NTUxNkQwNDU5MTAwRjhGNzhB
IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0
ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAv
KiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTE4NTIsNiArMTg4MCw3IEBACiAJCQlkc3RTdWJmb2xk
ZXJTcGVjID0gMDsKIAkJCWZpbGVzID0gKAogCQkJCUE3OENDRERCMTkzQUM5RjgwMDVFQ0MyNSAv
KiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgaW4gQ29weUZpbGVzICovLAorCQkJCTM5
RjhFNDM2MjFCNzU0RUQwMEYyQjk2QyAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGlu
IENvcHlGaWxlcyAqLywKIAkJCQlBNzhDQ0REQzE5M0FDOUZCMDA1RUNDMjUgLyogY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTI5OTQsMTAgKzMwMjMsMjkgQEAK
IAkJMzdGQzE5NDgxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzkxMzYwMjQyMTkz
QzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTM5MkU5NDJEMjE5QTM5OUEw
MDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5M0YyNTlEMjFDOEQ0NDAwMEU0Q0U4NSAvKiBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzkz
RjI1OUUyMUM4RDQ0MTAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTM5NUNEQzRCMjFCQTFGQUQwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNEMyMUJBMUZBRDAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5NUNEQzRGMjFC
QjBCMDYwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5NUNEQzUwMjFCQjBCMDYwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RD
NTEyMUJCMzBENzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5NUNEQzUzMjFCQjMzQTYwMDc2NkU0RCAv
KiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3IubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM5NUNEQzVFMjFCQjQ1MzMwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQkzOTVDREM2MDIxQkI0NkNEMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJMzk1Q0RDNjIyMUJCNUUxQjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzOTVDREM2MzIx
QkI1RTJDMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCTM5NUNEQzY3MjFDMTlGRTAwMDc2NkU0RCAvKiBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RD
NjgyMUMxRERDOTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUlPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUlP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNjkyMUMxRERENDAwNzY2
RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5NUNEQzZBMjFDMURERTIwMDc2NkU0RCAvKiBQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzOUJEMEFGNTIxQUUyMDJFMDBFMzI0M0YgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsg
cGF0aCA9ICJJbmZvLWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM5
QkQwQUY2MjFBRTIwMkUwMEUzMjQzRiAvKiBQYXltZW50U2VydmljZUVudHJ5UG9pbnQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50U2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5QkQwQUZBMjFBRjQxMkEwMEUzMjQzRiAvKiBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOUJEMEFGQjIx
QUY0MTJBMDBFMzI0M0YgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOUU5RUNBMjIxQjc1RUQ3MDBCQTVGMTkgLyogY29tLmFw
cGxlLldlYktpdC5QYXltZW50cy54cGMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2aWNlIjsgaW5jbHVkZUluSW5kZXggPSAw
OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50cy54cGM7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCTM5RTlFQ0E0MjFCNzY4OEMwMEJBNUYxOSAvKiBQYXltZW50
cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
LmVudGl0bGVtZW50czsgcGF0aCA9ICJQYXltZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRp
dGxlbWVudHMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOUU5RUNBNTIxQjc2ODhD
MDBCQTVGMTkgLyogUGF5bWVudHMtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxp
c3QuZW50aXRsZW1lbnRzOyBwYXRoID0gIlBheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTNGNDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC0zMTQ4LDEzICszMTk2LDkgQEAKIAkJNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNv
bnRleHRNZW51SXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEw
QUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTExOEU5QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07Ci0JCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKLQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTUxRjI5NTk2MzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ1NjgsNiArNDYxMiwxNSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQkzOUU5RUM5ODIxQjc1RUQ3MDBCQTVGMTkg
LyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwor
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTM5RTlF
Qzk5MjFCNzVFRDcwMEJBNUYxOSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovLAorCQkJCTM5RTlFQzlBMjFCNzVFRDcwMEJBNUYxOSAvKiBXZWJLaXQuZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCX07CiAJCTUxMDAzMUVFMTM3OUNBQ0IwMEM4REZFNCAvKiBGcmFtZXdvcmtz
ICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNDYzMCw2ICs0NjgzLDcgQEAKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQkM4MjgzQjExNkI0QkY3NzAwQTI3OEZFIC8qIGNv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy54cGMgKi8sCisJCQkJMzlFOUVDQTIyMUI3NUVENzAw
QkE1RjE5IC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMueHBjICovLAogCQkJCUJDODI4M0Y5
MTZCNEZEREUwMEEyNzhGRSAvKiBjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGMgKi8sCiAJ
CQkJQkM4Mjg0MUYxNkI0RkRGNjAwQTI3OEZFIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0
LnhwYyAqLywKIAkJCQkzNzJFQkI0NjIwMTdFNjQzMDAwODUwNjQgLyogY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwYyAqLywKQEAgLTQ4NjEsNiArNDkxNSw4IEBACiAJ
CQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3guZW50aXRs
ZW1lbnRzICovLAogCQkJCTVDN0FDRkQxMjE4REQ4QkQwMDRDQkI1OSAvKiBOZXR3b3JrLU9TWC5l
bnRpdGxlbWVudHMgKi8sCiAJCQkJQkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtT
ZXJ2aWNlLnhjY29uZmlnICovLAorCQkJCTM5RTlFQ0E0MjFCNzY4OEMwMEJBNUYxOSAvKiBQYXlt
ZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRpdGxlbWVudHMgKi8sCisJCQkJMzlFOUVDQTUy
MUI3Njg4QzAwQkE1RjE5IC8qIFBheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNTFB
NjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovLAogCQkJ
CUExRUREMkRCMTg4NEI5NjQwMEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAq
LywKIAkJCQlCQzgyODNGMjE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi54Y2Nv
bmZpZyAqLywKQEAgLTYzMTUsMTUgKzYzNzEsNiBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9tYWM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQkzOTJFOTQyQTIxOUEyRTg1MDA1
MEY5ODIgLyogUGF5bWVudHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVu
ID0gKAotCQkJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi8sCi0JCQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IFBheW1lbnRz
OwotCQkJc291cmNlVHJlZSA9ICI8dW5rbm93bj4iOwotCQl9OwogCQkzOUJEMEFGMTIxQUUyMDJF
MDBFMzI0M0YgLyogRW50cnlQb2ludCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC02MzU3LDYgKzY0MDQsMTkgQEAKIAkJCXBhdGggPSBQYXltZW50U2Vydmlj
ZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM5QkQwQUY5MjFBRjQxMkEw
MEUzMjQzRiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzk1Q0RDNEMyMUJBMUZBRDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IuY3BwICovLAorCQkJCTM5NUNEQzRCMjFCQTFGQUQwMDc2NkU0RCAvKiBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yLmggKi8sCisJCQkJMzk1Q0RDNTMyMUJCMzNBNjAwNzY2RTREIC8q
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gKi8sCisJCQkJMzlCRDBBRkIy
MUFGNDEyQTAwRTMyNDNGIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywK
KwkJCQkzOUJEMEFGQTIxQUY0MTJBMDBFMzI0M0YgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uaCAqLywKKwkJCQkzOTVDREM2NzIxQzE5RkUwMDA3NjZFNEQgLyogV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1l
bnRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNDEzMDc1OTcxREU4NEVE
NzAwMzlFQzY5IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC02NzUxLDYgKzY4MTEsMTIgQEAKIAkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAogCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JF
OSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAogCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAv
KiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTVDREM1MDIxQkIwQjA2MDA3
NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmNwcCAqLywKKwkJCQkzOTVD
REM0RjIxQkIwQjA2MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lmgg
Ki8sCisJCQkJMzk1Q0RDNTEyMUJCMzBENzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTVDREM2QTIxQzFEREUyMDA3NjZFNEQg
LyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaCAqLywKKwkJCQkzOTVDREM2
OTIxQzFEREQ0MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2Eu
bW0gKi8sCisJCQkJMzk1Q0RDNjgyMUMxRERDOTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eUlPUy5tbSAqLywKIAkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyog
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxRTM1MUZFMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTUx
MDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiAqLywKQEAgLTY3NTgsMjcgKzY4MjQsNiBAQAogCQkJcGF0aCA9IFBheW1lbnRQ
cm9jZXNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJNTM5QkQ1QjIxREFE
QjBCQTAwRjJFNEUxIC8qIGNhcHR1cmUgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNo
aWxkcmVuID0gKAotCQkJCTUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29uLmhwcCAqLywK
LQkJCQk1MzAyNTgzMDFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVFdmVudC5jcHAg
Ki8sCi0JCQkJNTMwMjU4MzExRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQu
aCAqLywKLQkJCQk1MzAyNTgzMjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVMb2dn
aW5nLmggKi8sCi0JCQkJNTMwMjU4MzMxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJl
TWFuYWdlci5jcHAgKi8sCi0JCQkJNTMwMjU4MzQxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtD
YXB0dXJlTWFuYWdlci5oICovLAotCQkJCTUzMDI1ODM1MURDQkJEMUQwMERBODlDMiAvKiBOZXR3
b3JrQ2FwdHVyZVJlY29yZGVyLmNwcCAqLywKLQkJCQk1MzAyNTgzNjFEQ0JCRDFEMDBEQTg5QzIg
LyogTmV0d29ya0NhcHR1cmVSZWNvcmRlci5oICovLAotCQkJCTUzMDI1ODM3MURDQkJEMUQwMERB
ODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmNwcCAqLywKLQkJCQk1MzAyNTgzODFEQ0JC
RDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5oICovLAotCQkJCTUzMDI1ODJF
MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNwcCAqLywKLQkJCQk1
MzAyNTgyRjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5oICovLAot
CQkJCTUzMDI1ODM5MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3Bw
ICovLAotCQkJCTUzMDI1ODNBMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBs
YXkuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gY2FwdHVyZTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7Ci0JCX07CiAJCTU3MEFCOEY2MjBBRTgxQUIwMEI4QkU4NyAvKiBjb2NvYSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03MjMyLDcgKzcyNzcsNyBA
QAogCQkJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJCQk1
MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4
QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCi0JCQkJMzkyRTk0MkEyMTlB
MkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICovLAorCQkJCTM5QkQwQUY5MjFBRjQxMkEwMEUzMjQz
RiAvKiBQYXltZW50cyAqLywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lu
cyAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywKIAkJCQkx
QUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04NDk4LDYgKzg1
NDMsMTkgQEAKIAkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oICovLAogCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTE4RTlBMjFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMzk1Q0RDNjAy
MUJCNDZDRDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oICov
LAorCQkJCTM5NUNEQzYzMjFCQjVFMkMwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzOTVDREM2MDIxQkI0NkNEMDA3NjZFNEQg
LyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2VzLmggKi8sCisJCQkJMzk1Q0RDNjIy
MUJCNUUxQjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCisJCQkJMzk1Q0RDNUUyMUJCNDUzMzAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1
MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTcxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAor
CQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCAqLywKKwkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQTI5QTI1MUNC
RUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJ
CQlDREEyOUEyNjFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg1MzYsNiArODU5NCwxMCBAQAogCQkJCTUxMThF
OUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJ
NTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTcx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCAqLywKIAkJCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMThFOUE0
MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg2MzcsNiArODY5OSw4IEBACiAJCQkJ
NTE3QTUyRDYxRjQzQTlCNjAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggKi8sCiAJCQkJNTE1MjYyQkExRkI5NTEzMTAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTE1MjYyQkIxRkI5NTEz
MTAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi8s
CisJCQkJMzkzRjI1OUQyMUM4RDQ0MDAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzOTNGMjU5RTIxQzhENDQxMDBFNENF
ODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJCTFB
QUYwOEI1MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQUYwOEI2MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oICovLAogCQkJCTdDMzYxRDc2MTkyODAzQkQwMDM2
QTU5RCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCkBAIC05MjkwLDYgKzkzNTQsOCBAQAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAv
KiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2MDA4
MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0
QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkzOTVDREM2MTIxQkI0NkQ3MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzOTVDREM1RjIxQkI0NUQ1MDA3NjZFNEQg
LyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVu
dFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC05
NjUyLDYgKzk3MTgsNyBAQAogCQkJCTkzNTZGMkREMjE1MkI2RjYwMEU2RDVERiAvKiBXZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MkQ5MUY0M0E5REEwMERD
REMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE1MjYyQkMxRkI5NTE1RDAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzOTNGMjVBMDIxQzhENDY4MDBFNENF
ODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBMEVGN0YxMjMzMUU3ODAwN0QzQ0ZCIC8qIFdlYlVuZG9TdGVwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUFGMDhBRTE5MjY5MzY3MDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzA2NUYyQzFDOENEOTVGMDBDMkQ5NTAg
LyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTEwMDg4LDYgKzEwMTU1LDI4IEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gMzcyRUJCNDYyMDE3
RTY0MzAwMDg1MDY0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54
cGMgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2
aWNlIjsKIAkJfTsKKwkJMzlFOUVDOTAyMUI3NUVENzAwQkE1RjE5IC8qIFBheW1lbnRzICovID0g
eworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDM5RTlFQzlFMjFCNzVFRDcwMEJBNUYxOSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiUGF5bWVudHMiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJ
MzlFOUVDOTUyMUI3NUVENzAwQkE1RjE5IC8qIFJlbW92ZSBzdGFsZSBlbnRpdGxlbWVudHMgZmls
ZSAqLywKKwkJCQkzOUU5RUM5NjIxQjc1RUQ3MDBCQTVGMTkgLyogU291cmNlcyAqLywKKwkJCQkz
OUU5RUM5ODIxQjc1RUQ3MDBCQTVGMTkgLyogRnJhbWV3b3JrcyAqLywKKwkJCQkzOUU5RUM5QjIx
Qjc1RUQ3MDBCQTVGMTkgLyogUmVzb3VyY2VzICovLAorCQkJCTM5RTlFQzlDMjFCNzVFRDcwMEJB
NUYxOSAvKiBVbmxvY2sga2V5Y2hhaW4gKi8sCisJCQkJMzlFOUVDOUQyMUI3NUVENzAwQkE1RjE5
IC8qIFByb2Nlc3MgUGF5bWVudCBlbnRpdGxlbWVudHMgKi8sCisJCQkpOworCQkJYnVpbGRSdWxl
cyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMzlFOUVDOTEyMUI3NUVENzAw
QkE1RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCisJCQkJMzlFOUVDOTMyMUI3NUVENzAw
QkE1RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCisJCQkpOworCQkJbmFtZSA9IFBheW1l
bnRzOworCQkJcHJvZHVjdE5hbWUgPSBQYXltZW50czsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSAz
OUU5RUNBMjIxQjc1RUQ3MDBCQTVGMTkgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy54cGMg
Ki87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2aWNl
IjsKKwkJfTsKIAkJNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICovID0g
ewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDUxMDAzMUYyMTM3OUNBQ0IwMEM4REZFNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiU2VjSXRlbVNoaW0iICovOwpAQCAtMTAyNjgsNiArMTAzNTcsNyBA
QAogCQkJCUJDM0RFNDY1MTVBOTE3NjMwMDhEMjZGQyAvKiBXZWJDb250ZW50ICovLAogCQkJCTM3
MkVCQjM4MjAxN0U2NDMwMDA4NTA2NCAvKiBXZWJDb250ZW50LkRldmVsb3BtZW50ICovLAogCQkJ
CUJDODI4M0IwMTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3JraW5nICovLAorCQkJCTM5RTlFQzkw
MjFCNzVFRDcwMEJBNUYxOSAvKiBQYXltZW50cyAqLywKIAkJCQlCQzgyODNGODE2QjRGRERFMDBB
Mjc4RkUgLyogUGx1Z2luLjMyICovLAogCQkJCUJDODI4NDFFMTZCNEZERjYwMEEyNzhGRSAvKiBQ
bHVnaW4uNjQgKi8sCiAJCQkJQTdBQURBMTAxOTM5NUNBOTAwM0VBMUM3IC8qIFNhbmRib3ggUHJv
ZmlsZXMgKi8sCkBAIC0xMDI4NSwxMiArMTAzNzUsMTggQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJMzlFOUVDOUIyMUI3NUVENzAw
QkE1RjE5IC8qIFJlc291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhh
c2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkp
OworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCThE
QzJFRjUyMDQ4NkE2OTQwMDk4QjIxNiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhS
ZXNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJ
CWZpbGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKLQkJCQkzOTEzNjAyNTIxOTND
MTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRERDM3OTIwQkY0M0Y1MDA2OTU5RkIgLyogY29t
LmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5
QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAq
LywKQEAgLTEwNTE2LDYgKzEwNjEyLDQ5IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwogCQkJ
c2hlbGxTY3JpcHQgPSAiaWYgW1sgXCIke1dLX01BTlVBTF9TQU5EQk9YSU5HX0VOQUJMRUR9XCIg
IT0gXCJZRVNcIiB8fCBcIiR7V0tfUExBVEZPUk1fTkFNRX1cIiA9PSBcIm1hY29zeFwiIHx8IFwi
JHtXS19QTEFURk9STV9OQU1FfVwiID09IFwiaW9zbWFjXCIgXV07IHRoZW5cbiAgICBleGl0XG5m
aVxuXG5pZiBbWyBcIiR7QUNUSU9OfVwiID09IFwiYnVpbGRcIiB8fCBcIiR7QUNUSU9OfVwiID09
IFwiaW5zdGFsbFwiIF1dOyB0aGVuXG4gICAgZm9yICgoaSA9IDA7IGkgPCAke1NDUklQVF9JTlBV
VF9GSUxFX0NPVU5UfTsgKytpKSk7IGRvXG4gICAgICAgIGV2YWwgU0FOREJPWF9QUk9GSUxFPVxc
JHtTQ1JJUFRfSU5QVVRfRklMRV8ke2l9fVxuICAgICAgICBkaXR0byBcIiR7U0FOREJPWF9QUk9G
SUxFfVwiIFwiJHtUQVJHRVRfQlVJTERfRElSfS8ke1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xE
RVJfUEFUSH0vJHtTQU5EQk9YX1BST0ZJTEUjIyovfVwiXG4gICAgZG9uZVxuZmlcbiI7CiAJCX07
CisJCTM5RTlFQzk1MjFCNzVFRDcwMEJBNUYxOSAvKiBSZW1vdmUgc3RhbGUgZW50aXRsZW1lbnRz
IGZpbGUgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQ
YXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIlJlbW92ZSBzdGFsZSBlbnRpdGxlbWVudHMgZmls
ZSI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlw
dCA9ICIjIFdlIGF1dG9nZW5lcmF0ZSB0aGlzIGZpbGUsIHNvIGRvbid0IHdhbnQgdG8gcmV0YWlu
IGFuIG9sZCBjb3B5IGR1cmluZyBidWlsZHMuXG5ybSAtZiAke1RFTVBfRklMRV9ESVJ9LyR7RlVM
TF9QUk9EVUNUX05BTUV9LnhjZW50XG4iOworCQl9OworCQkzOUU5RUM5QzIxQjc1RUQ3MDBCQTVG
MTkgLyogVW5sb2NrIGtleWNoYWluICovID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAor
CQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJVbmxvY2sga2V5Y2hh
aW4iOworCQkJb3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3Jp
cHQgPSAiVU5MT0NLX1NDUklQVF9QQVRIPVwiJHtTUkNST09UfS8uLi8uLi8uLi9JbnRlcm5hbC9U
b29scy9TY3JpcHRzL3VubG9jay1zYWZhcmktZW5naW5lZXJpbmcta2V5Y2hhaW4taWYtbmVlZGVk
XCJcblxuW1sgLXggXCIke1VOTE9DS19TQ1JJUFRfUEFUSH1cIiBdXSAmJiBleGVjIFwiJHtVTkxP
Q0tfU0NSSVBUX1BBVEh9XCJcblxuZXhpdCAwXG4iOworCQl9OworCQkzOUU5RUM5RDIxQjc1RUQ3
MDBCQTVGMTkgLyogUHJvY2VzcyBQYXltZW50IGVudGl0bGVtZW50cyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5h
bWUgPSAiUHJvY2VzcyBQYXltZW50IGVudGl0bGVtZW50cyI7CisJCQlvdXRwdXRQYXRocyA9ICgK
KwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNo
ZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICIKKyI7CisJCX07CiAJCTQxNTc4
NTM3MjEyNzlDQzYwMEREMzgwMCAvKiBDb3B5IEN1c3RvbSBXZWJDb250ZW50IFJlc291cmNlcyB0
byBGcmFtZXdvcmsgUHJpdmF0ZSBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3Jp
cHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTEwNzY4
LDYgKzEwOTA3LDcgQEAKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL2NvbS5hcHBsZS5XZWJL
aXQuUGx1Z2luLjY0LnhwYyIsCiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS8kKFdLX1NUT1JB
R0VfU0VSVklDRV9QUk9EVUNUX05BTUUpLnhwYyIsCiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElS
KS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjIiwKKwkJCQkiJChC
VUlMVF9QUk9EVUNUU19ESVIpL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMueHBjIiwKIAkJCSk7
CiAJCQluYW1lID0gIkNvcHkgWFBDIHNlcnZpY2VzIGZvciBlbmdpbmVlcmluZyBidWlsZHMiOwog
CQkJb3V0cHV0UGF0aHMgPSAoCkBAIC0xMDc3NywxMCArMTA5MTcsMTEgQEAKIAkJCQkiJChCVUlM
VF9QUk9EVUNUU19ESVIpL1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXMvY29tLmFwcGxlLldl
YktpdC5QbHVnaW4uNjQueHBjIiwKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL1dlYktpdC5m
cmFtZXdvcmsvWFBDU2VydmljZXMvJChXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FKS54
cGMiLAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2
aWNlcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjIiwKKwkJCQki
JChCVUlMVF9QUk9EVUNUU19ESVIpL1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXMvY29tLmFw
cGxlLldlYktpdC5QYXltZW50cy54cGMiLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2Ny
aXB0ID0gImlmIFtbIFwiJHtDT05GSUdVUkFUSU9OfVwiID09IFwiUHJvZHVjdGlvblwiIF1dOyB0
aGVuXG4gICAgZXhpdFxuZmlcblxuaWYgW1sgJHtXS19QTEFURk9STV9OQU1FfSAhPSBcIm1hY29z
eFwiIF1dOyB0aGVuXG4gICAgWFBDX1NFUlZJQ0VTX1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2aWNlc1wiXG5lbHNlXG4gICAgWFBDX1NFUlZJQ0VT
X1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vV2ViS2l0LmZyYW1ld29yay9WZXJzaW9ucy9B
L1hQQ1NlcnZpY2VzXCJcbmZpXG5cbm1rZGlyIC1wIFwiJHtYUENfU0VSVklDRVNfUEFUSH1cIlxu
ZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9LyR7V0tfU1RPUkFH
RV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS8ke1dL
X1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUV9LnhwY1wiXG5cbmlmIFtbICR7V0tfUExBVEZP
Uk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuXG4gICAgZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCIgXCIke1hQQ19TRVJWSUNFU19Q
QVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi54cGNcIlxuICAgIGRpdHRvIFwiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0LnhwY1wiIFwiJHtYUENfU0VS
VklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCJcbmZpXG4iOworCQkJ
c2hlbGxTY3JpcHQgPSAiaWYgW1sgXCIke0NPTkZJR1VSQVRJT059XCIgPT0gXCJQcm9kdWN0aW9u
XCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG5pZiBbWyAke1dLX1BMQVRGT1JNX05BTUV9ICE9
IFwibWFjb3N4XCIgXV07IHRoZW5cbiAgICBYUENfU0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJP
RFVDVFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1hQQ1NlcnZpY2VzXCJcbmVsc2VcbiAgICBYUENf
U0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvWFBDU2VydmljZXNcIlxuZmlcbm1rZGlyIC1wIFwiJHtYUENfU0VSVklDRVNfUEFU
SH1cIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5XZWJD
b250ZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5XZWJD
b250ZW50LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtpbmcueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtpbmcueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBw
bGUuV2ViS2l0LlBheW1lbnRzLnhwY1wiXG5cbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
LyR7V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCIgXCIke1hQQ19TRVJWSUNF
U19QQVRIfS8ke1dLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUV9LnhwY1wiXG5cbmlmIFtb
ICR7V0tfUExBVEZPUk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuXG4gICAgZGl0dG8gXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCIgXCIke1hQ
Q19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi54cGNcIlxuICAgIGRpdHRv
IFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0LnhwY1wi
IFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCJc
bmZpXG4iOwogCQl9OwogCQlDMENFNzI4NDEyNDdFNjY4MDBCQzBFQzQgLyogR2VuZXJhdGUgRGVy
aXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpA
QCAtMTA4MjksNiArMTA5NzAsMTQgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJMzlFOUVDOTYyMUI3NUVENzAwQkE1RjE5IC8qIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQkzOUU5RUM5NzIxQjc1RUQ3
MDBCQTVGMTkgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJNTEwMDMxRUMx
Mzc5Q0FDQjAwQzhERkU0IC8qIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xMDg5NywxMSAr
MTEwNDYsMTAgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lT2Jq
ZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5RjAwMDEyOEFGRCAv
KiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3OTQyMTJC
NkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFF
MzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBp
biBTb3VyY2VzICovLAotCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTE4RTlBQTFGMjk1
OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzk1Q0RDNjQyMUJCNUU0
RTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMzk1Q0RDNjUyMUJCNUU1MTAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzOTVDREM2RTIxQzQ3QzVFMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzk1Q0RDNkQyMUM0N0I2ODAwNzY2RTREIC8q
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RBMjlBMjgxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMTExODUsNiArMTEzMzMsNyBAQAogCQkJCTUxN0E1MkQ4MUY0M0E5
REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM1NkYyRTAyMTUyQjc1MjAwRTZENURGIC8qIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTUyNjJCRDFGQjk1
MTYxMDA3MEU1NzkgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM5M0YyNTlGMjFDOEQ0NjUwMEU0Q0U4NSAvKiBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkyQTc4RTIxMkI2QUIxMDBGNDkzRkQgLyogV2ViVG91Y2hFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
MzYxRDc4MTkyODAzQkQwMDM2QTU5RCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTExMjgzLDYgKzExNDMyLDIxIEBA
CiAJCQl0YXJnZXQgPSBDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2Vz
ICovOwogCQkJdGFyZ2V0UHJveHkgPSAzN0Y3NDA3ODEyNzIxRjc0MDA5Mzg2OUIgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQkzOUU5RUM5MTIxQjc1RUQ3MDBCQTVGMTkgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7
CisJCQl0YXJnZXQgPSBFMUFDMkUyNzIwRjdCOTRDMDBCMDg5N0QgLyogVW5sb2NrIEtleWNoYWlu
ICovOworCQkJdGFyZ2V0UHJveHkgPSAzOUU5RUM5MjIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovOworCQl9OworCQkzOUU5RUM5MzIxQjc1RUQ3MDBCQTVGMTkgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7
CisJCQl0YXJnZXQgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0ICovOworCQkJ
dGFyZ2V0UHJveHkgPSAzOUU5RUM5NDIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOworCQl9OworCQkzOUU5RUNBOTIxQjg3NjQyMDBCQTVGMTkgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJn
ZXQgPSAzOUU5RUM5MDIxQjc1RUQ3MDBCQTVGMTkgLyogUGF5bWVudHMgKi87CisJCQl0YXJnZXRQ
cm94eSA9IDM5RTlFQ0E4MjFCODc2NDIwMEJBNUYxOSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CisJCX07CiAJCUJDNzdGOTU2MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEJD
ODI4M0Y4MTZCNEZEREUwMEEyNzhGRSAvKiBQbHVnaW4uMzIgKi87CkBAIC0xMTQ3Nyw2ICsxMTY0
MSw2MyBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkzOUU5RUM5RjIx
Qjc1RUQ3MDBCQTVGMTkgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTFBNjBCMjkxODBDQ0Q5MDAw
RjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9
IHsKKwkJCQlDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0gIkNvbmZpZ3Vy
YXRpb25zL1BheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMiOworCQkJCUlORk9QTElTVF9GSUxFID0g
IlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2Uv
SW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9aXBob25lKl0iID0gIlBh
eW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5m
by1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0iID0gIlBheW1l
bnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5mby1p
T1MucGxpc3QiOworCQkJCVBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSBjb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9h
cHBsZXR2b3MgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRM
RU1FTlRTX0JBU0VfYXBwbGV0dnNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQ
Q19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9pb3NtYWMgPSAiUGF5bWVudHMtaU9TLW1p
bmltYWxzaW11bGF0b3IiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFT
RV9pcGhvbmVvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJ
VExFTUVOVFNfQkFTRV9pcGhvbmVzaW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19Y
UENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0Vfd2F0Y2hvcyA9ICJQYXltZW50cy1pT1Mi
OworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV93YXRjaHNpbXVsYXRv
ciA9ICJQYXltZW50cy1pT1MiOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMzlF
OUVDQTAyMUI3NUVENzAwQkE1RjE5IC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTFBNjBCMjkx
ODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovOworCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0g
IkNvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMiOworCQkJCUlORk9QTElT
VF9GSUxFID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVu
dFNlcnZpY2UvSW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9aXBob25l
Kl0iID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNl
cnZpY2UvSW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0i
ID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZp
Y2UvSW5mby1pT1MucGxpc3QiOworCQkJCVBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSBjb20u
YXBwbGUuV2ViS2l0LlBheW1lbnRzOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVO
VFNfQkFTRV9hcHBsZXR2b3MgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9J
T1NfRU5USVRMRU1FTlRTX0JBU0VfYXBwbGV0dnNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOwor
CQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9pb3NtYWMgPSAiUGF5bWVu
dHMtaU9TLW1pbmltYWxzaW11bGF0b3IiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExF
TUVOVFNfQkFTRV9pcGhvbmVvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNF
X0lPU19FTlRJVExFTUVOVFNfQkFTRV9pcGhvbmVzaW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsK
KwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0Vfd2F0Y2hvcyA9ICJQYXlt
ZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV93YXRj
aHNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOwor
CQl9OworCQkzOUU5RUNBMTIxQjc1RUQ3MDBCQTVGMTkgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcg
Ki87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNPREVfU0lHTl9FTlRJVExFTUVOVFNfQ09D
T0FfVE9VQ0hfTk8gPSAiQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9TLmVudGl0bGVtZW50cyI7
CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBD
U2VydmljZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdCI7CisJCQkJIklORk9QTElTVF9G
SUxFW3Nkaz1pcGhvbmUqXSIgPSAiUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2Vy
dmljZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdCI7CisJCQkJIklORk9QTElTVF9GSUxF
W3Nkaz1tYWNvc3gqXSIgPSAiUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2Vydmlj
ZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdCI7CisJCQkJUFJPRFVDVF9CVU5ETEVfSURF
TlRJRklFUiA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisJCQkJV0tfWFBDX1NFUlZJQ0Vf
SU9TX0VOVElUTEVNRU5UU19CQVNFX2FwcGxldHZvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdL
X1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9hcHBsZXR2c2ltdWxhdG9yID0gIlBh
eW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lv
c21hYyA9ICJQYXltZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvciI7CisJCQkJV0tfWFBDX1NFUlZJ
Q0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lwaG9uZW9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJ
V0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lwaG9uZXNpbXVsYXRvciA9ICJQ
YXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV93
YXRjaG9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVN
RU5UU19CQVNFX3dhdGNoc2ltdWxhdG9yID0gIlBheW1lbnRzLWlPUyI7CisJCQl9OworCQkJbmFt
ZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTUxMDAzMUYzMTM3OUNBQ0IwMEM4REZFNCAvKiBEZWJ1
ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3Vy
YXRpb25SZWZlcmVuY2UgPSBBMUVERDJEQzE4ODRCOUI1MDBCQkZFOTggLyogU2VjSXRlbVNoaW0u
eGNjb25maWcgKi87CkBAIC0xMTc0OCw2ICsxMTk2OSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVj
dGlvbjsKIAkJfTsKKwkJMzlFOUVDOUUyMUI3NUVENzAwQkE1RjE5IC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJQYXltZW50cyIgKi8gPSB7CisJCQlpc2Eg
PSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkz
OUU5RUM5RjIxQjc1RUQ3MDBCQTVGMTkgLyogRGVidWcgKi8sCisJCQkJMzlFOUVDQTAyMUI3NUVE
NzAwQkE1RjE5IC8qIFJlbGVhc2UgKi8sCisJCQkJMzlFOUVDQTEyMUI3NUVENzAwQkE1RjE5IC8q
IFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUg
PSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJ
NTEwMDMxRjIxMzc5Q0FDQjAwQzhERkU0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJTZWNJdGVtU2hpbSIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWJkYTZiZWJlY2VmMDE0ODdjZjhiZGViMzk2YTczYWJh
NGE0ZWJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMjM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudENvb3JkaW5hdG9yLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9VUkwuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBh
Z2UpCisgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlLnBhZ2VJRCgpLCAqdGhpcyk7Cit9
CisKK1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6On5QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
KnRoaXMpOworfQorCitib29sIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OnN1cHBvcnRzVmVy
c2lvbih1bnNpZ25lZCB2ZXJzaW9uKQoreworICAgIEFTU0VSVCh2ZXJzaW9uID4gMCk7CisgICAg
CisjaWYgIUVOQUJMRShBUFBMRV9QQVlfU0VTU0lPTl9WMykKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgY3VycmVudFZlcnNpb24gPSAyOworI2VsaWYgIUVOQUJMRShBUFBMRV9QQVlfU0VTU0lP
Tl9WNCkKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY3VycmVudFZlcnNpb24gPSAzOworI2Vs
c2UKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY3VycmVudFZlcnNpb24gPSA1OworI2VuZGlm
CisgICAgCisgICAgcmV0dXJuIHZlcnNpb24gPD0gY3VycmVudFZlcnNpb247Cit9CisKK2NvbnN0
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OkF2YWlsYWJsZVBheW1lbnROZXR3b3Jrc1NldCYg
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6YXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCkKK3sK
KyAgICBpZiAobV9hdmFpbGFibGVQYXltZW50TmV0d29ya3MpCisgICAgICAgIHJldHVybiAqbV9h
dmFpbGFibGVQYXltZW50TmV0d29ya3M7CisgICAgCisgICAgbV9hdmFpbGFibGVQYXltZW50TmV0
d29ya3MgPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpBdmFpbGFibGVQYXltZW50TmV0d29y
a3NTZXQoKTsKKyAgICAKKyAgICBWZWN0b3I8U3RyaW5nPiBhdmFpbGFibGVQYXltZW50TmV0d29y
a3M7CisgICAgdXNpbmcgQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzTWVzc2FnZSA9IE1lc3NhZ2Vz
OjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkF2YWlsYWJsZVBheW1lbnROZXR3b3Jr
czsKKyAgICBpZiAoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoQXZhaWxhYmxlUGF5bWVudE5l
dHdvcmtzTWVzc2FnZSgpLCBBdmFpbGFibGVQYXltZW50TmV0d29ya3NNZXNzYWdlOjpSZXBseShh
dmFpbGFibGVQYXltZW50TmV0d29ya3MpLCAwKSkgeworICAgICAgICBmb3IgKGF1dG8mIG5ldHdv
cmsgOiBhdmFpbGFibGVQYXltZW50TmV0d29ya3MpCisgICAgICAgICAgICBtX2F2YWlsYWJsZVBh
eW1lbnROZXR3b3Jrcy0+YWRkKG5ldHdvcmspOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gKm1f
YXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzOworfQorCitzdGQ6Om9wdGlvbmFsPFN0cmluZz4gUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvcjo6dmFsaWRhdGVkUGF5bWVudE5ldHdvcmsoY29uc3QgU3Ry
aW5nJiBwYXltZW50TmV0d29yaykKK3sKKyAgICBhdXRvJiBwYXltZW50TmV0d29ya3MgPSBhdmFp
bGFibGVQYXltZW50TmV0d29ya3MoKTsKKyAgICBhdXRvIHJlc3VsdCA9IHBheW1lbnROZXR3b3Jr
cy5maW5kKHBheW1lbnROZXR3b3JrKTsKKyAgICBpZiAocmVzdWx0ID09IHBheW1lbnROZXR3b3Jr
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gKnJlc3Vs
dDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjYW5NYWtlUGF5bWVudHMo
KQoreworICAgIGJvb2wgY2FuTWFrZVBheW1lbnRzOworICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFN5bmMoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Q2Fu
TWFrZVBheW1lbnRzKCksIE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OkNhbk1ha2VQYXltZW50czo6UmVwbHkoY2FuTWFrZVBheW1lbnRzKSwgMCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gY2FuTWFrZVBheW1lbnRzOworfQorCitzdGF0
aWMgdWludDY0X3QgZ2VuZXJhdGVDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5SUQo
KQoreworICAgIHN0YXRpYyB1aW50NjRfdCBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJl
cGx5SUQ7CisgICAgCisgICAgcmV0dXJuICsrY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRS
ZXBseUlEOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmNhbk1ha2VQYXlt
ZW50c1dpdGhBY3RpdmVDYXJkKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGRvbWFpbk5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlcGx5SUQgPSBnZW5lcmF0ZUNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkUmVwbHlJRCgpOworICAgIAorICAgIG1fcGVuZGluZ0Nhbk1ha2VQYXlt
ZW50c1dpdGhBY3RpdmVDYXJkQ2FsbGJhY2tzLmFkZChyZXBseUlELCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZCht
ZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIHJlcGx5SUQpLCAwKTsKK30KKworc3RhdGlj
IHVpbnQ2NF90IGdlbmVyYXRlT3BlblBheW1lbnRTZXR1cFJlcGx5SUQoKQoreworICAgIHN0YXRp
YyB1aW50NjRfdCBvcGVuUGF5bWVudFNldHVwUmVwbHlJRDsKKyAgICAKKyAgICByZXR1cm4gKytv
cGVuUGF5bWVudFNldHVwUmVwbHlJRDsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yOjpvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlcGx5SUQgPSBnZW5lcmF0ZU9wZW5QYXltZW50
U2V0dXBSZXBseUlEKCk7CisgICAgCisgICAgbV9wZW5kaW5nT3BlblBheW1lbnRTZXR1cENhbGxi
YWNrcy5hZGQocmVwbHlJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6T3BlblBheW1lbnRTZXR1cChtZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIHJlcGx5
SUQpLCAwKTsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpzaG93UGF5bWVu
dFVJKGNvbnN0IFdlYkNvcmU6OlVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0JiBwYXltZW50UmVxdWVzdCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBsaW5r
SWNvblVSTFN0cmluZ3M7CisgICAgZm9yIChjb25zdCBhdXRvJiBsaW5rSWNvblVSTCA6IGxpbmtJ
Y29uVVJMcykKKyAgICAgICAgbGlua0ljb25VUkxTdHJpbmdzLmFwcGVuZChsaW5rSWNvblVSTC5z
dHJpbmcoKSk7CisgICAgCisgICAgYm9vbCByZXN1bHQ7CisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpT
aG93UGF5bWVudFVJKG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBsaW5rSWNvblVSTFN0cmluZ3Ms
IHBheW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6U2hvd1BheW1lbnRVSTo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3I6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1l
bnRNZXJjaGFudFNlc3Npb24mIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpDb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihwYXltZW50TWVyY2hhbnRTZXNzaW9uKSwgMCk7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ01l
dGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRl
PiYmIHVwZGF0ZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24odXBkYXRlKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlw
cGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24odXBkYXRlKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKSwgMCk7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkKK3sK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OkNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KSwgMCk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6YWJvcnRQYXltZW50U2Vzc2lvbigpCit7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5OjpBYm9ydFBheW1lbnRTZXNzaW9uKCksIDApOworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3I6OmNhbmNlbFBheW1lbnRTZXNzaW9uKCkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OkNhbmNlbFBheW1lbnRTZXNzaW9uKCksIDApOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3I6OnBheW1lbnRDb29yZGluYXRvckRlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRo
aXM7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6dmFsaWRhdGVNZXJjaGFu
dChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25VUkxTdHJpbmcpCit7CisgICAgcGF5bWVudFByb2Nl
c3NDb29yZGluYXRvcigpLnZhbGlkYXRlTWVyY2hhbnQoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVS
TCgpLCB2YWxpZGF0aW9uVVJMU3RyaW5nKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvcjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXlt
ZW50KQoreworICAgIHBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKS5kaWRBdXRob3JpemVQYXlt
ZW50KHBheW1lbnQpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmRpZFNl
bGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit7CisgICAgcGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvcigpLmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9k
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmIHNoaXBwaW5nQ29udGFjdCkK
K3sKKyAgICBwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkuZGlkU2VsZWN0U2hpcHBpbmdDb250
YWN0KHNoaXBwaW5nQ29udGFjdCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
cjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBw
YXltZW50TWV0aG9kKQoreworICAgIHBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKS5kaWRTZWxl
Y3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3I6OmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkKK3sKKyAgICBwYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yKCkuZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJl
cGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtlUGF5bWVudHMpCit7CisgICAgYXV0
byBjYWxsYmFjayA9IG1fcGVuZGluZ0Nhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkQ2FsbGJh
Y2tzLnRha2UocmVxdWVzdElEKTsKKyAgICBjYWxsYmFjayhjYW5NYWtlUGF5bWVudHMpOworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6Om9wZW5QYXltZW50U2V0dXBSZXBseSh1
aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBt
X3BlbmRpbmdPcGVuUGF5bWVudFNldHVwQ2FsbGJhY2tzLnRha2UocmVxdWVzdElEKTsKKyAgICBj
YWxsYmFjayhyZXN1bHQpOworfQorCitXZWJDb3JlOjpQYXltZW50Q29vcmRpbmF0b3ImIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3I6OnBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKQoreworICAg
IHJldHVybiBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCk7Cit9CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVu
dHMvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWNiYmNh
ZGY4NTcyN2Y3ODMxZDczNTU2ZWE0Yzc5ZjRjMDJlZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3Iu
aApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5oPgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIElQ
QyB7CitjbGFzcyBEYXRhUmVmZXJlbmNlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBQYXltZW50Q29vcmRpbmF0b3I7CitjbGFzcyBQYXltZW50Q29udGFjdDsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9yQ2xpZW50
LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKFdlYlBhZ2UmKTsKKyAgICB+UGF5bWVudFByb2Nlc3ND
b29yZGluYXRvcigpOworICAgIAorcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpQYXltZW50Q29v
cmRpbmF0b3JDbGllbnQuCisgICAgYm9vbCBzdXBwb3J0c1ZlcnNpb24odW5zaWduZWQgdmVyc2lv
bikgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHZhbGlkYXRlZFBheW1lbnRO
ZXR3b3JrKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuTWFrZVBheW1lbnRz
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25z
dCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlOwor
ICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlOworICAgIGJvb2wgc2hvd1BheW1lbnRVSShjb25z
dCBXZWJDb3JlOjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VVJM
PiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29u
c3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQg
Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0
VXBkYXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBvdmVycmlkZTsKKyAgICAKKyAgICB2
b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbmNlbFBheW1l
bnRTZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgCisgICAgdm9pZCBwYXltZW50Q29vcmRpbmF0b3JE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICAKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworICAgIAorICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCB2
YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVSTFN0cmluZyk7CisgICAg
dm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmKTsKKyAgICB2
b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworICAgIHZvaWQgZGlkU2VsZWN0U2hp
cHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0Jik7CisgICAgdm9pZCBk
aWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKTsKKyAg
ICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7CisgICAgdm9pZCBjYW5NYWtlUGF5bWVu
dHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtlUGF5
bWVudHMpOworICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJ
RCwgYm9vbCByZXN1bHQpOworICAgIAorICAgIFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvciYg
cGF5bWVudFByb2Nlc3NDb29yZGluYXRvcigpOworICAgIAorICAgIHVzaW5nIEF2YWlsYWJsZVBh
eW1lbnROZXR3b3Jrc1NldCA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+OworICAgIGNvbnN0IEF2YWlsYWJsZVBheW1lbnROZXR3b3Jrc1NldCYgYXZhaWxhYmxlUGF5
bWVudE5ldHdvcmtzKCk7CisgICAgCisgICAgV2ViUGFnZSYgbV93ZWJQYWdlOworICAgIAorICAg
IEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4+IG1fcGVuZGluZ0Nh
bk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0
X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4+IG1fcGVuZGluZ09wZW5QYXltZW50U2V0dXBD
YWxsYmFja3M7CisgICAgCisgICAgc3RkOjpvcHRpb25hbDxBdmFpbGFibGVQYXltZW50TmV0d29y
a3NTZXQ+IG1fYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzOworfTsKKworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50
cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTI3
MWU4NjQ2NWUxYWM3YjQ1OGE3ZWE5MDIzNTdiMzFiZDZlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM5IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorIy8KKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IgeworCisg
ICAgVmFsaWRhdGVNZXJjaGFudChTdHJpbmcgdmFsaWRhdGlvblVSTFN0cmluZykKKyAgICBEaWRB
dXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBheW1lbnQgcGF5bWVudCkKKyAgICBEaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2QpCisgICAgRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0
KFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHNoaXBwaW5nQ29udGFjdCkKKyAgICBEaWRTZWxlY3RQ
YXltZW50TWV0aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QgcGF5bWVudE1ldGhvZCkKKyAgICBE
aWRDYW5jZWxQYXltZW50U2Vzc2lvbigpCisgICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNh
cmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQorICAgIE9w
ZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGE2ZDBh
N2I1NjkyYjExOWZjNjdmNDI3ZGQ0NzllZTE4ZDM4MTYzYzAuLjJkNGNkMmM3ZDE2YTQ0NGI5NjJi
NTMwZmQ1NzdiNGM0YWVkZjViZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMjMsMTYgKzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKICAqLwotI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKIAorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFu
YWdlci5oPgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTQ4LDE3ICs0Nyw0MiBAQCBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKICAgICBtX2Nv
bm5lY3Rpb24tPmludmFsaWRhdGUoKTsKIH0KIAotdm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Ojp2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVSTFN0cmluZykKK3sK
KyAgICBVTlVTRURfUEFSQU0odmFsaWRhdGlvblVSTFN0cmluZyk7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7CisK
K30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQXV0aG9yaXplUGF5
bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIp
Cit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGluZ01l
dGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogeworfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmIHNoaXBwaW5nQ29udGFjdCkK
K3sKIH0KIAordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2VsZWN0UGF5
bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKQor
eworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDYW5jZWxQYXlt
ZW50U2Vzc2lvbigpCit7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBi
b29sIGNhbk1ha2VQYXltZW50cykKK3sKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6b3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBy
ZXN1bHQpCit7Cit9CisKKwogdm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIGF1dG8gcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCBhNDE3N2Y4ZjJlYzdjNTUzODc3ZDFmYjkwNDI2ZDEyM2MxNmE2MjBmLi45YTkwNTI3ZGIx
OGE0ZTM1MjQzZDk1Yjk1NDI3NjdjNWQ2MDY4NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaApAQCAtMzAsMTcgKzMwLDE1IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU1dTZXJ2ZXIu
aD4KLSNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudENvbnRhY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Bh
eW1lbnRNZXRob2QuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCi1uYW1lc3BhY2Ug
UEFMIHsKLWNsYXNzIFNlc3Npb25JRDsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgCitjbGFzcyBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlciwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIElQQzo6TWVzc2FnZVNlbmRlciB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4g
Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikK
ICAgICB7CkBAIC00OSwxMyArNDcsMjIgQEAgcHVibGljOgogICAgIH5XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOwogICAgIAogICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigp
IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorICAgICAgICAKKyAgICB2b2lkIHZhbGlk
YXRlTWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKTsKKyAgICB2b2lk
IGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVudCYpOworICAgIHZvaWQg
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmKTsKKyAgICB2b2lkIGRpZFNl
bGVjdFBheW1lbnRNZXRob2QoY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYpOworICAgIHZv
aWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50c1dp
dGhBY3RpdmVDYXJkUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBib29sIGNhbk1ha2VQYXltZW50
cyk7CisgICAgdm9pZCBvcGVuUGF5bWVudFNldHVwUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBi
b29sIHJlc3VsdCk7CisKIAogcHJpdmF0ZToKICAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTg5OTgwN2M2MDNi
YmUyMTAwMjVmNzgxZGU0MjBmODgyYTY5ZTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisjLworCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24geworCisg
ICAgVmFsaWRhdGVNZXJjaGFudChTdHJpbmcgdmFsaWRhdGlvblVSTFN0cmluZykKKyAgICBEaWRB
dXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBheW1lbnQgcGF5bWVudCkKKyAgICBEaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2QpCisgICAgRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0
KFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHNoaXBwaW5nQ29udGFjdCkKKyAgICBEaWRTZWxlY3RQ
YXltZW50TWV0aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QgcGF5bWVudE1ldGhvZCkKKyAgICBE
aWRDYW5jZWxQYXltZW50U2Vzc2lvbigpCisgICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNh
cmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQorICAgIE9w
ZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggZGNkNmRhNTgwNmJiMzMyYzI0ZmZlYzg1MThl
ZTUwOTZjYmFlN2Y4My4uYjc2ZTNjMTg1NTllYjAwZWUyYzZjODEzZjI0Nzg4ZWVmNDMyZTg4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmKSBmaW5hbDsKIAogICAgIHZvaWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY2hlZHVsZVBh
eW1lbnRKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZv
aWQgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
YmU2YmVmYjgxNDc4NjVmYzBlODFlODEyMjNiNmM0OTZhYjdmMWJkNS4uN2FhYzEyZTA3YWI4MmNl
NWU3ZGIxYTVlODg1MzZlYTMzYjlmZmFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJQYWdlQmFubmVyLmgiCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVz
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCkBA
IC00NTMsNyArNDU0LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VDb25maWd1cmF0aW9u
LnVzZXJDb250ZW50UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlci5wdHIoKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRlZExpbmtUYWJsZUNv
bnRyb2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKTsKIAot
I2lmIEVOQUJMRShBUFBMRV9QQVkpCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wYXltZW50Q29vcmRpbmF0b3JD
bGllbnQgPSBuZXcgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcigqdGhpcyk7CisjZWxpZiBFTkFC
TEUoQVBQTEVfUEFZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnBheW1lbnRDb29yZGluYXRvckNs
aWVudCA9IG5ldyBXZWJQYXltZW50Q29vcmRpbmF0b3IoKnRoaXMpOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzMzE1YWMyOTEyMWRiMWE5ZDQ5
NWRiZTI3MTcxZjQ1NTZiOGYxNjE3Li5hNjBkNmEyMGMzODA1ZjViNDBkZmJkYWQ4YTViOTcyZjdm
NjFiODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0zOTAs
NiArMzkwLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKICAgICBlbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBlbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbigpOwogCiAgICAgc2V0VGVybWluYXRpb25UaW1lb3V0KHBhcmFtZXRlcnMudGVybWlu
YXRpb25UaW1lb3V0KTsKIApAQCAtMTI1NywxNyArMTI1OCwxNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aQogICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwog
fQogCi1XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25J
RCkKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX3dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKSB7CiAgICAgICAgIElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVj
dGlvbklkZW50aWZpZXI7CiAKLSAgICAgICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oaW5pdGlhbFNlc3Npb25JRCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlm
aWVyKSwgMCkpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikp
CisgICAgICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCksIE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHko
ZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpCisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCkpKQogICAgICAgICAgICAgQ1JB
U0goKTsKIAotICAgICAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0gV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSWRlbnRpZmllcik7Cisg
ICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCkp
OwogCiAgICAgfQogICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDc0ODdiYTU2MWY0Y2Y3NDI5
YmI4MTliZTYxYmMzZTYyMzRmYzE3MzQuLmI4MGE4NDYwYmJjZjBiNjJkNTBkNGFhNDZkYjBkMTZj
YjkxOWZmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTgwLDcg
KzE4MCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9p
ZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiopOwotICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklEKTsKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJlV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0
Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUg
c2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3
ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVk
UHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAg
RVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRl
bnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBf
cGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRl
RGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVz
b3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVY
UEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJv
Y2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6
ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJjM2Q2M2E5ZWE4N2MyNmVjYTBkMWJmZDY2Nzc2
NTczMDkxNi4uZTY0MDNlOWUwZmY2ZWFiZGE5ZWNlMGYyOWNmZmE2NWU1NTVjZGM4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KQEAgLTEwNDYsNiArMTA0Niw5IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIFNlcnZpY2VXb3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5
bWVudCBwcm9jZXNzIGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIp
OworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5v
dCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdl
YlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50SWdu
b3JpbmdQcmV3YXJtZWQpOwogCkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3Jr
ZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hv
dWxkIGJlIG5vIHBheW1lbnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJW
aWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRp
Zmllcik7CisKICAgICAvLyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBo
YXMgc2VydmljZSB3b3JrZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24u
Z2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357876</attachid>
            <date>2018-12-20 15:08:18 -0800</date>
            <delta_ts>2018-12-21 19:18:02 -0800</delta_ts>
            <desc>Patch #2</desc>
            <filename>bug-191298-20181220150816.patch</filename>
            <type>text/plain</type>
            <size>193006</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NTkwMWYzMjI3NGM4NjY1M2MxZWY0NThlZmE3MGQ0OWNhMWI5OGI2Li4wMTM2OWRkMTcyY2VlMmFm
YjQxYzI2MDg1ZWFmYmU1NzhlZmEyMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA5OTc1YjI3ODZkODEwNWUwYTgzZTU4ZmU3OTU4ZmIx
ZDNlNGYwYTAuLjIzOTBmYWI2ZTUwNWE3NTg1OTM0NmE5YTMyYmUwZjAxYzA0Yjc1MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0xMi0yMCAgWmFtaXVsIEhhcXVlICA8emhhcXVl
QGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUg
ZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMTgtMTEtMTQgIFphbWl1bCBI
YXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIg
d2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAg
ICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAxOC0xMS0yNyAgWmFtaXVs
IEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1
YiB3aXRoIGZlYXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNDM2MDlhNWE0NmM2MjAy
YTU0YjNkOTIxZjFiODgzODE0MWZhOWUwNy4uNmZiZjQyNDMxMjMzY2Y0MDQ3MzVmMzE0OWRmY2U5
NmRmM2I2ZTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMTIt
MjAgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBw
cm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oOgorICAg
ICAgICAqIHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsubW06CisgICAgICAgICogcGFsL3NwaS9j
b2NvYS9QYXNzS2l0U1BJLmg6CisKKzIwMTgtMTEtMTQgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTgtMTEtMjcgIFphbWl1
bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0
dWIgd2l0aCBmZWF0dXJlIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTc2NjMxM2YwZjRhNGI3NDNjMmEwOTZl
ODBjZjZlYzdkNDg2MTMzMS4uYzk4M2FmMzYzYTZjZjhhZTYxNTg3NDllMTUwMmQ4YmY1NGE3OTgy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MyBAQAorMjAxOC0xMi0yMCAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxMjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZzoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpkZXN0
cm95U2Vzc2lvbik6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaDoK
KyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2Nv
YS5oOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eUNvY29hLm1tOgorICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
ckRlbGVnYXRlIGluaXRXaXRoUGF5bWVudENvb3JkaW5hdG9yUHJveHk6XSk6CisgICAgICAgICgt
W1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgaW52YWxpZGF0ZV0pOgor
ICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjpkaWRSZXF1ZXN0TWVyY2hhbnRTZXNzaW9uOl0pOgor
ICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjpkaWRBdXRob3JpemVQYXltZW50OmhhbmRsZXI6XSk6
CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOmRpZFNlbGVjdFBheW1lbnRNZXRob2Q6aGFuZGxl
cjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0
ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Q6
aGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6ZGlkU2VsZWN0U2hpcHBpbmdD
b250YWN0OmhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUgcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOmRpZEF1dGhvcml6
ZVBheW1lbnQ6Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlv
bkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6ZGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2Q6Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXI6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZDpjb21wbGV0aW9uOl0pOgorICAgICAgICAoLVtXS1Bh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlcjpkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6Y29tcGxldGlvbjpdKToKKyAgICAg
ICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXJEaWRGaW5pc2g6XSk6CisgICAgICAgIChXZWJLaXQ6OnRvUEtT
aGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6OnRvUEtQYXltZW50UmVxdWVzdCk6Cisg
ICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6UGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnZhbGlkYXRlTWVy
Y2hhbnQpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQXV0aG9yaXplUGF5bWVudCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Qp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDYW5jZWxQYXltZW50U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZFJlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
Om9wZW5QYXltZW50U2V0dXBSZXBseSk6CisgICAgICAgICogUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9FeHRyYVByaXZh
dGVTeW1ib2xzRm9yVEFQSS5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQ
YXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6dG9QS1BheW1lbnRSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudHMv
UGF5bWVudFByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNz
UHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFBy
b2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmNyZWF0ZVBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGF5bWVudHMvUGF5
bWVudFByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp+V2ViUHJvY2Vzc1Bvb2wpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jh
c2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBN
aWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
YXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp2YWxpZGF0ZU1lcmNoYW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEF1dGhvcml6
ZVBheW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNlbGVjdFBheW1lbnRN
ZXRob2QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpvcGVuUGF5bWVu
dFNldHVwUmVwbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fc2hvdWxkQXR0YWNoRHJhd2luZ0FyZWFPblBhZ2VU
cmFuc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxOC0xMS0yNyAgWmFtaXVs
IEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1
YiB3aXRoIGZlYXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9QYXNzS2l0U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvUGFz
c0tpdFNvZnRMaW5rLmgKaW5kZXggYzA4NzQ4OTU1NjUxZDljYzNiN2YzMTUzZGY1NTI5ZTE2MzNk
M2VhMS4uNTNhMzcyZDA0MDQ0ODk4MDA4MzA0YjkwNmNlZjliMjU0OTM3M2E0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oCkBAIC0zNiw2ICsz
Niw3IEBAIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgUEtDb250YWN0KQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1Bhc3NMaWJyYXJ5KQogU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBQS1BheW1lbnQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQ
QUwsIFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlcikKK1NPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIpCiBTT0ZU
X0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFBLUGF5bWVudE1ldGhvZCkKIFNPRlRfTElOS19D
TEFTU19GT1JfSEVBREVSKFBBTCwgUEtQYXltZW50TWVyY2hhbnRTZXNzaW9uKQogU09GVF9MSU5L
X0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1BheW1lbnRSZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5tbQppbmRleCAzMmY3YmUwOWNhYWM1
NmYwZjA2ZjJkODc3M2U3N2MwYjg0ZGU4ZjkzLi4wODY0NTJiYWJkOTgzN2FkZGUxOWI0ZjRmOGM0
OWUwYjAyZDg3OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bh
c3NLaXRTb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NL
aXRTb2Z0TGluay5tbQpAQCAtMzksNiArMzksNyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0LCBQS0NvbnRhY3QsIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NL
aXQsIFBLUGFzc0xpYnJhcnksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQsIFBLUGF5bWVudCwgUEFMX0VYUE9SVCkKK1NPRlRf
TElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXltZW50
QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQsIFBLUGF5bWVudEF1dGhvcml6YXRpb25W
aWV3Q29udHJvbGxlciwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXltZW50TWVyY2hhbnRTZXNzaW9uLCBQQUxfRVhQ
T1JUKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0
LCBQS1BheW1lbnRNZXRob2QsIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9QYXNzS2l0U1BJLmgKaW5kZXggMTg5NThlOTI2MTRjMWUzYjZhNGYwNGE2OGFk
MTQzM2FiMTk3MTgxNy4uOGI4YmFlYTY5NzFjOTg2MzEzOWUyYTUxMjk2NjBiNWVlMDYzNjNhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUGFzc0tpdFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaApAQCAt
NDAsNiArNDAsNyBAQCBXVEZfRVhURVJOX0NfRU5ECiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKIAogI2ltcG9ydCA8UGFzc0tpdC9QYXNzS2l0Lmg+CisjaW1wb3J0IDxQYXNzS2l0L1BLUGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQgPFBhc3NLaXQv
UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFBhc3NLaXQvUEtQYXltZW50UmVxdWVzdF9Qcml2YXRlLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwppbmRleCA0MDVkNjNiYmIwMTJh
MzllNjVkYThiYThiODkwODM1OGEyNThiZDZjLi5lZWI3YTI2YWRhMTQ2M2QyYWQ1YThkY2ZkYjIw
NmE0ZDYzY2YzZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jh
c2VUYXJnZXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNl
VGFyZ2V0LnhjY29uZmlnCkBAIC0xMTEsNiArMTExLDggQEAgV0tfSEFWRV9DT1JFX1BSRURJQ1RJ
T05bc2RrPW1hY29zeCpdW2FyY2g9aTM4Nl0gPSBOTzsKIFdLX0NPUkVfUFJFRElDVElPTl9ERUZJ
TkVTID0gJChXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU18kKFdLX0hBVkVfQ09SRV9QUkVESUNU
SU9OKSk7CiBXS19DT1JFX1BSRURJQ1RJT05fREVGSU5FU19ZRVMgPSBIQVZFX0NPUkVfUFJFRElD
VElPTjsKIAorV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJL
aXQuUGF5bWVudHM7CisKIFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUUgPSAkKFdLX1NU
T1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVfJChXS19VU0VfTEVHQUNZX1NUT1JBR0VfU0VSVklD
RV9OQU1FKSk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FXyA9ICQoV0tfU1RPUkFH
RV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyk7CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9O
QU1FX05PID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudFNlcnZpY2UueGNjb25maWcKaW5kZXggNzRkMzg4OGM4
ZGYwYmRhYmQzYTMyNzE0ZTYxMGNiMmVmZTU3NDM4ZC4uYWNiNWMzZDhiYmY2ZTE2MzMyY2I4YTI2
NjA1MTBmZWI0MTU3MzY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9QYXltZW50U2VydmljZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnCkBAIC0yNSw5ICsyNSwxNCBAQAogCiBXS19QQVlN
RU5UX0VOVElUTEVNRU5UU19SRVNUUklDVEVEX05PID0gOwogCitXS19YUENfU0VSVklDRV9JT1Nf
RU5USVRMRU1FTlRTX0JBU0UgPSAkKFdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFT
RV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNf
QkFTRV9pcGhvbmVvcyA9IFBheW1lbnRzLWlPUzsKK1dLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExF
TUVOVFNfQkFTRV9pcGhvbmVzaW11bGF0b3IgPSBQYXltZW50cy1pT1M7CisKK0NPREVfU0lHTl9F
TlRJVExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JF
U1RSSUNURURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKIENPREVfU0lHTl9F
TlRJVExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX1BBWU1FTlRfRU5USVRMRU1FTlRTX1JF
U1RSSUNURURfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKTsKIE9USEVSX0NPREVf
U0lHTl9GTEFHUyA9ICQoV0tfTElCUkFSWV9WQUxJREFUSU9OX0NPREVfU0lHTl9GTEFHUyk7CiAK
LVBST0RVQ1RfTkFNRSA9ICQoV0tfUEFZTUVOVF9TRVJWSUNFX1BST0RVQ1RfTkFNRSk7CitQUk9E
VUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzOwogUFJPRFVDVF9CVU5ETEVfSURF
TlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsKIElORk9QTElTVF9GSUxFW3Nkaz1pcGhvbmUqXSA9
IFBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2Uv
SW5mby1pT1MucGxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9TLW1pbmltYWxzaW11bGF0b3IuZW50aXRsZW1l
bnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkN2FhMzI1ZTg5ODkwOTBlN2Q5NDJlNGYwYWVhZDI4OGMzZTZjM2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRz
LWlPUy1taW5pbWFsc2ltdWxhdG9yLmVudGl0bGVtZW50cwpAQCAtMCwwICsxLDEwIEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJ
QyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFRE
cy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0Pgor
CTxrZXk+c2VhdGJlbHQtcHJvZmlsZXM8L2tleT4KKwk8YXJyYXk+CisJCTxzdHJpbmc+Y29tLmFw
cGxlLldlYktpdC5QYXltZW50czwvc3RyaW5nPgorCTwvYXJyYXk+Cis8L2RpY3Q+Cis8L3BsaXN0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50cy1pT1Mu
ZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QYXltZW50cy1pT1Mu
ZW50aXRsZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYTQwYmJkYzY4YjI2ZjA0YzQ0YTE5ZGFjOGExNWMz
ZDVmY2FkNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1BheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0Fw
cGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVy
dHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNv
bS5hcHBsZS5wYXltZW50LmFsbC1hY2Nlc3M8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5jb20uYXBw
bGUucHJpdmF0ZS5pbi1hcHAtcGF5bWVudHM8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5zZWF0YmVs
dC1wcm9maWxlczwva2V5PgorCTxhcnJheT4KKwkJPHN0cmluZz5jb20uYXBwbGUuV2ViS2l0LlBh
eW1lbnRzPC9zdHJpbmc+CisJPC9hcnJheT4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggODYwNWU3YjZjY2FkZWRhYjljOGQ3N2VhN2RhMDc4MmQzZTUz
NDgzOC4uOTIwYzA4OWFiOWU0MDU2NDA0ZDNlYTFlYzZhODM5ODYzZjIzZWVhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTIsNiArNTIsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0
YSBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BheW1lbnRzIFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTEyMiw2ICsx
MjMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkgXAogICAgIFBheW1lbnRQcm9jZXNzIFwKICAgICBQYXltZW50UHJvY2Vzc1Byb3h5IFwK
KyAgICBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yIFwKKyAgICBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHkgXAogICAgIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBQ
bHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3MgXApAQCAtMTg3LDYgKzE5
MCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlNXU2VydmVyQ29ubmVjdGlvbiBc
CiAgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIFwKICAgICBXZWJTb2NrZXRTdHJl
YW0gXAorICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIFwKICAgICBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIgXAogICAgIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5IFwKICMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKaW5k
ZXggMzJhMzQxMjEwMjk4NTI5NzNjNjg1MThiYTBjYjU2YWU0Y2JkZjFjZi4uNWI4YzZmYmZmNDcy
MWRmNzdiZTEyYTk5OGU2ZmY4NmM3ZTI4ZDM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
YXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKQEAgLTI4LDYgKzI4LDE2IEBACiAKICNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC0zOSw2ICs0OSw4IEBAIFBheW1lbnRQcm9jZXNzJiBQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKCkKIH0KIAogUGF5bWVudFByb2Nlc3M6OlBheW1lbnRQcm9jZXNzKCkK
KyAgICA6IG1fcGF5bWVudENvb3JkaW5hdG9yKHN0ZDo6bWFrZV91bmlxdWU8UGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5PigqdGhpcykpCisgICAgLCBtX2Nvbm5lY3Rpb24obnVsbHB0cikK
IHsKIH0KIApAQCAtNTUsMTQgKzY3LDExIEBAIGJvb2wgUGF5bWVudFByb2Nlc3M6OnNob3VsZFRl
cm1pbmF0ZSgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0KLXZvaWQgUGF5bWVudFByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQorICAgIAordm9pZCBQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGlm
IChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cikpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
ewotICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgbV9wYXltZW50Q29vcmRpbmF0b3ItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC03MCwxMSArNzksMzMgQEAgdm9pZCBQYXltZW50UHJvY2Vzczo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIKICAgICAgICAg
Q2hpbGRQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLX0KIAotdm9pZCBQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK30KKyAgICAKK3Zv
aWQgUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkK
K3sKKyAgICAvLyBDcmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxp
c3RlbmluZ1BvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICBhdXRvIGtyID0gbWFjaF9wb3J0X2Fs
bG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVu
aW5nUG9ydCk7CisgICAgaWYgKGtyICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzLCAiUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOiBDb3VsZCBub3QgYWxsb2NhdGUgbWFjaCBwb3J0LCBlcnJvciAleCIs
IGtyKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisgICAgaWYgKCFNQUNIX1BPUlRfVkFMSUQo
bGlzdGVuaW5nUG9ydCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIlBh
eW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjogQ291bGQg
bm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgcmV0dXJuZWQgcG9ydCB3YXMgaW52YWxpZCIpOworICAg
ICAgICBDUkFTSCgpOworICAgIH0KKyAgICAKKyAgICAvLyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29u
bmVjdGlvbi4KKyAgICBtX2Nvbm5lY3Rpb24gPSBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSk7Cisg
ICAgCisgICAgSVBDOjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9N
U0dfVFlQRV9NQUtFX1NFTkQpOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6OkRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKK30KKyAgICAKK3ZvaWQgUGF5bWVudFByb2Nl
c3M6OmRlc3Ryb3lTZXNzaW9uKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFRP
RE86IGRlbGV0ZSBjb29yZGluYXRvciBwcm94eQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuaAppbmRleCAy
ZjZkZTQ3ZTAwMTc0MDcxNWRjNjc2N2NlNjEwZjQ3NjEyN2VhNWI2Li40MmVlZWZhMTE0Y2VkMGI1
ZDY2YjAyMWM0MjgzYWJjOWI5YWFhODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50UHJvY2Vzcy5oCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247CitjbGFzcyBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk7CiAKIGNsYXNzIFBheW1lbnRQcm9jZXNzIDogcHVibGlj
IENoaWxkUHJvY2VzcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGF5bWVudFByb2Nlc3Mp
OwpAQCAtNDYsOCArNDcsMTYgQEAgcHVibGljOgogCiAgICAgflBheW1lbnRQcm9jZXNzKCk7CiAK
LSAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZVByb2Nl
c3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplU2FuZGJv
eChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5PiBtX3BheW1lbnRDb29yZGluYXRvcjsKKyAg
ICBSZWZQdHI8UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICAKIHByaXZhdGU6CiAgICAgUGF5bWVudFByb2Nlc3MoKTsKIApAQCAtNTUsMTEgKzY0LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24q
KSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOwogCi0gICAg
Ly8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotCiAgICAgLy8gTWVzc2Fn
ZSBIYW5kbGVycwotICAgIHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Ym9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
Jik7CisgICAgdm9pZCBjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
IHZvaWQgZGVzdHJveVNlc3Npb24oKTsKKyAgICAKICAgICAKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDk4YjkxNGZjNGE4ZjQ0NzE4Y2ZhMTI1NzZkMzM4ZGFlNTkyYWEwZTMuLjY5NGU2ZTYzZDNj
MThmNTYwZDFjOGI0YjdlYWNjYjhlOWY4Y2JhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjQsNSAr
MjQsNyBAQAogCiBtZXNzYWdlcyAtPiBQYXltZW50UHJvY2VzcyB7CiAgICAgCisgICAgQ3JlYXRl
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQorICAgIERlc3Ryb3lTZXNzaW9uKCkKIH0K
ICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5M2IzMGI3ZTBjNTgyMzI5MWZjNmYyYzYyMzI3MDBjNzNiNjA5
NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTAsMCArMSwzNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5LmgiCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkq
IGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5OworCitQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eShQYXltZW50UHJvY2VzcyYg
cGF5bWVudFByb2Nlc3MpCisgICAgOiBtX3BheW1lbnRQcm9jZXNzKHBheW1lbnRQcm9jZXNzKQor
ICAgICwgbV9zdGF0ZShTdGF0ZTo6SWRsZSkKKyAgICAsIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3Rh
dGUoTWVyY2hhbnRWYWxpZGF0aW9uU3RhdGU6OklkbGUpCit7CisgICAgbV9wYXltZW50UHJvY2Vz
cy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1BheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6flBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSgpCit7Cisg
ICAgaWYgKGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5ID09IHRoaXMpCisgICAgICAgIGFj
dGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5ID0gbnVsbHB0cjsKKyAgICAKKyAgICBpZiAobV9z
dGF0ZSAhPSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgaGlkZVBheW1lbnRVSSgpOworICAgIAorICAg
IG1fcGF5bWVudFByb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjphdmFpbGFibGVQYXltZW50TmV0d29y
a3MoVmVjdG9yPFN0cmluZz4mIG5ldHdvcmtzKQoreworICAgIG5ldHdvcmtzID0gcGxhdGZvcm1B
dmFpbGFibGVQYXltZW50TmV0d29ya3MoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50cyhib29sJiByZXBseSkKK3sKKyAgICByZXBseSA9
IHBsYXRmb3JtQ2FuTWFrZVBheW1lbnRzKCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcm
IG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50NjRfdCBy
ZXF1ZXN0SUQpCit7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAg
ICBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKG1lcmNoYW50SWRlbnRpZmll
ciwgZG9tYWluTmFtZSwgW3dlYWtUaGlzLCByZXF1ZXN0SURdKGJvb2wgY2FuTWFrZVBheW1lbnRz
KSB7CisgICAgICAgIGF1dG8gcGF5bWVudENvb3JkaW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQo
KTsKKyAgICAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0b3JQcm94eSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgCisgICAgICAgIHBheW1lbnRDb29yZGluYXRvclByb3h5LT5tX3BheW1l
bnRQcm9jZXNzLm1fY29ubmVjdGlvbi0+Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBs
eShyZXF1ZXN0SUQsIGNhbk1ha2VQYXltZW50cyk7CisgICAgfSk7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYg
bWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJl
cXVlc3RJRCkKK3sKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAg
IHBsYXRmb3JtT3BlblBheW1lbnRTZXR1cChtZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUs
IFt3ZWFrVGhpcywgcmVxdWVzdElEXShib29sIHJlc3VsdCkgeworICAgICAgICBhdXRvIHBheW1l
bnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMuZ2V0KCk7CisgICAgICAgIGlmICghcGF5bWVu
dENvb3JkaW5hdG9yUHJveHkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAg
ICBwYXltZW50Q29vcmRpbmF0b3JQcm94eS0+bV9wYXltZW50UHJvY2Vzcy5tX2Nvbm5lY3Rpb24t
Pm9wZW5QYXltZW50U2V0dXBSZXBseShyZXF1ZXN0SUQsIHJlc3VsdCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpzaG93UGF5bWVudFVJKGNvbnN0
IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsaW5r
SWNvblVSTFN0cmluZ3MsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0JiBwYXltZW50UmVxdWVzdCwgYm9vbCYgcmVzdWx0KQoreworICAgIC8vIEZJWE1FOiBNYWtl
IHRoaXMgYSBtZXNzYWdlIGNoZWNrLgorICAgIEFTU0VSVChjYW5CZWdpbigpKTsKKyAgICAKKyAg
ICBpZiAoYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgYWN0aXZlUGF5
bWVudENvb3JkaW5hdG9yUHJveHktPmhpZGVQYXltZW50VUkoKTsKKyAgICAgICAgYWN0aXZlUGF5
bWVudENvb3JkaW5hdG9yUHJveHktPmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7CisgICAgfQor
ICAgIAorICAgIGFjdGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5ID0gdGhpczsKKyAgICAKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2YXRpbmc7CisgICAgCisgICAgV2ViQ29yZTo6VVJMIG9y
aWdpbmF0aW5nVVJMKFdlYkNvcmU6OlVSTCgpLCBvcmlnaW5hdGluZ1VSTFN0cmluZyk7CisgICAg
CisgICAgVmVjdG9yPFdlYkNvcmU6OlVSTD4gbGlua0ljb25VUkxzOworICAgIGZvciAoY29uc3Qg
YXV0byYgbGlua0ljb25VUkxTdHJpbmcgOiBsaW5rSWNvblVSTFN0cmluZ3MpCisgICAgICAgIGxp
bmtJY29uVVJMcy5hcHBlbmQoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBsaW5rSWNvblVS
TFN0cmluZykpOworICAgIAorICAgIHBsYXRmb3JtU2hvd1BheW1lbnRVSShvcmlnaW5hdGluZ1VS
TCwgbGlua0ljb25VUkxzLCBwYXltZW50UmVxdWVzdCwgW3RoaXNdKGJvb2wgcmVzdWx0KSB7Cisg
ICAgICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmF0aW5nKTsKKyAgICAgICAgaWYg
KCFyZXN1bHQpIHsKKyAgICAgICAgICAgIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fc3RhdGUgPSBT
dGF0ZTo6QWN0aXZlOworICAgIH0pOworICAgIAorICAgIHJlc3VsdCA9IHRydWU7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZU1lcmNoYW50VmFsaWRh
dGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJiBwYXltZW50TWVyY2hh
bnRTZXNzaW9uKQoreworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMg
YmVlbiBjYW5jZWxlZCBhbHJlYWR5LgorICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgTUVT
U0FHRV9DSEVDSy4KKyAgICBBU1NFUlQobV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9PSBNZXJj
aGFudFZhbGlkYXRpb25TdGF0ZTo6VmFsaWRhdGluZyk7CisgICAgCisgICAgcGxhdGZvcm1Db21w
bGV0ZU1lcmNoYW50VmFsaWRhdGlvbihwYXltZW50TWVyY2hhbnRTZXNzaW9uKTsKKyAgICBtX21l
cmNoYW50VmFsaWRhdGlvblN0YXRlID0gTWVyY2hhbnRWYWxpZGF0aW9uU3RhdGU6OlZhbGlkYXRp
b25Db21wbGV0ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAgICAvLyBJdCdzIHBvc3NpYmxl
IHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KKyAgICBpZiAobV9z
dGF0ZSA9PSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSBhIE1FU1NBR0VfQ0hFQ0suCisgICAgQVNTRVJUKG1fc3RhdGUgPT0g
U3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQpOworICAgIAorICAgIHBsYXRmb3JtQ29tcGxl
dGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
QWN0aXZlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpT
aGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRhdGUpCit7CisgICAgLy8gSXQncyBwb3NzaWJsZSB0
aGF0IHRoZSBwYXltZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCisgICAgaWYgKG1fc3Rh
dGUgPT0gU3RhdGU6OklkbGUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgYmUgYSBNRVNTQUdFX0NIRUNLLgorICAgIEFTU0VSVChtX3N0YXRlID09IFN0
YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZCk7CisgICAgCisgICAgcGxhdGZvcm1Db21wbGV0
ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
QWN0aXZlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5
bWVudE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQg
dGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KKyAgICBpZiAobV9zdGF0ZSA9
PSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSBhIE1FU1NBR0VfQ0hFQ0suCisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6
OlBheW1lbnRNZXRob2RTZWxlY3RlZCk7CisgICAgCisgICAgcGxhdGZvcm1Db21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5bWVu
dFNlc3Npb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlv
blJlc3VsdD4mIHJlc3VsdCkKK3sKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1l
bnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KKyAgICBpZiAoIWNhbkNvbXBsZXRlUGF5bWVu
dCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgYm9vbCBpc0ZpbmFsU3RhdGVSZXN1bHQg
PSBXZWJDb3JlOjppc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKKyAgICAKKyAgICBwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KTsKKyAgICAKKyAgICBpZiAoIWlzRmluYWxT
dGF0ZVJlc3VsdCkgeworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAKKyAgICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmFib3J0UGF5bWVudFNlc3Npb24oKQor
eworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxl
ZCBhbHJlYWR5LgorICAgIGlmICghY2FuQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIGhpZGVQYXltZW50VUkoKTsKKyAgICAKKyAgICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbmNlbFBheW1lbnRTZXNz
aW9uKCkKK3sKKyAgICBpZiAoIWNhbkNhbmNlbCgpKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgaGlkZVBheW1lbnRVSSgpOworICAgIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpkaWRDYW5jZWxQYXltZW50U2Vz
c2lvbigpCit7CisgICAgQVNTRVJUKGNhbkNhbmNlbCgpKTsKKyAgICAKKyAgICBtX3BheW1lbnRQ
cm9jZXNzLm1fY29ubmVjdGlvbi0+ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsKKyAgICAKKyAg
ICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6OnZhbGlkYXRlTWVyY2hhbnQoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCit7Cisg
ICAgQVNTRVJUKG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPT0gTWVyY2hhbnRWYWxpZGF0aW9u
U3RhdGU6OklkbGUpOworICAgIAorICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJj
aGFudFZhbGlkYXRpb25TdGF0ZTo6VmFsaWRhdGluZzsKKyAgICBtX3BheW1lbnRQcm9jZXNzLm1f
Y29ubmVjdGlvbi0+dmFsaWRhdGVNZXJjaGFudCh1cmwuc3RyaW5nKCkpOworfQorCit2b2lkIFBh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBX
ZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QXV0aG9y
aXplZDsKKyAgICBtX3BheW1lbnRQcm9jZXNzLm1fY29ubmVjdGlvbi0+ZGlkQXV0aG9yaXplUGF5
bWVudChwYXltZW50KTsKKworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3sKKyAgICBB
U1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6QWN0aXZlKTsKKyAgICAKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQ7CisgICAgbV9wYXltZW50UHJvY2Vzcy5tX2Nvbm5l
Y3Rpb24tPmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmRpZFNlbGVjdFNoaXBwaW5nQ29udGFj
dChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYgc2hpcHBpbmdDb250YWN0KQoreworICAg
IEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOworICAgIAorICAgIG1fc3RhdGUgPSBT
dGF0ZTo6U2hpcHBpbmdDb250YWN0U2VsZWN0ZWQ7CisgICAgbV9wYXltZW50UHJvY2Vzcy5tX2Nv
bm5lY3Rpb24tPmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChzaGlwcGluZ0NvbnRhY3QpOworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlkU2VsZWN0UGF5bWVudE1l
dGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKQoreworICAg
IEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOworICAgIAorICAgIG1fc3RhdGUgPSBT
dGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVjdGVkOworICAgIG1fcGF5bWVudFByb2Nlc3MubV9jb25u
ZWN0aW9uLT5kaWRTZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOworCit9CisKK2Jv
b2wgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpjYW5CZWdpbigpIGNvbnN0Cit7Cisg
ICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgY2FzZSBTdGF0ZTo6SWRsZToKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIAorICAgIGNhc2UgU3RhdGU6OkFjdGl2YXRpbmc6CisgICAgY2Fz
ZSBTdGF0ZTo6QWN0aXZlOgorICAgIGNhc2UgU3RhdGU6OkF1dGhvcml6ZWQ6CisgICAgY2FzZSBT
dGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ0Nv
bnRhY3RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQ6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5OjpjYW5DYW5jZWwoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9zdGF0ZSkg
eworICAgIGNhc2UgU3RhdGU6OkFjdGl2YXRpbmc6CisgICAgY2FzZSBTdGF0ZTo6QWN0aXZlOgor
ICAgIGNhc2UgU3RhdGU6OkF1dGhvcml6ZWQ6CisgICAgY2FzZSBTdGF0ZTo6U2hpcHBpbmdNZXRo
b2RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZDoKKyAg
ICBjYXNlIFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQ6CisgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAKKyAgICBjYXNlIFN0YXRlOjpJZGxlOgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorfQorCitib29sIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y2FuQ29t
cGxldGVQYXltZW50KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNl
IFN0YXRlOjpBdXRob3JpemVkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAg
Y2FzZSBTdGF0ZTo6SWRsZToKKyAgICBjYXNlIFN0YXRlOjpBY3RpdmF0aW5nOgorICAgIGNhc2Ug
U3RhdGU6OkFjdGl2ZToKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGluZ01ldGhvZFNlbGVjdGVkOgor
ICAgIGNhc2UgU3RhdGU6OlNoaXBwaW5nQ29udGFjdFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6
OlBheW1lbnRNZXRob2RTZWxlY3RlZDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30K
KworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbkFib3J0KCkgY29uc3QK
K3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNlIFN0YXRlOjpBY3RpdmF0aW5nOgor
ICAgIGNhc2UgU3RhdGU6OkFjdGl2ZToKKyAgICBjYXNlIFN0YXRlOjpBdXRob3JpemVkOgorICAg
IGNhc2UgU3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQ6CisgICAgY2FzZSBTdGF0ZTo6U2hp
cHBpbmdDb250YWN0U2VsZWN0ZWQ6CisgICAgY2FzZSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVj
dGVkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgY2FzZSBTdGF0ZTo6SWRs
ZToKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHk6OmRpZFJlYWNoRmluYWxTdGF0ZSgpCit7CisgICAgbV9zdGF0ZSA9
IFN0YXRlOjpJZGxlOworICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJjaGFudFZh
bGlkYXRpb25TdGF0ZTo6SWRsZTsKKyAgICAKKyAgICBBU1NFUlQoYWN0aXZlUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkgPT0gdGhpcyk7CisgICAgYWN0aXZlUGF5bWVudENvb3JkaW5hdG9yUHJveHkg
PSBudWxscHRyOworfQorICAgIAorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAyMzdmNjQ4M2M5OTJjZTZkODI2NjM1YjA0MjFkYzExYmQ0NDI4NjAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eS5oCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Q
YXltZW50SGVhZGVycy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMg
eworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBj
bGFzcyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czsKK2NsYXNzIFBheW1lbnQ7CitjbGFzcyBQ
YXltZW50Q29udGFjdDsKK2NsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247CitjbGFzcyBQYXlt
ZW50TWV0aG9kOworY2xhc3MgVVJMOworfQorCitPQkpDX0NMQVNTIE5TT2JqZWN0OworT0JKQ19D
TEFTUyBOU1dpbmRvdzsKK09CSkNfQ0xBU1MgUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXI7CitPQkpDX0NMQVNTIFdLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBQYXlt
ZW50UHJvY2VzczsKKworY2xhc3MgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5IDogcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eT4geworcHVibGljOgorICAgIGV4cGxpY2l0IFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eShQYXltZW50UHJvY2VzcyYpOworICAgIH5QYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRT
ZXNzaW9uKCk7CisgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFdlYkNvcmU6OlVSTCYp
OworICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50Jik7
CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAgICB2b2lkIGRpZFNl
bGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpOworICAg
IHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9k
Jik7CisgICAgCisgICAgdm9pZCBoaWRlUGF5bWVudFVJKCk7CisgICAgCisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICAKK3ByaXZhdGU6CisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICAKKyAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzLgorICAgIHZvaWQgYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKFZlY3RvcjxT
dHJpbmc+Jik7CisgICAgdm9pZCBjYW5NYWtlUGF5bWVudHMoYm9vbCYgcmVwbHkpOworICAgIHZv
aWQgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXJjaGFudElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKTsK
KyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKTsKKyAgICB2
b2lkIHNob3dQYXltZW50VUkoY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBib29sJiByZXN1bHQpOworICAgIHZvaWQgY29t
cGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vz
c2lvbiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYpOworICAgIHZvaWQg
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRN
ZXRob2RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9k
VXBkYXRlPiYpOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOworICAgIHZvaWQg
YWJvcnRQYXltZW50U2Vzc2lvbigpOworICAgIHZvaWQgY2FuY2VsUGF5bWVudFNlc3Npb24oKTsK
KyAgICAKKyAgICBib29sIGNhbkJlZ2luKCkgY29uc3Q7CisgICAgYm9vbCBjYW5DYW5jZWwoKSBj
b25zdDsKKyAgICBib29sIGNhbkNvbXBsZXRlUGF5bWVudCgpIGNvbnN0OworICAgIGJvb2wgY2Fu
QWJvcnQoKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIGRpZFJlYWNoRmluYWxTdGF0ZSgpOworICAg
IAorICAgIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCk7
CisgICAgYm9vbCBwbGF0Zm9ybUNhbk1ha2VQYXltZW50cygpOworICAgIHZvaWQgcGxhdGZvcm1D
YW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgcGxhdGZvcm1PcGVuUGF5bWVudFNldHVw
KGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5h
bWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAg
dm9pZCBwbGF0Zm9ybVNob3dQYXltZW50VUkoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaW5hdGlu
Z1VSTCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZU1l
cmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7
CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3Qg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lk
IHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7CisgICAgdm9pZCBwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlUGF5
bWVudFNlc3Npb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdD4mKTsKKyAgICAKKyAgICBQYXltZW50UHJvY2VzcyYgbV9wYXltZW50UHJvY2Vz
czsKKyAgICAKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgLy8gSWRsZSAtIE5vdGhp
bmcncyBoYXBwZW5pbmcuCisgICAgICAgIElkbGUsCisgICAgICAgIAorICAgICAgICAvLyBBY3Rp
dmF0aW5nIC0gV2FpdGluZyB0byBzaG93IHRoZSBwYXltZW50IFVJLgorICAgICAgICBBY3RpdmF0
aW5nLAorICAgICAgICAKKyAgICAgICAgLy8gQWN0aXZlIC0gU2hvd2luZyBwYXltZW50IFVJLgor
ICAgICAgICBBY3RpdmUsCisgICAgICAgIAorICAgICAgICAvLyBBdXRob3JpemVkIC0gRGlzcGF0
Y2hpbmcgdGhlIGF1dGhvcml6ZWQgZXZlbnQgYW5kIHdhaXRpbmcgZm9yIHRoZSBwYXltZW50U2Vz
c2lvbkNvbXBsZXRlZCBtZXNzYWdlLgorICAgICAgICBBdXRob3JpemVkLAorICAgICAgICAKKyAg
ICAgICAgLy8gU2hpcHBpbmdNZXRob2RTZWxlY3RlZCAtIERpc3BhdGNoaW5nIHRoZSBzaGlwcGlu
Z21ldGhvZHNlbGVjdGVkIGV2ZW50IGFuZCB3YWl0aW5nIGZvciBhIHJlcGx5LgorICAgICAgICBT
aGlwcGluZ01ldGhvZFNlbGVjdGVkLAorICAgICAgICAKKyAgICAgICAgLy8gU2hpcHBpbmdDb250
YWN0U2VsZWN0ZWQgLSBEaXNwYXRjaGluZyB0aGUgc2hpcHBpbmdjb250YWN0c2VsZWN0ZWQgZXZl
bnQgYW5kIHdhaXRpbmcgZm9yIGEgcmVwbHkuCisgICAgICAgIFNoaXBwaW5nQ29udGFjdFNlbGVj
dGVkLAorICAgICAgICAKKyAgICAgICAgLy8gUGF5bWVudE1ldGhvZFNlbGVjdGVkIC0gRGlzcGF0
Y2hpbmcgdGhlIHBheW1lbnRtZXRob2RzZWxlY3RlZCBldmVudCBhbmQgd2FpdGluZyBmb3IgYSBy
ZXBseS4KKyAgICAgICAgUGF5bWVudE1ldGhvZFNlbGVjdGVkLAorICAgIH0gbV9zdGF0ZTsKKyAg
ICAKKyAgICBlbnVtIGNsYXNzIE1lcmNoYW50VmFsaWRhdGlvblN0YXRlIHsKKyAgICAgICAgLy8g
SWRsZSAtIE5vdGhpbmcncyBoYXBwZW5pbmcuCisgICAgICAgIElkbGUsCisgICAgICAgIAorICAg
ICAgICAvLyBWYWxpZGF0aW5nIC0gRGlzcGF0Y2hpbmcgdGhlIHZhbGlkYXRlbWVyY2hhbnQgZXZl
bnQgYW5kIHdhaXRpbmcgZm9yIGEgcmVwbHkuCisgICAgICAgIFZhbGlkYXRpbmcsCisgICAgICAg
IAorICAgICAgICAvLyBWYWxpZGF0aW9uQ29tcGxldGUgLSBBIG1lcmNoYW50IHNlc3Npb24gaGFz
IGJlZW4gc2VudCBhbG9uZyB0byBQYXNzS2l0LgorICAgICAgICBWYWxpZGF0aW9uQ29tcGxldGUK
KyAgICB9IG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGU7CisgICAgCisgICAgUmV0YWluUHRyPFBL
UGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyPiBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8V0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZT4gbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZTsKKyAgICAK
KyNpZiBQTEFURk9STShNQUMpCisgICAgdWludDY0X3QgbV9zaG93UGF5bWVudFVJUmVxdWVzdFNl
ZWQgeyAwIH07CisgICAgUmV0YWluUHRyPE5TV2luZG93PiBtX3NoZWV0V2luZG93OworICAgIFJl
dGFpblB0cjxOU09iamVjdCAqPiBtX3NoZWV0V2luZG93V2lsbENsb3NlT2JzZXJ2ZXI7CisjZW5k
aWYKK307CisgICAgCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTc1YWNkZDI5MDc1OWMwYTRkNDVjZGRhNzczYmRl
ODZiM2ZhYWMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0
NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWYg
RU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMg
LT4gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5IHsKKworICAgIEF2YWlsYWJsZVBheW1l
bnROZXR3b3JrcygpIC0+IChWZWN0b3I8U3RyaW5nPiBhdmFpbGFibGVQYXltZW50TmV0d29ya3Mp
IExlZ2FjeVN5bmMKKyAgICBDYW5NYWtlUGF5bWVudHMoKSAtPiAoYm9vbCByZXN1bHQpIExlZ2Fj
eVN5bmMKKyAgICBDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcgbWVyY2hhbnRJ
ZGVudGlmaWVyLCBTdHJpbmcgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKQorICAgIE9w
ZW5QYXltZW50U2V0dXAoU3RyaW5nIG1lcmNoYW50SWRlbnRpZmllciwgU3RyaW5nIGRvbWFpbk5h
bWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKworICAgIFNob3dQYXltZW50VUkoU3RyaW5nIG9yaWdp
bmF0aW5nVVJMU3RyaW5nLCBWZWN0b3I8U3RyaW5nPiBsaW5rSWNvblVSTFN0cmluZ3MsIFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0IHBheW1lbnRSZXF1ZXN0KSAtPiAoYm9v
bCByZXN1bHQpIExlZ2FjeVN5bmMKKyAgICBDb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihXZWJD
b3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCisgICAg
Q29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiB1cGRhdGUpCisgICAgQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IHVw
ZGF0ZSkKKyAgICBDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiB1cGRhdGUpCisgICAgQ29tcGxldGVQYXltZW50
U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiByZXN1bHQpCisgICAgQWJvcnRQYXltZW50U2Vzc2lvbigpCisgICAgQ2FuY2VsUGF5bWVudFNl
c3Npb24oKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaCBiL1NvdXJjZS9XZWJL
aXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZDcwN2NlYmZhMjE3NDhmNjU0MjkyMzQ3NDRlOTE0NGJjZWVlMDI3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvUGFzc0tpdFNQSS5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFVSTDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7Citj
bGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk7
CisKK1JldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5bWVudFJlcXVlc3QoY29uc3Qg
VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVSTD4mIGxpbmtJY29u
VVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKKyAg
ICAKK30KKworQGludGVyZmFjZSBXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVn
YXRlIDogTlNPYmplY3QgPFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUs
CisgICAgUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJQcml2YXRlRGVsZWdhdGU+IHsK
K0BwYWNrYWdlCisgICAgV2ViS2l0OjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkqIF9w
YXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX3Bh
eW1lbnRTdW1tYXJ5SXRlbXM7CisgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9zaGlwcGluZ01ldGhv
ZHM7CisKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5bWVudE1lcmNoYW50U2Vzc2lvbiAqLCBOU0Vy
cm9yICopPiBfc2Vzc2lvbkJsb2NrOworCisgICAgQk9PTCBfZGlkUmVhY2hGaW5hbFN0YXRlOwor
I2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgIEJsb2NrUHRyPHZvaWQoUEtQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdCAqKT4gX3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbjsKKyAgICBCbG9j
a1B0cjx2b2lkKFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICopPiBfZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZENvbXBsZXRpb247CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRS
ZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKik+IF9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENv
bXBsZXRpb247CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250
YWN0VXBkYXRlICopPiBfZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0Q29tcGxldGlvbjsKKyNlbHNl
CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKT4gX3BheW1l
bnRBdXRob3JpemVkQ29tcGxldGlvbjsKKyAgICBCbG9ja1B0cjx2b2lkKE5TQXJyYXkgKik+IF9k
aWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbjsKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5
bWVudEF1dGhvcml6YXRpb25TdGF0dXMsIE5TQXJyYXkgKik+IF9kaWRTZWxlY3RTaGlwcGluZ01l
dGhvZENvbXBsZXRpb247CisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzLCBOU0FycmF5ICosIE5TQXJyYXkgKik+IF9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RD
b21wbGV0aW9uOworI2VuZGlmCit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBheW1lbnRD
b29yZGluYXRvclByb3h5OihXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSYp
d2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk7CisKKy0gKHZvaWQpaW52YWxpZGF0ZTsKKworQGVu
ZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1l
bnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNhZDFiZDdiMjA5MmE1MjExZWRhNzE2NWM2ZjQ0ODViZmZmZDAxNzgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eUNvY29hLm1tCkBAIC0wLDAgKzEsNjk4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5Q29jb2EuaCIKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5oIgorI2lt
cG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVVJMLmg+CisjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+
CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisKKyNp
ZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSAxMDEzMDApCitTT0ZUX0xJTktfRlJBTUVXT1JLKENvbnRhY3RzKQorU09G
VF9MSU5LX0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdHJlZXRLZXksIE5TU3Ry
aW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdWJM
b2NhbGl0eUtleSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENO
UG9zdGFsQWRkcmVzc0NpdHlLZXksIE5TU3RyaW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKENv
bnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdWJBZG1pbmlzdHJhdGl2ZUFyZWFLZXksIE5TU3RyaW5n
ICopOworU09GVF9MSU5LX0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NTdGF0ZUtl
eSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRk
cmVzc1Bvc3RhbENvZGVLZXksIE5TU3RyaW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKENvbnRh
Y3RzLCBDTlBvc3RhbEFkZHJlc3NDb3VudHJ5S2V5LCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19D
T05TVEFOVChDb250YWN0cywgQ05Qb3N0YWxBZGRyZXNzSVNPQ291bnRyeUNvZGVLZXksIE5TU3Ry
aW5nICopOworU09GVF9MSU5LX0NPTlNUQU5UKFBBTDo6UGFzc0tpdCwgUEtQYXltZW50RXJyb3JE
b21haW4sIE5TU3RyaW5nICopOworI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBXS1BheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFBheW1lbnRDb29yZGluYXRvclByb3h5OihXZWJLaXQ6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JQcm94eSYpd2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkKK3sKKyAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBfcGF5bWVudFBy
b2Vzc0Nvb3JkaW5hdG9yUHJveHkgPSAmd2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk7CisKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClpbnZhbGlkYXRlCit7CisgICAgX3BheW1lbnRQ
cm9lc3NDb29yZGluYXRvclByb3h5ID0gbnVsbHB0cjsKKyAgICBpZiAoX3BheW1lbnRBdXRob3Jp
emVkQ29tcGxldGlvbikgeworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgICAgICBfcGF5bWVu
dEF1dGhvcml6ZWRDb21wbGV0aW9uKGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0SW5zdGFuY2UoKSBpbml0V2l0aFN0YXR1czpQS1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzRmFpbHVyZSBlcnJvcnM6QFsgXV0pLmdldCgpKTsKKyNlbHNlCisgICAgICAgIF9w
YXltZW50QXV0aG9yaXplZENvbXBsZXRpb24oUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0Zh
aWx1cmUpOworI2VuZGlmCisgICAgICAgIF9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24gPSBu
dWxscHRyOworICAgIH0KK30KKworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciB3aWxsRmlu
aXNoV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKK30KKworLSAodm9pZClwYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICop
Y29udHJvbGxlciBkaWRSZXF1ZXN0TWVyY2hhbnRTZXNzaW9uOih2b2lkKF4pKFBLUGF5bWVudE1l
cmNoYW50U2Vzc2lvbiAqLCBOU0Vycm9yICopKXNlc3Npb25CbG9jaworeworICAgIEFTU0VSVCgh
X3Nlc3Npb25CbG9jayk7CisgICAgX3Nlc3Npb25CbG9jayA9IHNlc3Npb25CbG9jazsKKworICAg
IFtQQUw6OmdldFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlckNsYXNzKCkgcGF5
bWVudFNlcnZpY2VzTWVyY2hhbnRVUkw6XihOU1VSTCAqbWVyY2hhbnRVUkwsIE5TRXJyb3IgKmVy
cm9yKSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIExPR19FUlJPUigiUEtDYW5N
YWtlUGF5bWVudHNXaXRoTWVyY2hhbnRJZGVudGlmaWVyQW5kRG9tYWluIGVycm9yICVAIiwgZXJy
b3IpOworCisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IF57CisgICAgICAgICAgICBBU1NFUlQoX3Nlc3Npb25CbG9jayk7CisKKyAgICAgICAgICAgIGlm
ICghX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5KSB7CisgICAgICAgICAgICAgICAgX3Nl
c3Npb25CbG9jayhudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94
eS0+dmFsaWRhdGVNZXJjaGFudChtZXJjaGFudFVSTCk7CisgICAgICAgIH0pOworICAgIH1dOwor
fQorCitzdGF0aWMgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBw
aW5nTWV0aG9kIHRvU2hpcHBpbmdNZXRob2QoUEtTaGlwcGluZ01ldGhvZCAqc2hpcHBpbmdNZXRo
b2QpCit7CisgICAgQVNTRVJUKHNoaXBwaW5nTWV0aG9kKTsKKworICAgIFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCByZXN1bHQ7CisgICAgcmVz
dWx0LmxhYmVsID0gc2hpcHBpbmdNZXRob2QubGFiZWw7CisgICAgcmVzdWx0LmRldGFpbCA9IHNo
aXBwaW5nTWV0aG9kLmRldGFpbDsKKyAgICByZXN1bHQuYW1vdW50ID0gc2hpcHBpbmdNZXRob2Qu
YW1vdW50LnN0cmluZ1ZhbHVlOworICAgIHJlc3VsdC5pZGVudGlmaWVyID0gc2hpcHBpbmdNZXRo
b2QuaWRlbnRpZmllcjsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMzAwKSB8fCBQTEFU
Rk9STShJT1NfRkFNSUxZKQorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
cjooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEF1dGhv
cml6ZVBheW1lbnQ6KFBLUGF5bWVudCAqKXBheW1lbnQgaGFuZGxlcjoodm9pZCAoXikoUEtQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdCAqcmVzdWx0KSljb21wbGV0aW9uCit7CisjaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8
IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsK
KyAgICAgICAgY29tcGxldGlvbihhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdEluc3RhbmNlKCkgaW5pdFdpdGhTdGF0dXM6UEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1c0ZhaWx1cmUgZXJyb3JzOkBbIF1dKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBBU1NFUlQoIV9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24pOworICAgIF9w
YXltZW50QXV0aG9yaXplZENvbXBsZXRpb24gPSBjb21wbGV0aW9uOworCisgICAgX3BheW1lbnRQ
cm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRBdXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBheW1l
bnQocGF5bWVudCkpOworI2VuZGlmCit9CisKKy0gKHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25D
b250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIg
ZGlkU2VsZWN0UGF5bWVudE1ldGhvZDooUEtQYXltZW50TWV0aG9kICopcGF5bWVudE1ldGhvZCBo
YW5kbGVyOih2b2lkICheKShQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZSAqdXBk
YXRlKSljb21wbGV0aW9uCit7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5
bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgY29tcGxldGlvbihhZG9wdE5T
KFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGVJbnN0YW5jZSgp
IGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpAWyBdXSkuZ2V0KCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgQVNTRVJUKCFfZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBsZXRp
b24pOworICAgIF9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRpb247
CisgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RQYXltZW50TWV0
aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZCkpOworI2VuZGlmCit9CisK
Ky0gKHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3Jp
emF0aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Q6KFBL
U2hpcHBpbmdNZXRob2QgKilzaGlwcGluZ01ldGhvZCBoYW5kbGVyOih2b2lkICheKShQS1BheW1l
bnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKnVwZGF0ZSkpY29tcGxldGlvbiB7CisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEz
MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJv
eHkpIHsKKyAgICAgICAgY29tcGxldGlvbihhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVx
dWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5
SXRlbXM6QFsgXV0pLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VS
VCghX2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbik7CisgICAgX2RpZFNlbGVjdFNo
aXBwaW5nTWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3BheW1lbnRQcm9lc3ND
b29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZCh0b1NoaXBwaW5nTWV0aG9k
KHNoaXBwaW5nTWV0aG9kKSk7CisjZW5kaWYKK30KKworLSAodm9pZClwYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29udHJv
bGxlciBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6KFBLQ29udGFjdCAqKWNvbnRhY3QgaGFuZGxl
cjoodm9pZCAoXikoUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZSAqdXBkYXRl
KSljb21wbGV0aW9uCit7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgaWYgKCFfcGF5bWVu
dFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgY29tcGxldGlvbihhZG9wdE5TKFtQ
QUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUluc3RhbmNlKCkg
aW5pdFdpdGhFcnJvcnM6QFsgXSBwYXltZW50U3VtbWFyeUl0ZW1zOkBbIF0gc2hpcHBpbmdNZXRo
b2RzOkBbIF1dKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQo
IV9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uKTsKKyAgICBfZGlkU2VsZWN0U2hp
cHBpbmdDb250YWN0Q29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3BheW1lbnRQcm9lc3ND
b29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVu
dENvbnRhY3QoY29udGFjdCkpOworI2VuZGlmCit9CisKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMCkgfHwgKFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwg
MTEwMDAwKQorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjooUEtQYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEF1dGhvcml6ZVBheW1l
bnQ6KFBLUGF5bWVudCAqKXBheW1lbnQgY29tcGxldGlvbjoodm9pZCAoXikoUEtQYXltZW50QXV0
aG9yaXphdGlvblN0YXR1cykpY29tcGxldGlvbgoreworICAgIGlmICghX3BheW1lbnRQcm9lc3ND
b29yZGluYXRvclByb3h5KSB7CisgICAgICAgIGNvbXBsZXRpb24oUEtQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1c0ZhaWx1cmUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJU
KCFfcGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uKTsKKyAgICBfcGF5bWVudEF1dGhvcml6ZWRD
b21wbGV0aW9uID0gY29tcGxldGlvbjsKKworICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQ
cm94eS0+ZGlkQXV0aG9yaXplUGF5bWVudChXZWJDb3JlOjpQYXltZW50KHBheW1lbnQpKTsKK30K
KworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZDoo
UEtTaGlwcGluZ01ldGhvZCAqKXNoaXBwaW5nTWV0aG9kIGNvbXBsZXRpb246KHZvaWQgKF4pKFBL
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMgc3RhdHVzLCBOU0FycmF5PFBLUGF5bWVudFN1bW1h
cnlJdGVtICo+ICpzdW1tYXJ5SXRlbXMpKWNvbXBsZXRpb24KK3sKKyAgICBpZiAoIV9wYXltZW50
UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKFBLUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlLCBAWyBdKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEFTU0VSVCghX2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbik7CisgICAg
X2RpZFNlbGVjdFNoaXBwaW5nTWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3Bh
eW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZCh0b1No
aXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKSk7Cit9CisKKy0gKHZvaWQpcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAqKWNv
bnRyb2xsZXIgZGlkU2VsZWN0UGF5bWVudE1ldGhvZDooUEtQYXltZW50TWV0aG9kICopcGF5bWVu
dE1ldGhvZCBjb21wbGV0aW9uOih2b2lkICheKShOU0FycmF5PFBLUGF5bWVudFN1bW1hcnlJdGVt
ICo+ICpzdW1tYXJ5SXRlbXMpKWNvbXBsZXRpb24KK3sKKyAgICBpZiAoIV9wYXltZW50UHJvZXNz
Q29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKEBbIF0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKCFfZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBs
ZXRpb24pOworICAgIF9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlvbiA9IGNvbXBsZXRp
b247CisKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFBheW1l
bnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kKSk7Cit9CisKKy0g
KHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOihQS1BheW1lbnRBdXRob3JpemF0
aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0OihQS0Nv
bnRhY3QgKiljb250YWN0IGNvbXBsZXRpb246KHZvaWQgKF4pKFBLUGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXMgc3RhdHVzLCBOU0FycmF5PFBLU2hpcHBpbmdNZXRob2QgKj4gKnNoaXBwaW5nTWV0
aG9kcywgTlNBcnJheTxQS1BheW1lbnRTdW1tYXJ5SXRlbSAqPiAqc3VtbWFyeUl0ZW1zKSljb21w
bGV0aW9uCit7CisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAg
ICAgICAgY29tcGxldGlvbihQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZSwgQFsg
XSwgQFsgXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIV9kaWRTZWxl
Y3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uKTsKKyAgICBfZGlkU2VsZWN0U2hpcHBpbmdDb250
YWN0Q29tcGxldGlvbiA9IGNvbXBsZXRpb247CisgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRv
clByb3h5LT5kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVudENvbnRhY3Qo
Y29udGFjdCkpOworfQorCisjZW5kaWYKKworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXJEaWRGaW5pc2g6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29u
dHJvbGxlcgoreworICAgIGlmICghX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5KQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIV9kaWRSZWFjaEZpbmFsU3RhdGUpCisgICAgICAgIF9w
YXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eS0+ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsK
KworICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eS0+aGlkZVBheW1lbnRVSSgpOwor
fQorCitAZW5kCisKKy8vIEZJWE1FOiBPbmNlIHJkYXI6Ly9wcm9ibGVtLzI0NDIwMDI0IGhhcyBi
ZWVuIGZpeGVkLCBpbXBvcnQgUEtQYXltZW50UmVxdWVzdF9Qcml2YXRlLmggaW5zdGVhZC4KK0Bp
bnRlcmZhY2UgUEtQYXltZW50UmVxdWVzdCAoKQorQHByb3BlcnR5IChub25hdG9taWMsIHJldGFp
bikgTlNVUkwgKm9yaWdpbmF0aW5nVVJMOworQGVuZAorCitAaW50ZXJmYWNlIFBLUGF5bWVudFJl
cXVlc3QgKCkKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIGl0J3MgaW4gYW4gU0RLLgorQHBy
b3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNBcnJheSAqdGh1bWJuYWlsVVJMczsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TVVJMICp0aHVtYm5haWxVUkw7CisKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgZXhwZWN0c01lcmNoYW50U2Vzc2lvbjsKK0BlbmQK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5OjpwbGF0Zm9ybUNhbk1ha2VQYXltZW50cygpCit7CisgICAgcmV0dXJuIFtQQUw6OmdldFBL
UGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlckNsYXNzKCkgY2FuTWFrZVBheW1lbnRz
XTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ2Fu
TWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgIFBLQ2Fu
TWFrZVBheW1lbnRzV2l0aE1lcmNoYW50SWRlbnRpZmllckRvbWFpbkFuZFNvdXJjZUFwcGxpY2F0
aW9uKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgQCIiLCBCbG9ja1B0cjx2b2lkKEJP
T0wsIE5TRXJyb3IgKik+Ojpmcm9tQ2FsbGFibGUoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgY2FuTWFrZVBheW1lbnRzLCBOU0Vycm9yICplcnJv
cikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIExPR19FUlJPUigi
UEtDYW5NYWtlUGF5bWVudHNXaXRoTWVyY2hhbnRJZGVudGlmaWVyQW5kRG9tYWluIGVycm9yICVA
IiwgZXJyb3IpOworCisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2FuTWFrZVBheW1lbnRzXSB7
CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjYW5NYWtlUGF5bWVudHMpOworICAgICAg
ICB9KTsKKyAgICB9KS5nZXQoKSk7CisjZWxzZQorICAgIFBLQ2FuTWFrZVBheW1lbnRzV2l0aE1l
cmNoYW50SWRlbnRpZmllckFuZERvbWFpbihtZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUs
IEJsb2NrUHRyPHZvaWQoQk9PTCwgTlNFcnJvciAqKT46OmZyb21DYWxsYWJsZShbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQk9PTCBjYW5NYWtlUGF5bWVu
dHMsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAg
ICAgICAgTE9HX0VSUk9SKCJQS0Nhbk1ha2VQYXltZW50c1dpdGhNZXJjaGFudElkZW50aWZpZXJB
bmREb21haW4gZXJyb3IgJUAiLCBlcnJvcik7CisKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBj
YW5NYWtlUGF5bWVudHNdIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNhbk1ha2VQ
YXltZW50cyk7CisgICAgICAgIH0pOworICAgIH0pLmdldCgpKTsKKyNlbmRpZgorfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1PcGVuUGF5bWVudFNldHVw
KGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5h
bWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBhdXRvIHBhc3NMaWJyYXJ5ID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGFzc0xpYnJhcnlJbnN0
YW5jZSgpIGluaXRdKTsKKyAgICBbcGFzc0xpYnJhcnkgb3BlblBheW1lbnRTZXR1cEZvck1lcmNo
YW50SWRlbnRpZmllcjptZXJjaGFudElkZW50aWZpZXIgZG9tYWluOmRvbWFpbk5hbWUgY29tcGxl
dGlvbjpCbG9ja1B0cjx2b2lkKEJPT0wpPjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShCT09MIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcmVzdWx0XSB7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihyZXN1bHQpOworICAgICAgICB9KTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3N0YXRp
YyBQS1BheW1lbnRTdW1tYXJ5SXRlbVR5cGUgdG9QS1BheW1lbnRTdW1tYXJ5SXRlbVR5cGUoV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkxpbmVJdGVtOjpUeXBlIHR5cGUp
Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6TGluZUl0ZW06OlR5cGU6OkZpbmFsOgorICAgICAgICByZXR1cm4g
UEtQYXltZW50U3VtbWFyeUl0ZW1UeXBlRmluYWw7CisKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbTo6VHlwZTo6UGVuZGluZzoKKyAgICAg
ICAgcmV0dXJuIFBLUGF5bWVudFN1bW1hcnlJdGVtVHlwZVBlbmRpbmc7CisgICAgfQorfQorCitz
dGF0aWMgTlNEZWNpbWFsTnVtYmVyICp0b0RlY2ltYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBhbW91
bnQpCit7CisgICAgaWYgKCFhbW91bnQpCisgICAgICAgIHJldHVybiBbTlNEZWNpbWFsTnVtYmVy
IHplcm9dOworICAgIHJldHVybiBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRoU3Ry
aW5nOmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2VwYXJhdG9yIDogQCIuIiB9XTsK
K30KKworc3RhdGljIFJldGFpblB0cjxQS1BheW1lbnRTdW1tYXJ5SXRlbT4gdG9QS1BheW1lbnRT
dW1tYXJ5SXRlbShjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
TGluZUl0ZW0mIGxpbmVJdGVtKQoreworICAgIHJldHVybiBbUEFMOjpnZXRQS1BheW1lbnRTdW1t
YXJ5SXRlbUNsYXNzKCkgc3VtbWFyeUl0ZW1XaXRoTGFiZWw6bGluZUl0ZW0ubGFiZWwgYW1vdW50
OnRvRGVjaW1hbE51bWJlcihsaW5lSXRlbS5hbW91bnQpIHR5cGU6dG9QS1BheW1lbnRTdW1tYXJ5
SXRlbVR5cGUobGluZUl0ZW0udHlwZSldOworfQorCitzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+
IHRvUEtQYXltZW50U3VtbWFyeUl0ZW1zKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYgdG90YWxBbmRMaW5lSXRlbXMpCit7Cisg
ICAgYXV0byBwYXltZW50U3VtbWFyeUl0ZW1zID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CisgICAgZm9yIChhdXRvJiBsaW5lSXRlbSA6IHRvdGFsQW5kTGluZUl0ZW1z
LmxpbmVJdGVtcykgeworICAgICAgICBpZiAoYXV0byBzdW1tYXJ5SXRlbSA9IHRvUEtQYXltZW50
U3VtbWFyeUl0ZW0obGluZUl0ZW0pKQorICAgICAgICAgICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMg
YWRkT2JqZWN0OnN1bW1hcnlJdGVtLmdldCgpXTsKKyAgICB9CisKKyAgICBpZiAoYXV0byB0b3Rh
bEl0ZW0gPSB0b1BLUGF5bWVudFN1bW1hcnlJdGVtKHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsKSkK
KyAgICAgICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMgYWRkT2JqZWN0OnRvdGFsSXRlbS5nZXQoKV07
CisKKyAgICByZXR1cm4gcGF5bWVudFN1bW1hcnlJdGVtczsKK30KKworc3RhdGljIFJldGFpblB0
cjxQS1NoaXBwaW5nTWV0aG9kPiB0b1BLU2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhv
ZCkKK3sKKyAgICBSZXRhaW5QdHI8UEtTaGlwcGluZ01ldGhvZD4gcmVzdWx0ID0gW1BBTDo6Z2V0
UEtTaGlwcGluZ01ldGhvZENsYXNzKCkgc3VtbWFyeUl0ZW1XaXRoTGFiZWw6c2hpcHBpbmdNZXRo
b2QubGFiZWwgYW1vdW50OnRvRGVjaW1hbE51bWJlcihzaGlwcGluZ01ldGhvZC5hbW91bnQpXTsK
KyAgICBbcmVzdWx0IHNldElkZW50aWZpZXI6c2hpcHBpbmdNZXRob2QuaWRlbnRpZmllcl07Cisg
ICAgW3Jlc3VsdCBzZXREZXRhaWw6c2hpcHBpbmdNZXRob2QuZGV0YWlsXTsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK1JldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5bWVudFJl
cXVlc3QoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRv
cHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAK
KyAgICBbcmVzdWx0IHNldE9yaWdpbmF0aW5nVVJMOm9yaWdpbmF0aW5nVVJMXTsKKyAgICAKKyAg
ICBpZiAoW3Jlc3VsdCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFRodW1ibmFpbFVS
THM6KV0pIHsKKyAgICAgICAgYXV0byB0aHVtYm5haWxVUkxzID0gYWRvcHROUyhbW05TTXV0YWJs
ZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byYgbGlua0ljb25VUkwgOiBs
aW5rSWNvblVSTHMpCisgICAgICAgICAgICBbdGh1bWJuYWlsVVJMcyBhZGRPYmplY3Q6c3RhdGlj
X2Nhc3Q8TlNVUkwgKj4obGlua0ljb25VUkwpXTsKKyAgICAgICAgCisgICAgICAgIFtyZXN1bHQg
c2V0VGh1bWJuYWlsVVJMczp0aHVtYm5haWxVUkxzLmdldCgpXTsKKyAgICB9IGVsc2UgaWYgKCFs
aW5rSWNvblVSTHMuaXNFbXB0eSgpKQorICAgICAgICBbcmVzdWx0IHNldFRodW1ibmFpbFVSTDps
aW5rSWNvblVSTHNbMF1dOworICAgIAorI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA+PSAxMDEzMDQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgW3Jlc3VsdCBz
ZXRBUElUeXBlOnRvQVBJVHlwZShwYXltZW50UmVxdWVzdC5yZXF1ZXN0ZXIoKSldOworI2VuZGlm
CisgICAgCisgICAgW3Jlc3VsdCBzZXRDb3VudHJ5Q29kZTpwYXltZW50UmVxdWVzdC5jb3VudHJ5
Q29kZSgpXTsKKyAgICBbcmVzdWx0IHNldEN1cnJlbmN5Q29kZTpwYXltZW50UmVxdWVzdC5jdXJy
ZW5jeUNvZGUoKV07CisgICAgW3Jlc3VsdCBzZXRCaWxsaW5nQ29udGFjdDpwYXltZW50UmVxdWVz
dC5iaWxsaW5nQ29udGFjdCgpLnBrQ29udGFjdCgpXTsKKyAgICBbcmVzdWx0IHNldFNoaXBwaW5n
Q29udGFjdDpwYXltZW50UmVxdWVzdC5zaGlwcGluZ0NvbnRhY3QoKS5wa0NvbnRhY3QoKV07Cisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgW3Jlc3VsdCBzZXRSZXF1aXJlZEJpbGxpbmdDb250
YWN0RmllbGRzOnRvUEtDb250YWN0RmllbGRzKHBheW1lbnRSZXF1ZXN0LnJlcXVpcmVkQmlsbGlu
Z0NvbnRhY3RGaWVsZHMoKSkuZ2V0KCldOworICAgIFtyZXN1bHQgc2V0UmVxdWlyZWRTaGlwcGlu
Z0NvbnRhY3RGaWVsZHM6dG9QS0NvbnRhY3RGaWVsZHMocGF5bWVudFJlcXVlc3QucmVxdWlyZWRT
aGlwcGluZ0NvbnRhY3RGaWVsZHMoKSkuZ2V0KCldOworI2Vsc2UKKyAgICBbcmVzdWx0IHNldFJl
cXVpcmVkQmlsbGluZ0FkZHJlc3NGaWVsZHM6dG9QS0FkZHJlc3NGaWVsZChwYXltZW50UmVxdWVz
dC5yZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzKCkpXTsKKyAgICBbcmVzdWx0IHNldFJlcXVp
cmVkU2hpcHBpbmdBZGRyZXNzRmllbGRzOnRvUEtBZGRyZXNzRmllbGQocGF5bWVudFJlcXVlc3Qu
cmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHMoKSldOworI2VuZGlmCisgICAgCisgICAgW3Jl
c3VsdCBzZXRTdXBwb3J0ZWROZXR3b3Jrczp0b1N1cHBvcnRlZE5ldHdvcmtzKHBheW1lbnRSZXF1
ZXN0LnN1cHBvcnRlZE5ldHdvcmtzKCkpLmdldCgpXTsKKyAgICBbcmVzdWx0IHNldE1lcmNoYW50
Q2FwYWJpbGl0aWVzOnRvUEtNZXJjaGFudENhcGFiaWxpdGllcyhwYXltZW50UmVxdWVzdC5tZXJj
aGFudENhcGFiaWxpdGllcygpKV07CisgICAgCisgICAgW3Jlc3VsdCBzZXRTaGlwcGluZ1R5cGU6
dG9QS1NoaXBwaW5nVHlwZShwYXltZW50UmVxdWVzdC5zaGlwcGluZ1R5cGUoKSldOworICAgIAor
ICAgIGF1dG8gc2hpcHBpbmdNZXRob2RzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0XSk7CisgICAgZm9yIChhdXRvJiBzaGlwcGluZ01ldGhvZCA6IHBheW1lbnRSZXF1ZXN0
LnNoaXBwaW5nTWV0aG9kcygpKQorICAgICAgICBbc2hpcHBpbmdNZXRob2RzIGFkZE9iamVjdDp0
b1BLU2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpLmdldCgpXTsKKyAgICBbcmVzdWx0IHNl
dFNoaXBwaW5nTWV0aG9kczpzaGlwcGluZ01ldGhvZHMuZ2V0KCldOworICAgIAorICAgIGF1dG8g
cGF5bWVudFN1bW1hcnlJdGVtcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dF0pOworICAgIGZvciAoYXV0byYgbGluZUl0ZW0gOiBwYXltZW50UmVxdWVzdC5saW5lSXRlbXMo
KSkgeworICAgICAgICBpZiAoYXV0byBzdW1tYXJ5SXRlbSA9IHRvUEtQYXltZW50U3VtbWFyeUl0
ZW0obGluZUl0ZW0pKQorICAgICAgICAgICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMgYWRkT2JqZWN0
OnN1bW1hcnlJdGVtLmdldCgpXTsKKyAgICB9CisgICAgCisgICAgaWYgKGF1dG8gdG90YWxJdGVt
ID0gdG9QS1BheW1lbnRTdW1tYXJ5SXRlbShwYXltZW50UmVxdWVzdC50b3RhbCgpKSkKKyAgICAg
ICAgW3BheW1lbnRTdW1tYXJ5SXRlbXMgYWRkT2JqZWN0OnRvdGFsSXRlbS5nZXQoKV07CisgICAg
CisgICAgW3Jlc3VsdCBzZXRQYXltZW50U3VtbWFyeUl0ZW1zOnBheW1lbnRTdW1tYXJ5SXRlbXMu
Z2V0KCldOworICAgIAorICAgIFtyZXN1bHQgc2V0RXhwZWN0c01lcmNoYW50U2Vzc2lvbjpZRVNd
OworICAgIAorICAgIGlmICghcGF5bWVudFJlcXVlc3QuYXBwbGljYXRpb25EYXRhKCkuaXNOdWxs
KCkpIHsKKyAgICAgICAgYXV0byBhcHBsaWNhdGlvbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6cGF5bWVudFJlcXVlc3QuYXBwbGljYXRp
b25EYXRhKCkgb3B0aW9uczowXSk7CisgICAgICAgIFtyZXN1bHQgc2V0QXBwbGljYXRpb25EYXRh
OmFwcGxpY2F0aW9uRGF0YS5nZXQoKV07CisgICAgfQorICAgIAorI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEw
MDAwKQorICAgIFtyZXN1bHQgc2V0U3VwcG9ydGVkQ291bnRyaWVzOnRvTlNTZXQocGF5bWVudFJl
cXVlc3Quc3VwcG9ydGVkQ291bnRyaWVzKCkpLmdldCgpXTsKKyNlbmRpZgorICAgIAorICAgIC8v
IFRPRE86IHNldCBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgYXBwbGljYXRpb24gYnVuZGxlIGlkZW50
aWZpZXIgaGVyZQorICAgIC8vIGxpa2UgYW5hbG9nb3VzIGZ1bmN0aW9uIGluIFdlYlBheW1lbnRD
b29yZGluYXRvclByb3h5Q29jb2EubW0KKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMTAwMDApCitzdGF0aWMgUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1
cyB0b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMoV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMgc3RhdHVzKQoreworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6U3VjY2VzczoKKyAgICAgICAgcmV0
dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNTdWNjZXNzOworICAgIGNhc2UgV2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU6CisgICAgICAgIHJldHVybiBQ
S1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZTsKKyAgICBjYXNlIFdlYkNvcmU6OlBh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5SZXF1aXJlZDoKKyAgICAgICAgcmV0dXJuIFBL
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5SZXF1aXJlZDsKKyAgICBjYXNlIFdlYkNvcmU6
OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5JbmNvcnJlY3Q6CisgICAgICAgIHJldHVy
biBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzUElOSW5jb3JyZWN0OworICAgIGNhc2UgV2Vi
Q29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTkxvY2tvdXQ6CisgICAgICAgIHJl
dHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzUElOTG9ja291dDsKKyAgICB9Cit9CisK
K3N0YXRpYyBQS1BheW1lbnRFcnJvckNvZGUgdG9QS1BheW1lbnRFcnJvckNvZGUoV2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb2RlIGNvZGUpCit7CisgICAgc3dpdGNoIChjb2RlKSB7CisgICAgY2Fz
ZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlVua25vd246CisgICAgICAgIHJldHVybiBQ
S1BheW1lbnRVbmtub3duRXJyb3I7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNv
ZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRTaGlw
cGluZ0NvbnRhY3RJbnZhbGlkRXJyb3I7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZDoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJp
bGxpbmdDb250YWN0SW52YWxpZEVycm9yOworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJsZToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNo
aXBwaW5nQWRkcmVzc1Vuc2VydmljZWFibGVFcnJvcjsKKyAgICB9Cit9CisKK3N0YXRpYyBSZXRh
aW5QdHI8TlNFcnJvcj4gdG9OU0Vycm9yKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRFcnJvciYgZXJy
b3IpCit7CisgICAgYXV0byB1c2VySW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0XSk7CisgICAgW3VzZXJJbmZvIHNldE9iamVjdDplcnJvci5tZXNzYWdlIGZv
cktleTpOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5XTsKKworICAgIGlmIChlcnJvci5jb250YWN0
RmllbGQpIHsKKyAgICAgICAgTlNTdHJpbmcgKnBrQ29udGFjdEZpZWxkID0gbmlsOworICAgICAg
ICBOU1N0cmluZyAqcG9zdGFsQWRkcmVzc0tleSA9IG5pbDsKKworICAgICAgICBzd2l0Y2ggKCpl
cnJvci5jb250YWN0RmllbGQpIHsKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXI6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9
IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQaG9uZU51bWJlcigpOworICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RG
aWVsZDo6RW1haWxBZGRyZXNzOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6Omdl
dF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkRW1haWxBZGRyZXNzKCk7CisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpO
YW1lOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29u
dGFjdEZpZWxkTmFtZSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lOgorICAgICAgICAg
ICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUGhvbmV0
aWNOYW1lKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzOgorICAgICAgICAgICAgcGtD
b250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVz
cygpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzOgorICAgICAgICAgICAgcGtDb250YWN0
RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwor
ICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1N0cmVldEtl
eSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3ViTG9jYWxpdHk6CisgICAgICAgICAgICBwa0NvbnRhY3RG
aWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7Cisg
ICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViTG9jYWxp
dHlLZXkoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkxvY2FsaXR5OgorICAgICAgICAgICAgcGtDb250YWN0
RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwor
ICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc0NpdHlLZXko
KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbENvZGU6CisgICAgICAgICAgICBwa0NvbnRhY3RGaWVs
ZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CisgICAg
ICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzUG9zdGFsQ29kZUtl
eSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3ViQWRtaW5pc3RyYXRpdmVBcmVhOgorICAgICAgICAgICAg
cGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRk
cmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVz
c1N1YkFkbWluaXN0cmF0aXZlQXJlYUtleSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRp
dmVBcmVhOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BL
Q29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tl
eSA9IGdldENOUG9zdGFsQWRkcmVzc1N0YXRlS2V5KCk7CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpDb3VudHJ5
OgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFj
dEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdl
dENOUG9zdGFsQWRkcmVzc0NvdW50cnlLZXkoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkNvdW50cnlDb2Rl
OgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFj
dEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdl
dENOUG9zdGFsQWRkcmVzc0lTT0NvdW50cnlDb2RlS2V5KCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorCisgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6cGtDb250YWN0RmllbGQg
Zm9yS2V5OlBBTDo6Z2V0X1Bhc3NLaXRfUEtQYXltZW50RXJyb3JDb250YWN0RmllbGRVc2VySW5m
b0tleSgpXTsKKyAgICAgICAgaWYgKHBvc3RhbEFkZHJlc3NLZXkpCisgICAgICAgICAgICBbdXNl
ckluZm8gc2V0T2JqZWN0OnBvc3RhbEFkZHJlc3NLZXkgZm9yS2V5OlBBTDo6Z2V0X1Bhc3NLaXRf
UEtQYXltZW50RXJyb3JQb3N0YWxBZGRyZXNzVXNlckluZm9LZXkoKV07CisgICAgfQorCisgICAg
cmV0dXJuIGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpnZXRQS1BheW1l
bnRFcnJvckRvbWFpbigpIGNvZGU6dG9QS1BheW1lbnRFcnJvckNvZGUoZXJyb3IuY29kZSkgdXNl
ckluZm86dXNlckluZm8uZ2V0KCldKTsKK30KKworc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB0
b05TRXJyb3JzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+JiBlcnJvcnMpCit7
CisgICAgYXV0byByZXN1bHQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRd
KTsKKworICAgIGZvciAoYXV0byBlcnJvciA6IGVycm9ycykgeworICAgICAgICBpZiAoYXV0byBu
c0Vycm9yID0gdG9OU0Vycm9yKGVycm9yKSkKKyAgICAgICAgICAgIFtyZXN1bHQgYWRkT2JqZWN0
Om5zRXJyb3IuZ2V0KCldOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisjZWxzZQor
c3RhdGljIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMgdG9QS1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQ+JiByZXN1bHQpCit7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBQ
S1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzU3VjY2VzczsKKworICAgIGlmIChyZXN1bHQtPmVy
cm9ycy5zaXplKCkgPT0gMSkgeworICAgICAgICBhdXRvJiBlcnJvciA9IHJlc3VsdC0+ZXJyb3Jz
WzBdOworICAgICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHsKKyAgICAgICAgY2FzZSBXZWJDb3Jl
OjpQYXltZW50RXJyb3I6OkNvZGU6OlVua25vd246CisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJsZToKKyAgICAgICAgICAgIHJldHVy
biBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZTsKKworICAgICAgICBjYXNlIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlkOgorICAgICAg
ICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNJbnZhbGlkQmlsbGluZ1Bv
c3RhbEFkZHJlc3M7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6
OlNoaXBwaW5nQ29udGFjdEludmFsaWQ6CisgICAgICAgICAgICBpZiAoZXJyb3IuY29udGFjdEZp
ZWxkICYmIGVycm9yLmNvbnRhY3RGaWVsZCA9PSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRh
Y3RGaWVsZDo6UG9zdGFsQWRkcmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm4gUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1c0ludmFsaWRTaGlwcGluZ1Bvc3RhbEFkZHJlc3M7CisKKyAgICAg
ICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzSW52YWxpZFNoaXBwaW5n
Q29udGFjdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN3aXRjaCAocmVzdWx0LT5zdGF0dXMp
IHsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpTdWNjZXNz
OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nlc3M7Cisg
ICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZToKKyAg
ICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOworICAgIGNh
c2UgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTlJlcXVpcmVkOgorICAg
ICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1BJTlJlcXVpcmVkOworICAg
IGNhc2UgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTkluY29ycmVjdDoK
KyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5JbmNvcnJlY3Q7
CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6UElOTG9ja291
dDoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5Mb2Nrb3V0
OworICAgIH0KKworICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVy
ZTsKK30KKyNlbmRpZgorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxh
dGZvcm1Db21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiByZXN1bHQpCit7CisgICAgQVNTRVJUKG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyKTsKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9y
aXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7CisKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlckRlbGVnYXRlLT5fZGlkUmVhY2hGaW5hbFN0YXRlID0gV2ViQ29yZTo6aXNGaW5h
bFN0YXRlUmVzdWx0KHJlc3VsdCk7CisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBhdXRv
IHN0YXR1cyA9IHJlc3VsdCA/IHJlc3VsdC0+c3RhdHVzIDogV2ViQ29yZTo6UGF5bWVudEF1dGhv
cml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M7CisgICAgYXV0byBwa1BheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0ID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRJ
bnN0YW5jZSgpIGluaXRXaXRoU3RhdHVzOnRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhz
dGF0dXMpIGVycm9yczpyZXN1bHQgPyB0b05TRXJyb3JzKHJlc3VsdC0+ZXJyb3JzKS5nZXQoKSA6
IEBbIF1dKTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5f
cGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uKHBrUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQu
Z2V0KCkpOworI2Vsc2UKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVn
YXRlLT5fcGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9uKHRvUEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1cyhyZXN1bHQpKTsKKyNlbmRpZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24gPSBudWxscHRyOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0
ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9u
JiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQoreworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3Jp
emF0aW9uQ29udHJvbGxlcik7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUpOworCisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZS0+X3Nlc3Npb25CbG9jayhwYXltZW50TWVyY2hhbnRTZXNzaW9uLnBrUGF5bWVudE1l
cmNoYW50U2Vzc2lvbigpLCBudWxscHRyKTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlckRlbGVnYXRlLT5fc2Vzc2lvbkJsb2NrID0gbnVsbHB0cjsKK30KKwordm9pZCBQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhv
ZFNlbGVjdGlvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBk
YXRlPiYgdXBkYXRlKQoreworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJv
bGxlcik7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdh
dGUpOworCisgICAgaWYgKHVwZGF0ZSkKKyAgICAgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRTdW1tYXJ5SXRlbXMgPSB0b1BLUGF5bWVudFN1bW1h
cnlJdGVtcyh1cGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKTsKKworI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTEwMDAwKQorICAgIGF1dG8gcGtTaGlwcGluZ01ldGhvZFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6
YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRX
aXRoUGF5bWVudFN1bW1hcnlJdGVtczptX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRl
bGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKV0pOworICAgIG1fcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBs
ZXRpb24ocGtTaGlwcGluZ01ldGhvZFVwZGF0ZS5nZXQoKSk7CisjZWxzZQorICAgIG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZENvbXBsZXRpb24oUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nlc3MsIG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zLmdl
dCgpKTsKKyNlbmRpZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdh
dGUtPl9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBsZXRpb24gPSBudWxscHRyOworfQorCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEw
MTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIDwgMTEwMDAwKQorc3RhdGljIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMg
dG9QS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQoreworICAgIGlmICghdXBkYXRlIHx8
IHVwZGF0ZS0+ZXJyb3JzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhv
cml6YXRpb25TdGF0dXNTdWNjZXNzOworCisgICAgaWYgKHVwZGF0ZS0+ZXJyb3JzLnNpemUoKSA9
PSAxKSB7CisgICAgICAgIGF1dG8mIGVycm9yID0gdXBkYXRlLT5lcnJvcnNbMF07CisgICAgICAg
IHN3aXRjaCAoZXJyb3IuY29kZSkgeworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJv
cjo6Q29kZTo6VW5rbm93bjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNv
ZGU6OkFkZHJlc3NVbnNlcnZpY2VhYmxlOgorICAgICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb2RlOjpCaWxsaW5nQ29udGFjdEludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4g
UEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0ludmFsaWRCaWxsaW5nUG9zdGFsQWRkcmVzczsK
KworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250
YWN0SW52YWxpZDoKKyAgICAgICAgICAgIGlmIChlcnJvci5jb250YWN0RmllbGQgJiYgZXJyb3Iu
Y29udGFjdEZpZWxkID09IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0
YWxBZGRyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzSW52YWxpZFNoaXBwaW5nUG9zdGFsQWRkcmVzczsKKworICAgICAgICAgICAgcmV0dXJu
IFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNJbnZhbGlkU2hpcHBpbmdDb250YWN0OworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNG
YWlsdXJlOworfQorI2VuZGlmCisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQoreworICAgIEFT
U0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcik7CisgICAgQVNTRVJUKG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUpOworCisgICAgaWYgKHVwZGF0ZSkg
eworICAgICAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5
bWVudFN1bW1hcnlJdGVtcyA9IHRvUEtQYXltZW50U3VtbWFyeUl0ZW1zKHVwZGF0ZS0+bmV3VG90
YWxBbmRMaW5lSXRlbXMpOworCisgICAgICAgIGF1dG8gc2hpcHBpbmdNZXRob2RzID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byYgc2hp
cHBpbmdNZXRob2QgOiB1cGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9kcykKKyAgICAgICAgICAgIFtz
aGlwcGluZ01ldGhvZHMgYWRkT2JqZWN0OnRvUEtTaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhv
ZCkuZ2V0KCldOworCisgICAgICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVs
ZWdhdGUtPl9zaGlwcGluZ01ldGhvZHMgPSBXVEZNb3ZlKHNoaXBwaW5nTWV0aG9kcyk7CisgICAg
fQorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgYXV0byBwa1NoaXBwaW5nQ29udGFjdFVw
ZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0
VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczp1cGRhdGUgPyB0b05TRXJyb3JzKHVwZGF0
ZS0+ZXJyb3JzKS5nZXQoKSA6IEBbIF0gcGF5bWVudFN1bW1hcnlJdGVtczptX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKSBz
aGlwcGluZ01ldGhvZHM6bV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+
X3NoaXBwaW5nTWV0aG9kcy5nZXQoKV0pOworICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uKHBrU2hp
cHBpbmdDb250YWN0VXBkYXRlLmdldCgpKTsKKyNlbHNlCisgICAgbV9wYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRp
b24odG9QS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKHVwZGF0ZSksIG1fcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9zaGlwcGluZ01ldGhvZHMuZ2V0KCksIG1fcGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1z
LmdldCgpKTsKKyNlbmRpZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVs
ZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uID0gbnVsbHB0cjsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVQ
YXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVu
dE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXIpOworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJv
bGxlckRlbGVnYXRlKTsKKworICAgIGlmICh1cGRhdGUpCisgICAgICAgIG1fcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zID0gdG9QS1Bh
eW1lbnRTdW1tYXJ5SXRlbXModXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyk7CisKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMw
MCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkKKyAgICBhdXRvIHBrUGF5bWVudE1ldGhvZFVwZGF0ZSA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZUluc3RhbmNl
KCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOm1fcGF5bWVudEF1dGhvcml6YXRpb25Db250
cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFyeUl0ZW1zLmdldCgpXSk7CisgICAgbV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFBheW1lbnRNZXRo
b2RDb21wbGV0aW9uKHBrUGF5bWVudE1ldGhvZFVwZGF0ZS5nZXQoKSk7CisjZWxzZQorICAgIG1f
cGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RQYXltZW50
TWV0aG9kQ29tcGxldGlvbihtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRl
LT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKSk7CisjZW5kaWYKKyAgICBtX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBs
ZXRpb24gPSBudWxscHRyOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OnBsYXRmb3JtQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCkKK3sKKyAgICBO
U0FycmF5PFBLUGF5bWVudE5ldHdvcms+ICphdmFpbGFibGVOZXR3b3JrcyA9IFtQQUw6OmdldFBL
UGF5bWVudFJlcXVlc3RDbGFzcygpIGF2YWlsYWJsZU5ldHdvcmtzXTsKKyAgICBWZWN0b3I8U3Ry
aW5nPiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYXZhaWxhYmxl
TmV0d29ya3MuY291bnQpOworICAgIGZvciAoUEtQYXltZW50TmV0d29yayBuZXR3b3JrIGluIGF2
YWlsYWJsZU5ldHdvcmtzKQorICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKG5ldHdvcmsp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5SU9TLm1tIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlJT1MubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGMwODY5ZjZjYTZhZDM2OWU2YjEzYzdiZjBjMTI2Yjk1MjU4MmZlNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5SU9TLm1tCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKEFQUExFX1BBWSkgJiYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKKyNpbXBv
cnQgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLmgiCisjaW1wb3J0IDxQYXNz
S2l0L1Bhc3NLaXQuaD4KKyNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXIuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KKyNpbXBvcnQgPHBhbC9j
b2NvYS9QYXNzS2l0U29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXltZW50VUkoY29uc3Qg
V2ViQ29yZTo6VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVSTD4m
IGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3QmIHJlcXVlc3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIW1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVy
KTsKKworICAgIGF1dG8gcGF5bWVudFJlcXVlc3QgPSB0b1BLUGF5bWVudFJlcXVlc3Qob3JpZ2lu
YXRpbmdVUkwsIGxpbmtJY29uVVJMU3RyaW5ncywgcmVxdWVzdCk7CisKKyAgICBtX3BheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50UmVxdWVzdDpwYXlt
ZW50UmVxdWVzdC5nZXQoKV0pOworICAgIGlmICghbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRy
b2xsZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIGFs
bG9jXSBpbml0V2l0aFBheW1lbnRDb29yZGluYXRvclByb3h5Oip0aGlzXSk7CisgICAgbV9wYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRTdW1tYXJ5SXRlbXMg
PSBbcGF5bWVudFJlcXVlc3QgcGF5bWVudFN1bW1hcnlJdGVtc107CisgICAgbV9wYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3NoaXBwaW5nTWV0aG9kcyA9IFtwYXltZW50
UmVxdWVzdCBzaGlwcGluZ01ldGhvZHNdOworCisgICAgW21fcGF5bWVudEF1dGhvcml6YXRpb25D
b250cm9sbGVyIHNldERlbGVnYXRlOm1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVs
ZWdhdGUuZ2V0KCldOworICAgIFttX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciBzZXRQ
cml2YXRlRGVsZWdhdGU6bV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS5n
ZXQoKV07CisgICAgW21fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyIHByZXNlbnRXaXRo
Q29tcGxldGlvbjogbnVsbHB0cl07CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmhpZGVQYXltZW50VUkoKQor
eworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcik7CisgICAgQVNT
RVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUpOworCisgICAgW21f
cGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyIGRpc21pc3NXaXRoQ29tcGxldGlvbjpudWxs
cHRyXTsKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6
bmlsXTsKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgc2V0UHJpdmF0ZURl
bGVnYXRlOm5pbF07CisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgPSBudWxs
cHRyOworCisgICAgW21fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgaW52
YWxpZGF0ZV07CisgICAgbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSA9
IG51bGxwdHI7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bh
eW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmlu
ZGV4IGMzMWM0MDg4YTJkNmJjZDk0MWJjNzc3YzllYTM5NTFhOTE5OWU3OGUuLmMxNjEwYTUzNWYz
MjQ1YTU0OGFlMTRhNGJhZjM3NDQ1ZjVmZDUyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3MuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KQEAgLTQ5LDcgKzUwLDcgQEAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWQK
IHsKICAgICAvLyBOT1RFOiB3ZSBtdXN0IHNldCB0aGlzIHRvIHRydWUgYmVjYXVzZSB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIG1heSByZS1lbnRlciB3aGVuIHNlbmRpbmcKICAgICAvLyBhIHN5bmMg
SVBDIGFuZCB0aGlzIGlzIGEgaHVnZSBzb3VyY2Ugb2Ygc2VjdXJpdHkgYnVncwotICAgIG1fY29u
bmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpCisgICAgbV9jb25uZWN0aW9uLT5z
ZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblBy
b2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiB9
CiAKQEAgLTYxLDcgKzYyLDEyIEBAIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp+UGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogdm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7Ci0gICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlUGF5bWVu
dFByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBQYXltZW50UHJv
Y2Vzczo6c2luZ2xldG9uKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2luZ2xl
dG9uKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTcwLDkgKzc2LDYxIEBAIHZvaWQgUGF5bWVudFRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
CiAKIHZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgUGF5bWVudFByb2Nlc3M6OnNpbmds
ZXRvbigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOworICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1l
bnRQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICB9
CisgICAgCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQgUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OnZhbGlkYXRlTWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0
aW9uVVJMU3RyaW5nKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlZhbGlkYXRlTWVyY2hhbnQodmFsaWRhdGlvblVSTFN0
cmluZyksIDApOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRB
dXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCit7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlv
bjo6RGlkQXV0aG9yaXplUGF5bWVudChwYXltZW50KSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBp
bmdNZXRob2QpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6RGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRo
b2QpLCAwKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2Vs
ZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBzaGlwcGlu
Z0NvbnRhY3QpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6RGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KHNoaXBwaW5nQ29u
dGFjdCksIDApOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRT
ZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmIHBheW1lbnRN
ZXRob2QpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6RGlkU2VsZWN0UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kKSwg
MCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhbmNlbFBh
eW1lbnRTZXNzaW9uKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpLCAwKTsK
K30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y2FuTWFrZVBheW1lbnRz
V2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1l
bnRzKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OkNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkocmVxdWVz
dElELCBjYW5NYWtlUGF5bWVudHMpLCAwKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6b3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9v
bCByZXN1bHQpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbjo6T3BlblBheW1lbnRTZXR1cFJlcGx5KHJlcXVlc3RJRCwgcmVz
dWx0KSwgMCk7Cit9CisgICAgCiB2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJv
Y2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDg0OWE5ZWI0YTEzNzY0
NDExNmNhY2VkMDM4MzA3YWIzNDA4MWNmZmMuLjdiMzE0YTAyYTg4NjNiZDNiZGRhOTBjMWRkZmRj
NmE4YmJmMTFiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQwLDYgKzQwLDE1IEBA
IHB1YmxpYzoKICAgICB+UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAogICAgIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsg
fQorICAgIAorICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRp
b25VUkxTdHJpbmcpOworICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3Jl
OjpQYXltZW50Jik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAg
ICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29u
dGFjdCYpOworICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQ
YXltZW50TWV0aG9kJik7CisgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpOworICAg
IHZvaWQgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0
SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKTsKKyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXBSZXBs
eSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KTsKIAogcHJpdmF0ZToKICAgICBQYXlt
ZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9y
VEFQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQ
SS5oCmluZGV4IGRmMDhlYTI4YWY4ZWNiNDA2NGM5OWM3YmUzM2U3MmZkNGQ4Yjk0YzguLjFhMzJk
ZGFkN2QxZGE0OWQ1MmI1MDBkZGRkYjM5ZjY0NTYwODk5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmgKQEAgLTMwLDYgKzMw
LDcgQEAgZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAogLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBhZnRl
ciA8cmRhcjovL3Byb2JsZW0vMzA3NzIwMzM+IGlzIGZpeGVkLgordm9pZCBQYXltZW50U2Vydmlj
ZUluaXRpYWxpemVyKCk7CiB2b2lkIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXIoKTsKIHZvaWQg
UGx1Z2luU2VydmljZUluaXRpYWxpemVyKCk7CiB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlh
bGl6ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLXBheW1l
bnRzLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nl
c3MtcGF5bWVudHMtc2FuZGJveC1lbnRpdGxlbWVudHMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA0ZjI4MGZi
ODYzN2FmMTMzOTA4NThkMjQ4MGJkOTQ5ZGFjYWVhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLXBheW1lbnRzLXNhbmRib3gtZW50aXRsZW1lbnRzLnNo
CkBAIC0wLDAgKzEsMTQgQEAKKyMhL2Jpbi9zaAorc2V0IC1lCisKK1BST0NFU1NFRF9YQ0VOVF9G
SUxFPSIke1RFTVBfRklMRV9ESVJ9LyR7RlVMTF9QUk9EVUNUX05BTUV9LnhjZW50IgorCitpZiBb
WyAke1dLX1BMQVRGT1JNX05BTUV9ID09ICJtYWNvc3giIF1dOyB0aGVuCisKKyAgICBpZiBbWyAk
e1dLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UU30gPT0gIllFUyIgXV07IHRoZW4KKyAgICAg
ICAgZWNobyAiUHJvY2Vzc2luZyByZXN0cmljdGVkIGVudGl0bGVtZW50cyBmb3IgSW50ZXJuYWwg
U0RLIjsKKworICAgICAgICBlY2hvICJBZGRpbmcgc2FuZGJveCBlbnRpdGxlbWVudHMgZm9yIFBh
eW1lbnRzIHByb2Nlc3MuIjsKKyAgICAgICAgL3Vzci9saWJleGVjL1BsaXN0QnVkZHkgLWMgIk1l
cmdlIENvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlvcy5lbnRpdGxlbWVudHMiICIke1BST0NFU1NF
RF9YQ0VOVF9GSUxFfSI7CisgICAgZmkKK2ZpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5o
CmluZGV4IDE1OGQwZjYwMGMxYzI0ZjQ5ZjNmZDMxNTRhMzQ1MjViMThlYzk2ZTIuLjU1MjhmODAx
MzdkM2M2NjczOTEwMGQ2NzRkMzczNjA5OTJmNzdhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5oCkBAIC01Miw2ICs1Miw5IEBAIHB1YmxpYzoKICAgICAgICAgUGF5bWVudCwKICNl
bmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAgICAgICBQbHVnaW4KKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgICAgICBQYXltZW50CisjZW5kaWYgLy8gRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKICAgICB9OwogCiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IENoaWxk
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzM3MDk3MzQwM2Q0NjM0MDhlZDYzYmJjZWY0NTYzYmQw
MDk5ODFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9Q
YXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKworI2lu
Y2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXltZW50
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMoKQoreworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2Vzc2lv
bklEOworfQorCitib29sIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGF5bWVudC9QYXltZW50UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYzg2M2MwMGE4YTQwNzAxMzUxMmNhMjMx
YzA1NTgzNTE3YjllZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
YXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNhbmRi
b3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2Ns
YXNzIEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgeworICAgIFBheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzKCk7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmKTsKKworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gIVBBWU1FTlQoUEFZTUVOVF9QUk9DRVNTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAppbmRleCBjOWZkNGQ1YmFiNzY5ZDZhYmFjZDA2YzdiZDY2NWZjZjYxYTk2YzhkLi4y
NzMwMTdkZTVmNWNiN2I4YWY2N2I5NjhiOTcyMTk1MThkNzFlZGI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAg
LTc0LDkgKzc0LDYgQEAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3Vy
Y2VzRW50cnkuY3BwCiAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVy
LmNwcAogCi1QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHAKLVBheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAotCiAvLyBUT0RPOiBXZSBzaG91bGQg
dW5pZnkgdGhlc2UgZmlsZXMgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNzMiBpcyByZW1vdmVkLgog
UGxhdGZvcm0vTG9nZ2luZy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9Nb2R1bGUuY3BwIEBuby11
bmlmeQpAQCAtMjA1LDYgKzIwMiw3IEBAIFNoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QlJlc3VsdC5jcHAKIAogU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCiAKKwogLy8gVE9E
TzogVGhlc2UgZmlsZXMgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNz
MiBpcyByZW1vdmVkLgogU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAgQG5vLXVu
aWZ5CiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAgQG5vLXVuaWZ5
CkBAIC0zNzgsOCArMzc2LDYgQEAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwCiAKLVVJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcAotCiBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NN
YW5hZ2VyLmNwcApAQCAtNDgxLDggKzQ3Nyw2IEBAIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcAogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCi1XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLmNwcAotCiAvLyBUT0RPOiBUaGVzZSBmaWxlcyBzaG91bGQgYmUg
dW5pZmllZCBvbmNlIEdUSydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
OGZhYmY2YjFlZTE1NzAyNjBjOGY4YzdlOGZkYmEwZGE2ZWM0MzNhMy4uOGIwMWI1OTFhOGU1ZGJm
MGY2Yzc5ZTgxY2YzZTM3MGEzODcyOWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTg0
LDcgKzE4NCwxMyBAQCBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMv
V2ViSGl0VGVzdFJlc3VsdERhdGEubW0KIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMu
bW0KIAorUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2Vy
dmljZUVudHJ5UG9pbnQubW0KIFBheW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5t
bQorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCitQYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuY3BwCitQYXltZW50UHJvY2Vzcy9QYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eUlPUy5tbQorUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5Q29jb2EubW0KIAogU2hhcmVkL1BsdWdpbnMvbWFjL1BsdWdpblNhbmRib3hQcm9m
aWxlLm1tCiAKQEAgLTQ0MSw2ICs0NDcsOCBAQCBVSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0
cmF0ZWd5Lm1tCiAKIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eS5jcHAKIAorVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQ
cm9jZXNzUHJveHkuY3BwCisKIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVN
YWMubW0KIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbQog
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtNTEwLDYg
KzUxOCw5IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFj
Lm1tCiAKIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNw
cAogCitXZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuY3BwCitX
ZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCiBXZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGUzNmZkNGFhODEwNDZl
ZTZhYmJhZDJkODlmZDA0YzlkMGVjZDkxZDkuLmNkZjNhNmI0MWVmNmRkMzM5ZGUyMmI5OWQwNTYw
YzJlZjAzNzdkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcApAQCAtNjIzLDYgKzYyMywxMyBAQCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVBheW1lbnRQ
cm9jZXNzKFdLQ29udGV4dFJlZiBjb250ZXh0KQogI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiB9CiAKK3ZvaWQgV0tDb250ZXh0VGVybWluYXRlUGF5bWVudFByb2Nlc3MoV0tDb250
ZXh0UmVmIGNvbnRleHQpCit7CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKyAgICB0b0lt
cGwoY29udGV4dCktPnRlcm1pbmF0ZVBheW1lbnRQcm9jZXNzRm9yVGVzdGluZygpOworI2VuZGlm
IC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCit9CisKIFByb2Nlc3NJRCBXS0NvbnRleHRHZXRO
ZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAg
cmV0dXJuIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIoKTsKQEAgLTYzNyw2ICs2NDQsMTUgQEAgUHJvY2Vzc0lEIFdLQ29udGV4dEdldFBheW1lbnRQ
cm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKICNlbmRpZiAvLyBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogfQogCitQcm9jZXNzSUQgV0tDb250ZXh0R2V0UGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+cGF5bWVudFBy
b2Nlc3NJZGVudGlmaWVyKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmIC8vIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCit9CisKIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2lu
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkb21haW5SZWYsIFdLU3RyaW5n
UmVmIG5hbWVSZWYsIFdLQXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5UmVmIGV4dGVuc2lv
bnNSZWYpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggOGVkNGI0Zjc2
NDE1MWUxODM2YjU5OGRkYmEwYTZjNjJjNjM3ZGQ1Yi4uMTUxMjYzOTc5NGQ0ZGRlYWU2NzE1ZTQ0
YzdhYTMzZjIzYTNiOWI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTIsNiArOTIsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsKIAogV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0VGVybWluYXRlTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmKTsK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKFdL
Q29udGV4dFJlZik7CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQYXltZW50UHJv
Y2VzcyhXS0NvbnRleHRSZWYpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVQ
YXltZW50UHJvY2VzcyhXS0NvbnRleHRSZWYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eUNvY29hLmgKaW5kZXggYzRkNzlmZTRjMTJjOWFiODU0ZmJiZDQyNTEzYjc4
NTM4MzA3MmFlNy4uN2RiYTVmNTRiYWM2N2MyNjdjMTE3MTc3NzlkNmE2NzBmMzc3OWMxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Fw
cGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaApAQCAtMzEsMTEg
KzMxLDE1IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBVUkw7Cit9CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk7CiAKLVJldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5
bWVudFJlcXVlc3QoV2ViUGFnZVByb3h5JiwgY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29u
c3QgVmVjdG9yPFVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QmKTsKK1JldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5
bWVudFJlcXVlc3QoY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3QmKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHlDb2NvYS5tbQppbmRleCBlYWY1YmNkNzQ0MmExNDFjZTc2Y2IxNWVkNmFhYjZiMzIxZjRk
NTRkLi4xOTFmNTY3OGFlN2IxMjQ3YTI0NmQyYjU0YTJkMzZjNTVmOWZhNjFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5
L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KQEAgLTQ0MSw4ICs0NDEs
OCBAQCBzdGF0aWMgUEtQYXltZW50UmVxdWVzdEFQSVR5cGUgdG9BUElUeXBlKFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OgogICAgIH0KIH0KICNlbmRpZgotCi1SZXRhaW5Q
dHI8UEtQYXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1ZXN0KFdlYlBhZ2VQcm94eSYgd2Vi
UGFnZVByb3h5LCBjb25zdCBVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8VVJMPiYg
bGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dCYgcGF5bWVudFJlcXVlc3QpCisgICAgCitSZXRhaW5QdHI8UEtQYXltZW50UmVxdWVzdD4gdG9Q
S1BheW1lbnRSZXF1ZXN0KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VVJMPiYgbGlua0lj
b25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcGF5
bWVudFJlcXVlc3QpCiB7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQ
YXltZW50UmVxdWVzdEluc3RhbmNlKCkgaW5pdF0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCmluZGV4IDdl
N2I1NDU1MmY2OWY1OTE2YWNmNGFmMzc2YTU1YTM0MDcwNmU4ZGQuLjc0OWFlOWJiMTRmNTc3NjFl
OTQ1Yzg2ODBkYTY3NGFiMTA4M2E2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCkBAIC0zNSw2ICszNSw4
IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAKKyNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hF
Q0tfQkFTRShhc3NlcnRpb24sIGNvbm5lY3Rpb24oKSkKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDgsNiArNTAsOCBAQCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpQYXltZW50UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkK
IAogUGF5bWVudFByb2Nlc3NQcm94eTo6flBheW1lbnRQcm9jZXNzUHJveHkoKQogeworICAgIGZv
ciAoYXV0byYgcmVwbHkgOiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcykKKyAgICAgICAgcmVw
bHkoeyB9KTsKIH0KIAogdm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVGb3JUZXN0
aW5nKCkKQEAgLTU5LDE1ICs2MywxNCBAQCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2NlcwogewogICAg
IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmFwcGVuZChXVEZNb3ZlKHJlcGx5KSk7CiAgICAg
Ci0gICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OkxhdW5jaGluZykgeworICAgIGlmIChzdGF0ZSgp
ICE9IFN0YXRlOjpSdW5uaW5nKSB7CiAgICAgICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1
ZXN0cysrOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIGJvb2wgaXNTZXJ2aWNl
V29ya2VyUHJvY2VzcyA9IGZhbHNlOwotICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9y
aWdpbjsKICAgICAKLSAgICBzZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6Q3JlYXRlUGF5
bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc2VjdXJp
dHlPcmlnaW4pLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQYXlt
ZW50UHJvY2Vzczo6Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgMCk7CisK
IH0KICAgICAKIHZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9j
ZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCkBAIC04MSwxNCArODQs
NiBAQCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhp
cy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKIH0KIAotdm9pZCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgewotICAgICAgICBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KIHZvaWQgUGF5
bWVudFByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIHsKICAgICBhdXRv
IHByb3RlY3RlZFByb2Nlc3NQb29sID0gbWFrZVJlZihtX3Byb2Nlc3NQb29sKTsKQEAgLTk5LDI1
ICs5NCwzMCBAQCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQogICAgIC8vIFRlbGwgUHJv
Y2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMgcGF5bWVudCBwcm9jZXNzLiBUaGlzIG1heSBj
YXVzZSB1cyB0byBiZSBkZWxldGVkLgotICAgIG1fcHJvY2Vzc1Bvb2wucGF5bWVudFByb2Nlc3ND
cmFzaGVkKCp0aGlzKTsKKyAgICBtX3Byb2Nlc3NQb29sLnBheW1lbnRQcm9jZXNzQ3Jhc2hlZCh0
aGlzKTsKIH0KIAogdm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCiB7CiB9Ci0KLXZvaWQg
ZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpCisgICAgCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVj
dGlvbklkZW50aWZpZXIpCiB7CisgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGll
cy5pc0VtcHR5KCkpOworICAgIAorICAgIC8vIEdyYWIgdGhlIGZpcnN0IHBlbmRpbmcgY29ubmVj
dGlvbiByZXBseS4KKyAgICBhdXRvIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMu
dGFrZUZpcnN0KCk7CisgICAgTUVTU0FHRV9DSEVDSyhNQUNIX1BPUlRfVkFMSUQoY29ubmVjdGlv
bklkZW50aWZpZXIucG9ydCgpKSk7CisgICAgcmVwbHkoSVBDOjpBdHRhY2htZW50KGNvbm5lY3Rp
b25JZGVudGlmaWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyAgICAKIH0K
ICAgICAKLXZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmll
cikKK3ZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgUGF5bWVudFBy
b2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIs
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAg
ICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25uZWN0
aW9uSWRlbnRpZmllcik7Cit7ICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIGlmICghSVBDOjpDb25u
ZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKICAgICAg
ICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVwIGhlcmUuCkBAIC0xMjUsMTAgKzEyNSwxMiBA
QCB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1
bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbgogICAgIH0KIAogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKLSAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKGZhbHNlLCB7IH0pLCAwKTsKLSAgICAKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UGF5
bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCksIDApOwor
CiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisjdW5kZWYgTUVTU0FHRV9DSEVDSwogI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaAppbmRleCBlMDMxYzdjNjdiNGYwZTk0MjZiMTFkMTBm
MWU1NTQ1OTU3ODRmMDVjLi43YmYxMzAwNDkxMzE0Nzg2ZTMyOTc2Y2Y4YmQwNDIzNmVmZmE1MmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVu
dFByb2Nlc3NQcm94eS5oCkBAIC02NiwxMCArNjYsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0KICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAg
ICAgdm9pZCBkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6
OkF0dGFjaG1lbnQmKTsKKyAgICB2b2lkIGNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKCk7CiAKICAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZvaWQgZGlkRmlu
aXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggNTlhYjVkZTFjNjdkMmMxY2YyNzgxOWMyOWE3MjUxYzc1ZjEyOGQwZC4uNDIwNmZmNzhm
Yzc0MDY2YmNhNmU3ODcwY2FkOWQxMWY5ZDI3OWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMzMxLDYgKzMzMSw5IEBAIFdlYlByb2Nlc3NQb29s
Ojp+V2ViUHJvY2Vzc1Bvb2woKQogCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAg
IG1fbmV0d29ya1Byb2Nlc3MtPnNodXREb3duUHJvY2VzcygpOworICAgIAorICAgIGlmIChtX3Bh
eW1lbnRQcm9jZXNzKQorICAgICAgICBtX3BheW1lbnRQcm9jZXNzLT5zaHV0RG93blByb2Nlc3Mo
KTsKIAogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIGlmICghbV9wcm9jZXNzZXNVc2luZ0dhbWVw
YWRzLmlzRW1wdHkoKSkKQEAgLTYzMCwxMyArNjMzLDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmVuc3VyZVBheW1lbnRQcm9jZXNzKCkKICAgICAgICAgbV9wYXltZW50UHJvY2VzcyA9IHN0ZDo6
bWFrZV91bmlxdWU8UGF5bWVudFByb2Nlc3NQcm94eT4oKnRoaXMpOwogfQogICAgIAotdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94
eSYgd2ViUHJvY2Vzc1Byb3h5LCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQogewogICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CiAgICAgbV9wYXltZW50UHJv
Y2Vzcy0+Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgV1RGTW92
ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNo
ZWQoUGF5bWVudFByb2Nlc3NQcm94eSYgcGF5bWVudFByb2Nlc3NQcm94eSkKK3ZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBheW1lbnRQcm9jZXNzQ3Jhc2hlZChQYXltZW50UHJvY2Vzc1Byb3h5KiBwYXlt
ZW50UHJvY2Vzc1Byb3h5KQogewogICAgIEFTU0VSVChtX3BheW1lbnRQcm9jZXNzKTsKICAgICBB
U1NFUlQocGF5bWVudFByb2Nlc3NQcm94eSA9PSBtX3BheW1lbnRQcm9jZXNzLmdldCgpKTsKQEAg
LTczMCw3ICs3MzMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdo
dEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLSAg
ICAgICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0
cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CisvLyAgICAg
ICAgc2VuZFRvUGF5bWVudFByb2Nlc3MoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95
U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CiAjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgfQpAQCAtODQ1LDYgKzg0OCw5IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cywgV2Vic2l0ZURhCiAgICAgfSk7CiAKICAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOworI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgZW5zdXJlUGF5bWVudFByb2Nlc3MoKTsKKyNl
bmRpZgogCiAgICAgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogCkBA
IC0xNDAxLDYgKzE0MDcsMTQgQEAgUHJvY2Vzc0lEIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJv
Y2Vzc0lkZW50aWZpZXIoKQogCiAgICAgcmV0dXJuIG1fcGF5bWVudFByb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCk7CiB9CisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKK1Byb2Nlc3NJRCBX
ZWJQcm9jZXNzUG9vbDo6cGF5bWVudFByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICBpZiAoIW1f
cGF5bWVudFByb2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGF5bWVu
dFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhU
ZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGU1M2JiYjk1ZWJjZjg4NjAwMGJiMTRiMDQ3YTVj
MjdhZjc3ZjUwMDEuLjNmMzdmZGRlNGJhMjhkZGRmNDc1NjQzNGM0MjNjZTExOGEzNTM4ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMTc3LDYgKzE3Nyw3
IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb05ldHdvcmtp
bmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CiAKICNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIC8vIFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdlYlByb2Nl
c3Mgb3IgUGF5bWVudFByb2Nlc3MgYXMgYXBwcm9wb3JpYXRlIGZvciBjdXJyZW50IHByb2Nlc3Mg
bW9kZWwuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXltZW50UHJvY2Vz
cyhUJiYgbWVzc2FnZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9QYXlt
ZW50UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoVCYmIG1lc3NhZ2UpOwogI2VuZGlmIC8v
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCkBAIC0zNjEsNyArMzYyLDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9pZCBlbnN1cmVQYXltZW50UHJvY2Vzcygp
OwogICAgIFBheW1lbnRQcm9jZXNzUHJveHkqIHBheW1lbnRQcm9jZXNzKCkgeyByZXR1cm4gbV9w
YXltZW50UHJvY2Vzcy5nZXQoKTsgfQotICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYsIFBBTDo6U2Vzc2lvbklEIGluaXRpYWxTZXNzaW9uSUQsIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgZ2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcGF5bWVudFByb2Nlc3NDcmFz
aGVkKFBheW1lbnRQcm9jZXNzUHJveHkqKTsKICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDk4MjMyYzI2YjQ5YTBmMWIwMTAzN2M0YzczZmVi
OGJlZjBmOTZlMmIuLjdlMjhlY2ZlMmVlNzBiNmRhZGMxNWZhZjVjNDBjOTNiMjcyMDRjYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjMyLDkg
KzYzMiw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBtX3Byb2Nlc3NQb29sLT5nZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIGluaXRpYWxTZXNzaW9uSUQsIFdURk1vdmUo
cmVwbHkpKTsKKyAgICBtX3Byb2Nlc3NQb29sLT5nZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KnRoaXMsIFdURk1vdmUocmVwbHkpKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9D
RVNTKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMz
ZDQ2YzVkOTZmYjgyOWNjNWJkZTljOTNmNGRhNTUyYjg3YjU0MDIuLjlhYTU0MWZiNTA1MjIwNmFj
NmZiOWY4MWU2ZjJjYTI3ZDE3OWMzMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC0yOTEsNyArMjkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAogI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCi0gICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29u
c3Q7CiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggODQ2ZjQ5NmI2NThmMjc0ODBiNjcxNDFjZTdlM2YwYWY3YjBjZDVlMy4uYTI1OGYz
MGQ4MWYyYjMzYmM1M2NkM2MyMTg5NDA5YjVkZjIwN2E0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzgsNyArMzgs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlm
CiAgICAgR2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCiAjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLSAg
ICBHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Np
b25JRCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisgICAg
R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0
aW9uSGFuZGxlKSBEZWxheWVkCiAjZW5kaWYgLy8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAg
ICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYjA3ODliZTAzNTJiYzhkOTM3ZDk1ZjFmM2VhNTNjODU2
NmNkODRjMC4uN2E2OGQ0MGU1YmY3Zjg3N2U0ZGZhMTllMGVjNGFmNzAzZjU5NGY5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKQEAgLTEzMjksNyArMTMyOSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
CiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRlc3Ryb3lQYXltZW50UHJvY2Vzc1Nlc3Npb24oV2Vi
UHJvY2Vzc1Bvb2wqIHBvb2wpCiB7CiAjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKLSAgICBw
b29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ry
b3lTZXNzaW9uKG1fc2Vzc2lvbklEKSk7CisgICAgcG9vbC0+c2VuZFRvUGF5bWVudFByb2Nlc3Mo
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbigpKTsKICNlbmRpZiAvLyBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogfQogICAgIApAQCAtMTYzNyw2ICsxNjM3LDE5IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9j
ZXNzZXMoQ29tcGxldGlvbkhhbmRsCiAgICAgY2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCitQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRl
RGF0YVN0b3JlOjpwYXltZW50UHJvY2Vzc1BhcmFtZXRlcnMoKQoreworICAgIHJlc29sdmVEaXJl
Y3Rvcmllc0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyBwYXJhbWV0ZXJzOworCisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25J
RDsKKworICAgIHJldHVybiBwYXJhbWV0ZXJzOworfQorI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IFdlYnNpdGVEYXRhU3RvcmU6OnBl
bmRpbmdDb29raWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29weVRvVmVjdG9yKG1fcGVuZGlu
Z0Nvb2tpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDAxY2RmYzM0Mzg0Mzg0NzkxMzAyZDBmMjEzMWFk
Nzk0NzRlN2VhNTguLjViMzM3MzEwYmQ0YTI4MTEzMzY5MDQ1Y2YwZjNhMDk0YWU3M2I4NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKQEAgLTY3LDYgKzY3LDkgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFz
cyBXZWJzaXRlRGF0YVR5cGU7CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjsKKyNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorc3RydWN0IFBheW1lbnRQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiBz
dHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQ7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGVlOWU1NzIyZmMzOTA0OWY1YzkzMDQ5NWRlZjhmNTQ1ZjMzM2NkMTcuLjBmNGNiY2Qx
NTk5NWY2YmE3ODhjYzcwZjRlNDBmNjkwZWZjYTkwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAsNiArMjAsNyBAQAogCQkJCUJD
NzdGOTU2MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJD
ODI4NDQ2MTZCNEZGNjYwMEEyNzhGRSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJD
ODI4M0Q1MTZCNEMwMUYwMEEyNzhGRSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJCTM5
RTlFQ0E5MjFCODc2NDIwMEJBNUYxOSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsK
IAkJCW5hbWUgPSBBbGw7CiAJCQlwcm9kdWN0TmFtZSA9IFdlYktpdDI7CkBAIC04NDksNyArODUw
LDE4IEBACiAJCTM3RjkwREUzMTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9s
aWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4
OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9Owog
CQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oICovOyB9OwotCQkzOTEzNjAyNTIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktp
dC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzkxMzYwMjQyMTkzQzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dHMuc2IgKi87IH07CisJCTM5M0YyNTlGMjFDOEQ0NjUwMEU0Q0U4NSAvKiBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTNGMjU5RDIxQzhENDQwMDBFNENFODUgLyogV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkz
OTNGMjVBMDIxQzhENDY4MDBFNENFODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzkzRjI1OUUyMUM4RDQ0MTAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzk1Q0RDNUYyMUJCNDVENTAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTVDREM1RTIxQkI0NTMzMDA3NjZFNEQgLyogUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzk1Q0RDNjEyMUJC
NDZENzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzk1Q0RDNjAyMUJCNDZD
RDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovOyB9Owor
CQkzOTVDREM2NDIxQkI1RTRFMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzOTVDREM2MzIxQkI1RTJDMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTM5NUNEQzY1MjFCQjVFNTEwMDc2NkU0
RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzk1Q0RDNjIyMUJC
NUUxQjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CisJCTM5NUNEQzZEMjFDNDdCNjgwMDc2NkU0RCAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzk1Q0RDNkUyMUM0N0M1RTAw
NzY2RTREIC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE1MUYyOTU5NjMwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTM5RTlFQzk3
MjFCNzVFRDcwMEJBNUYxOSAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBY
UENTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKKwkJMzlFOUVDOTkyMUI3NUVENzAwQkE1RjE5IC8qIEZv
dW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrICovOyB9OworCQkzOUU5RUM5QTIxQjc1RUQ3MDBCQTVGMTkgLyogV2ViS2l0LmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhEQzJF
RjVCMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQuZnJhbWV3b3JrICovOyB9OworCQkzOUY4RTQz
NjIxQjc1NEVEMDBGMkI5NkMgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBDb3B5
RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzkxMzYwMjQyMTkzQzE0
MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi87IH07CiAJCTNGNDE4
RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNG
NDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJ
M0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OwpAQCAtOTA5LDkgKzkyMSw3IEBACiAJCTUx
MEY1OTExMURERTI5NzAwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTc5MURERDc4NTQw
MDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyog
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51
SXRlbURhdGEuaCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRh
dGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTE4RTlBODFGMjk1OTc3MDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTExOEU5QTkx
RjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE2MUYyOTU5NjMwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07Ci0JCTUxMThFOUFBMUYyOTU5Nzcw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMThFOUE3MUYyOTU5NjMw
MDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNTExOEU5QUIxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5
QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovOyB9
OwogCQk1MTFGN0Q0MTFFQjFCQ0Y1MDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3
RDQwMUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9
OwogCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0
NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CkBAIC05OTIsOCArMTAw
Miw2IEBACiAJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MUREOUYy
OTE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFERDlG
MjcxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCAqLzsgfTsKIAkJNTFFMzUxQ0IxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxQzkx
ODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovOyB9OwotCQk1MUUzNTFGRjE4MEY1
RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFBheW1l
bnRQcm9jZXNzLmNwcCAqLzsgfTsKLQkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUZEMTgwRjVEMEIwMEU1M0JFOSAvKiBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxRTZDMTY0MUYyOTM1REQwMEZEMzQz
NyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYxMUYyOTM1Q0QwMEZE
MzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLzsgfTsK
IAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkQ1
NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUYwNjBFMDE2NTQz
MTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUxNjU0MzE3NTAwRjMyODFC
IC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTE1NzcsNyArMTU4NSw2
IEBACiAJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQzMTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMy
QjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oICovOyB9OwogCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1Jh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA1
RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi87IH07Ci0JCUUxMTVDNzE0
MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkVGMzlDMTkwRjc5MUMwMDczMTY1OCAv
KiBQYXltZW50UHJvY2Vzc0lPUy5tbSAqLzsgfTsKIAkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3
IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxl
LldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0
OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vz
c1Byb3h5LmggKi87IH07CkBAIC0xNzA1LDYgKzE3MTIsMjcgQEAKIAkJCXJlbW90ZUdsb2JhbElE
U3RyaW5nID0gQzBDRTcyODUxMjQ3RTY2ODAwQkMwRUM0OwogCQkJcmVtb3RlSW5mbyA9ICJEZXJp
dmVkIFNvdXJjZXMiOwogCQl9OworCQkzOUU5RUM5MjIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5Owor
CQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qg
b2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0g
RTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEOworCQkJcmVtb3RlSW5mbyA9ICJVbmxvY2sgS2V5Y2hh
aW4iOworCQl9OworCQkzOUU5RUM5NDIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFp
bmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICov
OworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOERDMkVGNEYw
NDg2QTY5NDAwOThCMjE2OworCQkJcmVtb3RlSW5mbyA9IFdlYktpdDsKKwkJfTsKKwkJMzlFOUVD
QTgyMUI4NzY0MjAwQkE1RjE5IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlz
YSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkw
RkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7
CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDM5RTlFQzkwMjFCNzVFRDcwMEJBNUYxOTsKKwkJ
CXJlbW90ZUluZm8gPSBQYXltZW50czsKKwkJfTsKIAkJQkM3N0Y5NTUxNkQwNDU5MTAwRjhGNzhB
IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0
ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAv
KiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTE4NTMsNiArMTg4MSw3IEBACiAJCQlkc3RTdWJmb2xk
ZXJTcGVjID0gMDsKIAkJCWZpbGVzID0gKAogCQkJCUE3OENDRERCMTkzQUM5RjgwMDVFQ0MyNSAv
KiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgaW4gQ29weUZpbGVzICovLAorCQkJCTM5
RjhFNDM2MjFCNzU0RUQwMEYyQjk2QyAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGlu
IENvcHlGaWxlcyAqLywKIAkJCQlBNzhDQ0REQzE5M0FDOUZCMDA1RUNDMjUgLyogY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTI5OTUsMTAgKzMwMjQsMjkgQEAK
IAkJMzdGQzE5NDgxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzkxMzYwMjQyMTkz
QzE0MzAwNTY0OTJBIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTM5MkU5NDJEMjE5QTM5OUEw
MDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5M0YyNTlEMjFDOEQ0NDAwMEU0Q0U4NSAvKiBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzkz
RjI1OUUyMUM4RDQ0MTAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTM5NUNEQzRCMjFCQTFGQUQwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNEMyMUJBMUZBRDAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5NUNEQzRGMjFC
QjBCMDYwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5NUNEQzUwMjFCQjBCMDYwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RD
NTEyMUJCMzBENzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5NUNEQzUzMjFCQjMzQTYwMDc2NkU0RCAv
KiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3IubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM5NUNEQzVFMjFCQjQ1MzMwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQkzOTVDREM2MDIxQkI0NkNEMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJMzk1Q0RDNjIyMUJCNUUxQjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzOTVDREM2MzIx
QkI1RTJDMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCTM5NUNEQzY3MjFDMTlGRTAwMDc2NkU0RCAvKiBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RD
NjgyMUMxRERDOTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUlPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUlP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNjkyMUMxRERENDAwNzY2
RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5NUNEQzZBMjFDMURERTIwMDc2NkU0RCAvKiBQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzOUJEMEFGNTIxQUUyMDJFMDBFMzI0M0YgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsg
cGF0aCA9ICJJbmZvLWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM5
QkQwQUY2MjFBRTIwMkUwMEUzMjQzRiAvKiBQYXltZW50U2VydmljZUVudHJ5UG9pbnQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50U2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5QkQwQUZBMjFBRjQxMkEwMEUzMjQzRiAvKiBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOUJEMEFGQjIx
QUY0MTJBMDBFMzI0M0YgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzOUU5RUNBMjIxQjc1RUQ3MDBCQTVGMTkgLyogY29tLmFw
cGxlLldlYktpdC5QYXltZW50cy54cGMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2aWNlIjsgaW5jbHVkZUluSW5kZXggPSAw
OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50cy54cGM7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCTM5RTlFQ0E0MjFCNzY4OEMwMEJBNUYxOSAvKiBQYXltZW50
cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
LmVudGl0bGVtZW50czsgcGF0aCA9ICJQYXltZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRp
dGxlbWVudHMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOUU5RUNBNTIxQjc2ODhD
MDBCQTVGMTkgLyogUGF5bWVudHMtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxp
c3QuZW50aXRsZW1lbnRzOyBwYXRoID0gIlBheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTNGNDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC0zMTQ5LDEzICszMTk3LDkgQEAKIAkJNTEwRkJCOTkxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNv
bnRleHRNZW51SXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEw
QUUwQTEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJY29uRGF0YWJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTExOEU5QTQxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07Ci0JCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKLQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTUxRjI5NTk2MzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ1NzEsNiArNDYxNSwxNSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQkzOUU5RUM5ODIxQjc1RUQ3MDBCQTVGMTkg
LyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwor
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTM5RTlF
Qzk5MjFCNzVFRDcwMEJBNUYxOSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovLAorCQkJCTM5RTlFQzlBMjFCNzVFRDcwMEJBNUYxOSAvKiBXZWJLaXQuZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCX07CiAJCTUxMDAzMUVFMTM3OUNBQ0IwMEM4REZFNCAvKiBGcmFtZXdvcmtz
ICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNDYzMyw2ICs0Njg2LDcgQEAKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQkM4MjgzQjExNkI0QkY3NzAwQTI3OEZFIC8qIGNv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy54cGMgKi8sCisJCQkJMzlFOUVDQTIyMUI3NUVENzAw
QkE1RjE5IC8qIGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMueHBjICovLAogCQkJCUJDODI4M0Y5
MTZCNEZEREUwMEEyNzhGRSAvKiBjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGMgKi8sCiAJ
CQkJQkM4Mjg0MUYxNkI0RkRGNjAwQTI3OEZFIC8qIGNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0
LnhwYyAqLywKIAkJCQkzNzJFQkI0NjIwMTdFNjQzMDAwODUwNjQgLyogY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwYyAqLywKQEAgLTQ4NjQsNiArNDkxOCw4IEBACiAJ
CQkJNDFEMEZDN0QyMEU0M0E1MTAwMDc2QUU4IC8qIE5ldHdvcmstT1NYLXNhbmRib3guZW50aXRs
ZW1lbnRzICovLAogCQkJCTVDN0FDRkQxMjE4REQ4QkQwMDRDQkI1OSAvKiBOZXR3b3JrLU9TWC5l
bnRpdGxlbWVudHMgKi8sCiAJCQkJQkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtT
ZXJ2aWNlLnhjY29uZmlnICovLAorCQkJCTM5RTlFQ0E0MjFCNzY4OEMwMEJBNUYxOSAvKiBQYXlt
ZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRpdGxlbWVudHMgKi8sCisJCQkJMzlFOUVDQTUy
MUI3Njg4QzAwQkE1RjE5IC8qIFBheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMgKi8sCiAJCQkJNTFB
NjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovLAogCQkJ
CUExRUREMkRCMTg4NEI5NjQwMEJCRkU5OCAvKiBQbHVnaW5Qcm9jZXNzU2hpbS54Y2NvbmZpZyAq
LywKIAkJCQlCQzgyODNGMjE2QjRGQzUzMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi54Y2Nv
bmZpZyAqLywKQEAgLTYzMTgsMTUgKzYzNzQsNiBAQAogCQkJcGF0aCA9IFJlc291cmNlcy9tYWM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQkzOTJFOTQyQTIxOUEyRTg1MDA1
MEY5ODIgLyogUGF5bWVudHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVu
ID0gKAotCQkJCTM5MkU5NDJEMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi8sCi0JCQkJMzkyRTk0MkIyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IFBheW1lbnRz
OwotCQkJc291cmNlVHJlZSA9ICI8dW5rbm93bj4iOwotCQl9OwogCQkzOUJEMEFGMTIxQUUyMDJF
MDBFMzI0M0YgLyogRW50cnlQb2ludCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC02MzYwLDYgKzY0MDcsMTkgQEAKIAkJCXBhdGggPSBQYXltZW50U2Vydmlj
ZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM5QkQwQUY5MjFBRjQxMkEw
MEUzMjQzRiAvKiBQYXltZW50cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMzk1Q0RDNEMyMUJBMUZBRDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IuY3BwICovLAorCQkJCTM5NUNEQzRCMjFCQTFGQUQwMDc2NkU0RCAvKiBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yLmggKi8sCisJCQkJMzk1Q0RDNTMyMUJCMzNBNjAwNzY2RTREIC8q
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gKi8sCisJCQkJMzlCRDBBRkIy
MUFGNDEyQTAwRTMyNDNGIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywK
KwkJCQkzOUJEMEFGQTIxQUY0MTJBMDBFMzI0M0YgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24uaCAqLywKKwkJCQkzOTVDREM2NzIxQzE5RkUwMDA3NjZFNEQgLyogV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFBheW1l
bnRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNDEzMDc1OTcxREU4NEVE
NzAwMzlFQzY5IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC02NzU2LDYgKzY4MTYsMTIgQEAKIAkJCQk1MUUzNTFGQTE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovLAogCQkJCTUxRTM1MUZCMTgwRjVEMEIwMEU1M0JF
OSAvKiBQYXltZW50UHJvY2Vzcy5oICovLAogCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAv
KiBQYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTVDREM1MDIxQkIwQjA2MDA3
NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmNwcCAqLywKKwkJCQkzOTVD
REM0RjIxQkIwQjA2MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lmgg
Ki8sCisJCQkJMzk1Q0RDNTEyMUJCMzBENzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQkzOTVDREM2QTIxQzFEREUyMDA3NjZFNEQg
LyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaCAqLywKKwkJCQkzOTVDREM2
OTIxQzFEREQ0MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2Eu
bW0gKi8sCisJCQkJMzk1Q0RDNjgyMUMxRERDOTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eUlPUy5tbSAqLywKIAkJCQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyog
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxRTM1MUZFMTgwRjVE
MEIwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJCTUx
MDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiAqLywKQEAgLTY3NjMsMjcgKzY4MjksNiBAQAogCQkJcGF0aCA9IFBheW1lbnRQ
cm9jZXNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJNTM5QkQ1QjIxREFE
QjBCQTAwRjJFNEUxIC8qIGNhcHR1cmUgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNo
aWxkcmVuID0gKAotCQkJCTUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29uLmhwcCAqLywK
LQkJCQk1MzAyNTgzMDFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVFdmVudC5jcHAg
Ki8sCi0JCQkJNTMwMjU4MzExRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQu
aCAqLywKLQkJCQk1MzAyNTgzMjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVMb2dn
aW5nLmggKi8sCi0JCQkJNTMwMjU4MzMxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJl
TWFuYWdlci5jcHAgKi8sCi0JCQkJNTMwMjU4MzQxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtD
YXB0dXJlTWFuYWdlci5oICovLAotCQkJCTUzMDI1ODM1MURDQkJEMUQwMERBODlDMiAvKiBOZXR3
b3JrQ2FwdHVyZVJlY29yZGVyLmNwcCAqLywKLQkJCQk1MzAyNTgzNjFEQ0JCRDFEMDBEQTg5QzIg
LyogTmV0d29ya0NhcHR1cmVSZWNvcmRlci5oICovLAotCQkJCTUzMDI1ODM3MURDQkJEMUQwMERB
ODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmNwcCAqLywKLQkJCQk1MzAyNTgzODFEQ0JC
RDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5oICovLAotCQkJCTUzMDI1ODJF
MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNwcCAqLywKLQkJCQk1
MzAyNTgyRjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5oICovLAot
CQkJCTUzMDI1ODM5MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3Bw
ICovLAotCQkJCTUzMDI1ODNBMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBs
YXkuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gY2FwdHVyZTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7Ci0JCX07CiAJCTU3MEFCOEY2MjBBRTgxQUIwMEI4QkU4NyAvKiBjb2NvYSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03MjM3LDcgKzcyODIsNyBA
QAogCQkJCTRBNDEwRjQxMTlBRjdCMjcwMDJFQkFCNSAvKiBNZWRpYVN0cmVhbSAqLywKIAkJCQk1
MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4
QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCi0JCQkJMzkyRTk0MkEyMTlB
MkU4NTAwNTBGOTgyIC8qIFBheW1lbnRzICovLAorCQkJCTM5QkQwQUY5MjFBRjQxMkEwMEUzMjQz
RiAvKiBQYXltZW50cyAqLywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lu
cyAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywKIAkJCQkx
QUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCkBAIC04NTAzLDYgKzg1
NDgsMTkgQEAKIAkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NN
ZXNzYWdlcy5oICovLAogCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTE4RTlBMjFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMzk1Q0RDNjAy
MUJCNDZDRDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oICov
LAorCQkJCTM5NUNEQzYzMjFCQjVFMkMwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzOTVDREM2MDIxQkI0NkNEMDA3NjZFNEQg
LyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2VzLmggKi8sCisJCQkJMzk1Q0RDNjIy
MUJCNUUxQjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCisJCQkJMzk1Q0RDNUUyMUJCNDUzMzAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTUxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1
MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01l
c3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9j
ZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTcxRjI5NTk2
MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAor
CQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCAqLywKKwkJCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQTI5QTI1MUNC
RUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJ
CQlDREEyOUEyNjFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg1NDEsNiArODU5OSwxMCBAQAogCQkJCTUxMThF
OUE2MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJ
NTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyog
UGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMThFOUE2MUYyOTU5
NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VzLmggKi8sCisJCQkJNTExOEU5QTcx
RjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTUxMThFOUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCAqLywKIAkJCQk1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMThFOUE0
MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg2NDIsNiArODcwNCw4IEBACiAJCQkJ
NTE3QTUyRDYxRjQzQTlCNjAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggKi8sCiAJCQkJNTE1MjYyQkExRkI5NTEzMTAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTE1MjYyQkIxRkI5NTEz
MTAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi8s
CisJCQkJMzkzRjI1OUQyMUM4RDQ0MDAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzOTNGMjU5RTIxQzhENDQxMDBFNENF
ODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJCTFB
QUYwOEI1MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQUYwOEI2MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oICovLAogCQkJCTdDMzYxRDc2MTkyODAzQkQwMDM2
QTU5RCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCkBAIC05Mjk2LDYgKzkzNjAsOCBAQAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAv
KiBQYWdlTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCMDFCQzQzQzg2MDA4
MkRGNzcgLyogUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0
QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkzOTVDREM2MTIxQkI0NkQ3MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzOTVDREM1RjIxQkI0NUQ1MDA3NjZFNEQg
LyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogUGF5bWVu
dFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExOEU5QUIxRjI5NTk3NzAwM0VG
OUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC05
NjU4LDYgKzk3MjQsNyBAQAogCQkJCTkzNTZGMkREMjE1MkI2RjYwMEU2RDVERiAvKiBXZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MkQ5MUY0M0E5REEwMERD
REMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE1MjYyQkMxRkI5NTE1RDAwNzBFNTc5IC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzOTNGMjVBMDIxQzhENDY4MDBFNENF
ODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBMEVGN0YxMjMzMUU3ODAwN0QzQ0ZCIC8qIFdlYlVuZG9TdGVwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUFGMDhBRTE5MjY5MzY3MDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzA2NUYyQzFDOENEOTVGMDBDMkQ5NTAg
LyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTEwMDk0LDYgKzEwMTYxLDI4IEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gMzcyRUJCNDYyMDE3
RTY0MzAwMDg1MDY0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54
cGMgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2
aWNlIjsKIAkJfTsKKwkJMzlFOUVDOTAyMUI3NUVENzAwQkE1RjE5IC8qIFBheW1lbnRzICovID0g
eworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDM5RTlFQzlFMjFCNzVFRDcwMEJBNUYxOSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiUGF5bWVudHMiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJ
MzlFOUVDOTUyMUI3NUVENzAwQkE1RjE5IC8qIFJlbW92ZSBzdGFsZSBlbnRpdGxlbWVudHMgZmls
ZSAqLywKKwkJCQkzOUU5RUM5NjIxQjc1RUQ3MDBCQTVGMTkgLyogU291cmNlcyAqLywKKwkJCQkz
OUU5RUM5ODIxQjc1RUQ3MDBCQTVGMTkgLyogRnJhbWV3b3JrcyAqLywKKwkJCQkzOUU5RUM5QjIx
Qjc1RUQ3MDBCQTVGMTkgLyogUmVzb3VyY2VzICovLAorCQkJCTM5RTlFQzlDMjFCNzVFRDcwMEJB
NUYxOSAvKiBVbmxvY2sga2V5Y2hhaW4gKi8sCisJCQkJMzlFOUVDOUQyMUI3NUVENzAwQkE1RjE5
IC8qIFByb2Nlc3MgUGF5bWVudCBlbnRpdGxlbWVudHMgKi8sCisJCQkpOworCQkJYnVpbGRSdWxl
cyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMzlFOUVDOTEyMUI3NUVENzAw
QkE1RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCisJCQkJMzlFOUVDOTMyMUI3NUVENzAw
QkE1RjE5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCisJCQkpOworCQkJbmFtZSA9IFBheW1l
bnRzOworCQkJcHJvZHVjdE5hbWUgPSBQYXltZW50czsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSAz
OUU5RUNBMjIxQjc1RUQ3MDBCQTVGMTkgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy54cGMg
Ki87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2aWNl
IjsKKwkJfTsKIAkJNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICovID0g
ewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDUxMDAzMUYyMTM3OUNBQ0IwMEM4REZFNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiU2VjSXRlbVNoaW0iICovOwpAQCAtMTAyNzQsNiArMTAzNjMsNyBA
QAogCQkJCUJDM0RFNDY1MTVBOTE3NjMwMDhEMjZGQyAvKiBXZWJDb250ZW50ICovLAogCQkJCTM3
MkVCQjM4MjAxN0U2NDMwMDA4NTA2NCAvKiBXZWJDb250ZW50LkRldmVsb3BtZW50ICovLAogCQkJ
CUJDODI4M0IwMTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3JraW5nICovLAorCQkJCTM5RTlFQzkw
MjFCNzVFRDcwMEJBNUYxOSAvKiBQYXltZW50cyAqLywKIAkJCQlCQzgyODNGODE2QjRGRERFMDBB
Mjc4RkUgLyogUGx1Z2luLjMyICovLAogCQkJCUJDODI4NDFFMTZCNEZERjYwMEEyNzhGRSAvKiBQ
bHVnaW4uNjQgKi8sCiAJCQkJQTdBQURBMTAxOTM5NUNBOTAwM0VBMUM3IC8qIFNhbmRib3ggUHJv
ZmlsZXMgKi8sCkBAIC0xMDI5MSwxMiArMTAzODEsMTggQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJMzlFOUVDOUIyMUI3NUVENzAw
QkE1RjE5IC8qIFJlc291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhh
c2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkp
OworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCThE
QzJFRjUyMDQ4NkE2OTQwMDk4QjIxNiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhS
ZXNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJ
CWZpbGVzID0gKAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKLQkJCQkzOTEzNjAyNTIxOTND
MTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50cy5zYiBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk0MTRERDM3OTIwQkY0M0Y1MDA2OTU5RkIgLyogY29t
LmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5
QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAq
LywKQEAgLTEwNTIyLDYgKzEwNjE4LDQ5IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwogCQkJ
c2hlbGxTY3JpcHQgPSAiaWYgW1sgXCIke1dLX01BTlVBTF9TQU5EQk9YSU5HX0VOQUJMRUR9XCIg
IT0gXCJZRVNcIiB8fCBcIiR7V0tfUExBVEZPUk1fTkFNRX1cIiA9PSBcIm1hY29zeFwiIHx8IFwi
JHtXS19QTEFURk9STV9OQU1FfVwiID09IFwiaW9zbWFjXCIgXV07IHRoZW5cbiAgICBleGl0XG5m
aVxuXG5pZiBbWyBcIiR7QUNUSU9OfVwiID09IFwiYnVpbGRcIiB8fCBcIiR7QUNUSU9OfVwiID09
IFwiaW5zdGFsbFwiIF1dOyB0aGVuXG4gICAgZm9yICgoaSA9IDA7IGkgPCAke1NDUklQVF9JTlBV
VF9GSUxFX0NPVU5UfTsgKytpKSk7IGRvXG4gICAgICAgIGV2YWwgU0FOREJPWF9QUk9GSUxFPVxc
JHtTQ1JJUFRfSU5QVVRfRklMRV8ke2l9fVxuICAgICAgICBkaXR0byBcIiR7U0FOREJPWF9QUk9G
SUxFfVwiIFwiJHtUQVJHRVRfQlVJTERfRElSfS8ke1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xE
RVJfUEFUSH0vJHtTQU5EQk9YX1BST0ZJTEUjIyovfVwiXG4gICAgZG9uZVxuZmlcbiI7CiAJCX07
CisJCTM5RTlFQzk1MjFCNzVFRDcwMEJBNUYxOSAvKiBSZW1vdmUgc3RhbGUgZW50aXRsZW1lbnRz
IGZpbGUgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQ
YXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIlJlbW92ZSBzdGFsZSBlbnRpdGxlbWVudHMgZmls
ZSI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlw
dCA9ICIjIFdlIGF1dG9nZW5lcmF0ZSB0aGlzIGZpbGUsIHNvIGRvbid0IHdhbnQgdG8gcmV0YWlu
IGFuIG9sZCBjb3B5IGR1cmluZyBidWlsZHMuXG5ybSAtZiAke1RFTVBfRklMRV9ESVJ9LyR7RlVM
TF9QUk9EVUNUX05BTUV9LnhjZW50XG4iOworCQl9OworCQkzOUU5RUM5QzIxQjc1RUQ3MDBCQTVG
MTkgLyogVW5sb2NrIGtleWNoYWluICovID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAor
CQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJVbmxvY2sga2V5Y2hh
aW4iOworCQkJb3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3Jp
cHQgPSAiVU5MT0NLX1NDUklQVF9QQVRIPVwiJHtTUkNST09UfS8uLi8uLi8uLi9JbnRlcm5hbC9U
b29scy9TY3JpcHRzL3VubG9jay1zYWZhcmktZW5naW5lZXJpbmcta2V5Y2hhaW4taWYtbmVlZGVk
XCJcblxuW1sgLXggXCIke1VOTE9DS19TQ1JJUFRfUEFUSH1cIiBdXSAmJiBleGVjIFwiJHtVTkxP
Q0tfU0NSSVBUX1BBVEh9XCJcblxuZXhpdCAwXG4iOworCQl9OworCQkzOUU5RUM5RDIxQjc1RUQ3
MDBCQTVGMTkgLyogUHJvY2VzcyBQYXltZW50IGVudGl0bGVtZW50cyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5h
bWUgPSAiUHJvY2VzcyBQYXltZW50IGVudGl0bGVtZW50cyI7CisJCQlvdXRwdXRQYXRocyA9ICgK
KwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNo
ZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICIKKyI7CisJCX07CiAJCTQxNTc4
NTM3MjEyNzlDQzYwMEREMzgwMCAvKiBDb3B5IEN1c3RvbSBXZWJDb250ZW50IFJlc291cmNlcyB0
byBGcmFtZXdvcmsgUHJpdmF0ZSBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3Jp
cHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTEwNzc0
LDYgKzEwOTEzLDcgQEAKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL2NvbS5hcHBsZS5XZWJL
aXQuUGx1Z2luLjY0LnhwYyIsCiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS8kKFdLX1NUT1JB
R0VfU0VSVklDRV9QUk9EVUNUX05BTUUpLnhwYyIsCiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElS
KS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjIiwKKwkJCQkiJChC
VUlMVF9QUk9EVUNUU19ESVIpL2NvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMueHBjIiwKIAkJCSk7
CiAJCQluYW1lID0gIkNvcHkgWFBDIHNlcnZpY2VzIGZvciBlbmdpbmVlcmluZyBidWlsZHMiOwog
CQkJb3V0cHV0UGF0aHMgPSAoCkBAIC0xMDc4MywxMCArMTA5MjMsMTEgQEAKIAkJCQkiJChCVUlM
VF9QUk9EVUNUU19ESVIpL1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXMvY29tLmFwcGxlLldl
YktpdC5QbHVnaW4uNjQueHBjIiwKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL1dlYktpdC5m
cmFtZXdvcmsvWFBDU2VydmljZXMvJChXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FKS54
cGMiLAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2
aWNlcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjIiwKKwkJCQki
JChCVUlMVF9QUk9EVUNUU19ESVIpL1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXMvY29tLmFw
cGxlLldlYktpdC5QYXltZW50cy54cGMiLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2Ny
aXB0ID0gImlmIFtbIFwiJHtDT05GSUdVUkFUSU9OfVwiID09IFwiUHJvZHVjdGlvblwiIF1dOyB0
aGVuXG4gICAgZXhpdFxuZmlcblxuaWYgW1sgJHtXS19QTEFURk9STV9OQU1FfSAhPSBcIm1hY29z
eFwiIF1dOyB0aGVuXG4gICAgWFBDX1NFUlZJQ0VTX1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2aWNlc1wiXG5lbHNlXG4gICAgWFBDX1NFUlZJQ0VT
X1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vV2ViS2l0LmZyYW1ld29yay9WZXJzaW9ucy9B
L1hQQ1NlcnZpY2VzXCJcbmZpXG5cbm1rZGlyIC1wIFwiJHtYUENfU0VSVklDRVNfUEFUSH1cIlxu
ZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9LyR7V0tfU1RPUkFH
RV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS8ke1dL
X1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUV9LnhwY1wiXG5cbmlmIFtbICR7V0tfUExBVEZP
Uk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuXG4gICAgZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCIgXCIke1hQQ19TRVJWSUNFU19Q
QVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi54cGNcIlxuICAgIGRpdHRvIFwiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0LnhwY1wiIFwiJHtYUENfU0VS
VklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCJcbmZpXG4iOworCQkJ
c2hlbGxTY3JpcHQgPSAiaWYgW1sgXCIke0NPTkZJR1VSQVRJT059XCIgPT0gXCJQcm9kdWN0aW9u
XCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG5pZiBbWyAke1dLX1BMQVRGT1JNX05BTUV9ICE9
IFwibWFjb3N4XCIgXV07IHRoZW5cbiAgICBYUENfU0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJP
RFVDVFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1hQQ1NlcnZpY2VzXCJcbmVsc2VcbiAgICBYUENf
U0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvWFBDU2VydmljZXNcIlxuZmlcbm1rZGlyIC1wIFwiJHtYUENfU0VSVklDRVNfUEFU
SH1cIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5XZWJD
b250ZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5XZWJD
b250ZW50LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtpbmcueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtpbmcueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5h
cHBsZS5XZWJLaXQuUGF5bWVudHMueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBw
bGUuV2ViS2l0LlBheW1lbnRzLnhwY1wiXG5cbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
LyR7V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCIgXCIke1hQQ19TRVJWSUNF
U19QQVRIfS8ke1dLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUV9LnhwY1wiXG5cbmlmIFtb
ICR7V0tfUExBVEZPUk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuXG4gICAgZGl0dG8gXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCIgXCIke1hQ
Q19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi54cGNcIlxuICAgIGRpdHRv
IFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0LnhwY1wi
IFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCJc
bmZpXG4iOwogCQl9OwogCQlDMENFNzI4NDEyNDdFNjY4MDBCQzBFQzQgLyogR2VuZXJhdGUgRGVy
aXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpA
QCAtMTA4MzUsNiArMTA5NzYsMTQgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJMzlFOUVDOTYyMUI3NUVENzAwQkE1RjE5IC8qIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQkzOUU5RUM5NzIxQjc1RUQ3
MDBCQTVGMTkgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJNTEwMDMxRUMx
Mzc5Q0FDQjAwQzhERkU0IC8qIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xMDkwMywxMSAr
MTEwNTIsMTAgQEAKIAkJCQkyRDkxMzQ0NzIxMkNGOUYwMDAxMjhBRkQgLyogTlBSdW50aW1lT2Jq
ZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ4MjEyQ0Y5RjAwMDEyOEFGRCAv
KiBOUFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3OTQyMTJC
NkFENDAwRjQ5M0ZEIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFF
MzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUUxMTVDNzE0MTkwRjg5RTQwMEVDQzUxNiAvKiBQYXltZW50UHJvY2Vzc0lPUy5tbSBp
biBTb3VyY2VzICovLAotCQkJCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTE4RTlBQTFGMjk1
OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzk1Q0RDNjQyMUJCNUU0
RTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMzk1Q0RDNjUyMUJCNUU1MTAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzOTVDREM2RTIxQzQ3QzVFMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzk1Q0RDNkQyMUM0N0I2ODAwNzY2RTREIC8q
IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RBMjlBMjgxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMkExQ0JFQjY3QTAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyRDkxMzQ0OTIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMTExOTEsNiArMTEzMzksNyBAQAogCQkJCTUxN0E1MkQ4MUY0M0E5
REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM1NkYyRTAyMTUyQjc1MjAwRTZENURGIC8qIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTUyNjJCRDFGQjk1
MTYxMDA3MEU1NzkgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM5M0YyNTlGMjFDOEQ0NjUwMEU0Q0U4NSAvKiBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkyQTc4RTIxMkI2QUIxMDBGNDkzRkQgLyogV2ViVG91Y2hFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
MzYxRDc4MTkyODAzQkQwMDM2QTU5RCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTExMjg5LDYgKzExNDM4LDIxIEBA
CiAJCQl0YXJnZXQgPSBDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2Vz
ICovOwogCQkJdGFyZ2V0UHJveHkgPSAzN0Y3NDA3ODEyNzIxRjc0MDA5Mzg2OUIgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQkzOUU5RUM5MTIxQjc1RUQ3MDBCQTVGMTkgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7
CisJCQl0YXJnZXQgPSBFMUFDMkUyNzIwRjdCOTRDMDBCMDg5N0QgLyogVW5sb2NrIEtleWNoYWlu
ICovOworCQkJdGFyZ2V0UHJveHkgPSAzOUU5RUM5MjIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovOworCQl9OworCQkzOUU5RUM5MzIxQjc1RUQ3MDBCQTVGMTkgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7
CisJCQl0YXJnZXQgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0ICovOworCQkJ
dGFyZ2V0UHJveHkgPSAzOUU5RUM5NDIxQjc1RUQ3MDBCQTVGMTkgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOworCQl9OworCQkzOUU5RUNBOTIxQjg3NjQyMDBCQTVGMTkgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJn
ZXQgPSAzOUU5RUM5MDIxQjc1RUQ3MDBCQTVGMTkgLyogUGF5bWVudHMgKi87CisJCQl0YXJnZXRQ
cm94eSA9IDM5RTlFQ0E4MjFCODc2NDIwMEJBNUYxOSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CisJCX07CiAJCUJDNzdGOTU2MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEJD
ODI4M0Y4MTZCNEZEREUwMEEyNzhGRSAvKiBQbHVnaW4uMzIgKi87CkBAIC0xMTQ4Myw2ICsxMTY0
Nyw2MyBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkzOUU5RUM5RjIx
Qjc1RUQ3MDBCQTVGMTkgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTFBNjBCMjkxODBDQ0Q5MDAw
RjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9
IHsKKwkJCQlDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0gIkNvbmZpZ3Vy
YXRpb25zL1BheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMiOworCQkJCUlORk9QTElTVF9GSUxFID0g
IlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2Uv
SW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9aXBob25lKl0iID0gIlBh
eW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5m
by1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0iID0gIlBheW1l
bnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2UvSW5mby1p
T1MucGxpc3QiOworCQkJCVBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSBjb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9h
cHBsZXR2b3MgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRM
RU1FTlRTX0JBU0VfYXBwbGV0dnNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQ
Q19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9pb3NtYWMgPSAiUGF5bWVudHMtaU9TLW1p
bmltYWxzaW11bGF0b3IiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFT
RV9pcGhvbmVvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJ
VExFTUVOVFNfQkFTRV9pcGhvbmVzaW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19Y
UENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0Vfd2F0Y2hvcyA9ICJQYXltZW50cy1pT1Mi
OworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV93YXRjaHNpbXVsYXRv
ciA9ICJQYXltZW50cy1pT1MiOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMzlF
OUVDQTAyMUI3NUVENzAwQkE1RjE5IC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTFBNjBCMjkx
ODBDQ0Q5MDAwRjNCRjUwIC8qIFBheW1lbnRTZXJ2aWNlLnhjY29uZmlnICovOworCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlDT0RFX1NJR05fRU5USVRMRU1FTlRTX0NPQ09BX1RPVUNIX05PID0g
IkNvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlPUy5lbnRpdGxlbWVudHMiOworCQkJCUlORk9QTElT
VF9GSUxFID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVu
dFNlcnZpY2UvSW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9aXBob25l
Kl0iID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNl
cnZpY2UvSW5mby1pT1MucGxpc3QiOworCQkJCSJJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0i
ID0gIlBheW1lbnRQcm9jZXNzL0VudHJ5UG9pbnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZp
Y2UvSW5mby1pT1MucGxpc3QiOworCQkJCVBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSBjb20u
YXBwbGUuV2ViS2l0LlBheW1lbnRzOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVO
VFNfQkFTRV9hcHBsZXR2b3MgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9J
T1NfRU5USVRMRU1FTlRTX0JBU0VfYXBwbGV0dnNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOwor
CQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9pb3NtYWMgPSAiUGF5bWVu
dHMtaU9TLW1pbmltYWxzaW11bGF0b3IiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExF
TUVOVFNfQkFTRV9pcGhvbmVvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNF
X0lPU19FTlRJVExFTUVOVFNfQkFTRV9pcGhvbmVzaW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsK
KwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0Vfd2F0Y2hvcyA9ICJQYXlt
ZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV93YXRj
aHNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOwor
CQl9OworCQkzOUU5RUNBMTIxQjc1RUQ3MDBCQTVGMTkgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcg
Ki87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNPREVfU0lHTl9FTlRJVExFTUVOVFNfQ09D
T0FfVE9VQ0hfTk8gPSAiQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9TLmVudGl0bGVtZW50cyI7
CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBD
U2VydmljZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdCI7CisJCQkJIklORk9QTElTVF9G
SUxFW3Nkaz1pcGhvbmUqXSIgPSAiUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2Vy
dmljZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdCI7CisJCQkJIklORk9QTElTVF9GSUxF
W3Nkaz1tYWNvc3gqXSIgPSAiUGF5bWVudFByb2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2Vydmlj
ZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdCI7CisJCQkJUFJPRFVDVF9CVU5ETEVfSURF
TlRJRklFUiA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisJCQkJV0tfWFBDX1NFUlZJQ0Vf
SU9TX0VOVElUTEVNRU5UU19CQVNFX2FwcGxldHZvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdL
X1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9hcHBsZXR2c2ltdWxhdG9yID0gIlBh
eW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lv
c21hYyA9ICJQYXltZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvciI7CisJCQkJV0tfWFBDX1NFUlZJ
Q0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lwaG9uZW9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJ
V0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lwaG9uZXNpbXVsYXRvciA9ICJQ
YXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV93
YXRjaG9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVN
RU5UU19CQVNFX3dhdGNoc2ltdWxhdG9yID0gIlBheW1lbnRzLWlPUyI7CisJCQl9OworCQkJbmFt
ZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTUxMDAzMUYzMTM3OUNBQ0IwMEM4REZFNCAvKiBEZWJ1
ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3Vy
YXRpb25SZWZlcmVuY2UgPSBBMUVERDJEQzE4ODRCOUI1MDBCQkZFOTggLyogU2VjSXRlbVNoaW0u
eGNjb25maWcgKi87CkBAIC0xMTc1NCw2ICsxMTk3NSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVj
dGlvbjsKIAkJfTsKKwkJMzlFOUVDOUUyMUI3NUVENzAwQkE1RjE5IC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJQYXltZW50cyIgKi8gPSB7CisJCQlpc2Eg
PSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkz
OUU5RUM5RjIxQjc1RUQ3MDBCQTVGMTkgLyogRGVidWcgKi8sCisJCQkJMzlFOUVDQTAyMUI3NUVE
NzAwQkE1RjE5IC8qIFJlbGVhc2UgKi8sCisJCQkJMzlFOUVDQTEyMUI3NUVENzAwQkE1RjE5IC8q
IFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUg
PSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJ
NTEwMDMxRjIxMzc5Q0FDQjAwQzhERkU0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJTZWNJdGVtU2hpbSIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWJkYTZiZWJlY2VmMDE0ODdjZjhiZGViMzk2YTczYWJh
NGE0ZWJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMjM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudENvb3JkaW5hdG9yLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9VUkwuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBh
Z2UpCisgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlLnBhZ2VJRCgpLCAqdGhpcyk7Cit9
CisKK1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6On5QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
KnRoaXMpOworfQorCitib29sIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OnN1cHBvcnRzVmVy
c2lvbih1bnNpZ25lZCB2ZXJzaW9uKQoreworICAgIEFTU0VSVCh2ZXJzaW9uID4gMCk7CisgICAg
CisjaWYgIUVOQUJMRShBUFBMRV9QQVlfU0VTU0lPTl9WMykKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgY3VycmVudFZlcnNpb24gPSAyOworI2VsaWYgIUVOQUJMRShBUFBMRV9QQVlfU0VTU0lP
Tl9WNCkKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY3VycmVudFZlcnNpb24gPSAzOworI2Vs
c2UKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY3VycmVudFZlcnNpb24gPSA1OworI2VuZGlm
CisgICAgCisgICAgcmV0dXJuIHZlcnNpb24gPD0gY3VycmVudFZlcnNpb247Cit9CisKK2NvbnN0
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OkF2YWlsYWJsZVBheW1lbnROZXR3b3Jrc1NldCYg
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6YXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCkKK3sK
KyAgICBpZiAobV9hdmFpbGFibGVQYXltZW50TmV0d29ya3MpCisgICAgICAgIHJldHVybiAqbV9h
dmFpbGFibGVQYXltZW50TmV0d29ya3M7CisgICAgCisgICAgbV9hdmFpbGFibGVQYXltZW50TmV0
d29ya3MgPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpBdmFpbGFibGVQYXltZW50TmV0d29y
a3NTZXQoKTsKKyAgICAKKyAgICBWZWN0b3I8U3RyaW5nPiBhdmFpbGFibGVQYXltZW50TmV0d29y
a3M7CisgICAgdXNpbmcgQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzTWVzc2FnZSA9IE1lc3NhZ2Vz
OjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkF2YWlsYWJsZVBheW1lbnROZXR3b3Jr
czsKKyAgICBpZiAoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoQXZhaWxhYmxlUGF5bWVudE5l
dHdvcmtzTWVzc2FnZSgpLCBBdmFpbGFibGVQYXltZW50TmV0d29ya3NNZXNzYWdlOjpSZXBseShh
dmFpbGFibGVQYXltZW50TmV0d29ya3MpLCAwKSkgeworICAgICAgICBmb3IgKGF1dG8mIG5ldHdv
cmsgOiBhdmFpbGFibGVQYXltZW50TmV0d29ya3MpCisgICAgICAgICAgICBtX2F2YWlsYWJsZVBh
eW1lbnROZXR3b3Jrcy0+YWRkKG5ldHdvcmspOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gKm1f
YXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzOworfQorCitzdGQ6Om9wdGlvbmFsPFN0cmluZz4gUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvcjo6dmFsaWRhdGVkUGF5bWVudE5ldHdvcmsoY29uc3QgU3Ry
aW5nJiBwYXltZW50TmV0d29yaykKK3sKKyAgICBhdXRvJiBwYXltZW50TmV0d29ya3MgPSBhdmFp
bGFibGVQYXltZW50TmV0d29ya3MoKTsKKyAgICBhdXRvIHJlc3VsdCA9IHBheW1lbnROZXR3b3Jr
cy5maW5kKHBheW1lbnROZXR3b3JrKTsKKyAgICBpZiAocmVzdWx0ID09IHBheW1lbnROZXR3b3Jr
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gKnJlc3Vs
dDsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjYW5NYWtlUGF5bWVudHMo
KQoreworICAgIGJvb2wgY2FuTWFrZVBheW1lbnRzOworICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFN5bmMoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Q2Fu
TWFrZVBheW1lbnRzKCksIE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OkNhbk1ha2VQYXltZW50czo6UmVwbHkoY2FuTWFrZVBheW1lbnRzKSwgMCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gY2FuTWFrZVBheW1lbnRzOworfQorCitzdGF0
aWMgdWludDY0X3QgZ2VuZXJhdGVDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5SUQo
KQoreworICAgIHN0YXRpYyB1aW50NjRfdCBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJl
cGx5SUQ7CisgICAgCisgICAgcmV0dXJuICsrY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRS
ZXBseUlEOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmNhbk1ha2VQYXlt
ZW50c1dpdGhBY3RpdmVDYXJkKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGRvbWFpbk5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlcGx5SUQgPSBnZW5lcmF0ZUNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkUmVwbHlJRCgpOworICAgIAorICAgIG1fcGVuZGluZ0Nhbk1ha2VQYXlt
ZW50c1dpdGhBY3RpdmVDYXJkQ2FsbGJhY2tzLmFkZChyZXBseUlELCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZCht
ZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIHJlcGx5SUQpLCAwKTsKK30KKworc3RhdGlj
IHVpbnQ2NF90IGdlbmVyYXRlT3BlblBheW1lbnRTZXR1cFJlcGx5SUQoKQoreworICAgIHN0YXRp
YyB1aW50NjRfdCBvcGVuUGF5bWVudFNldHVwUmVwbHlJRDsKKyAgICAKKyAgICByZXR1cm4gKytv
cGVuUGF5bWVudFNldHVwUmVwbHlJRDsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yOjpvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlcGx5SUQgPSBnZW5lcmF0ZU9wZW5QYXltZW50
U2V0dXBSZXBseUlEKCk7CisgICAgCisgICAgbV9wZW5kaW5nT3BlblBheW1lbnRTZXR1cENhbGxi
YWNrcy5hZGQocmVwbHlJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6T3BlblBheW1lbnRTZXR1cChtZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIHJlcGx5
SUQpLCAwKTsKK30KKworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpzaG93UGF5bWVu
dFVJKGNvbnN0IFdlYkNvcmU6OlVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0JiBwYXltZW50UmVxdWVzdCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBsaW5r
SWNvblVSTFN0cmluZ3M7CisgICAgZm9yIChjb25zdCBhdXRvJiBsaW5rSWNvblVSTCA6IGxpbmtJ
Y29uVVJMcykKKyAgICAgICAgbGlua0ljb25VUkxTdHJpbmdzLmFwcGVuZChsaW5rSWNvblVSTC5z
dHJpbmcoKSk7CisgICAgCisgICAgYm9vbCByZXN1bHQ7CisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpT
aG93UGF5bWVudFVJKG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBsaW5rSWNvblVSTFN0cmluZ3Ms
IHBheW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6U2hvd1BheW1lbnRVSTo6UmVwbHkocmVzdWx0KSwgMCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3I6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1l
bnRNZXJjaGFudFNlc3Npb24mIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpDb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihwYXltZW50TWVyY2hhbnRTZXNzaW9uKSwgMCk7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ01l
dGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRl
PiYmIHVwZGF0ZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24odXBkYXRlKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTaGlw
cGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24odXBkYXRlKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKSwgMCk7Cit9CisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkKK3sK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OkNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KSwgMCk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6YWJvcnRQYXltZW50U2Vzc2lvbigpCit7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5OjpBYm9ydFBheW1lbnRTZXNzaW9uKCksIDApOworfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3I6OmNhbmNlbFBheW1lbnRTZXNzaW9uKCkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OkNhbmNlbFBheW1lbnRTZXNzaW9uKCksIDApOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3I6OnBheW1lbnRDb29yZGluYXRvckRlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRo
aXM7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6dmFsaWRhdGVNZXJjaGFu
dChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25VUkxTdHJpbmcpCit7CisgICAgcGF5bWVudFByb2Nl
c3NDb29yZGluYXRvcigpLnZhbGlkYXRlTWVyY2hhbnQoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVS
TCgpLCB2YWxpZGF0aW9uVVJMU3RyaW5nKSk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvcjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXlt
ZW50KQoreworICAgIHBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKS5kaWRBdXRob3JpemVQYXlt
ZW50KHBheW1lbnQpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmRpZFNl
bGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit7CisgICAgcGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvcigpLmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9k
KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmIHNoaXBwaW5nQ29udGFjdCkK
K3sKKyAgICBwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkuZGlkU2VsZWN0U2hpcHBpbmdDb250
YWN0KHNoaXBwaW5nQ29udGFjdCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
cjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBw
YXltZW50TWV0aG9kKQoreworICAgIHBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKS5kaWRTZWxl
Y3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3I6OmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkKK3sKKyAgICBwYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yKCkuZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsKK30KKwordm9pZCBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJl
cGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtlUGF5bWVudHMpCit7CisgICAgYXV0
byBjYWxsYmFjayA9IG1fcGVuZGluZ0Nhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkQ2FsbGJh
Y2tzLnRha2UocmVxdWVzdElEKTsKKyAgICBjYWxsYmFjayhjYW5NYWtlUGF5bWVudHMpOworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6Om9wZW5QYXltZW50U2V0dXBSZXBseSh1
aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBt
X3BlbmRpbmdPcGVuUGF5bWVudFNldHVwQ2FsbGJhY2tzLnRha2UocmVxdWVzdElEKTsKKyAgICBj
YWxsYmFjayhyZXN1bHQpOworfQorCitXZWJDb3JlOjpQYXltZW50Q29vcmRpbmF0b3ImIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3I6OnBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKQoreworICAg
IHJldHVybiBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCk7Cit9CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVu
dHMvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWNiYmNh
ZGY4NTcyN2Y3ODMxZDczNTU2ZWE0Yzc5ZjRjMDJlZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3Iu
aApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5oPgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIElQ
QyB7CitjbGFzcyBEYXRhUmVmZXJlbmNlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBQYXltZW50Q29vcmRpbmF0b3I7CitjbGFzcyBQYXltZW50Q29udGFjdDsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9yQ2xpZW50
LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKFdlYlBhZ2UmKTsKKyAgICB+UGF5bWVudFByb2Nlc3ND
b29yZGluYXRvcigpOworICAgIAorcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpQYXltZW50Q29v
cmRpbmF0b3JDbGllbnQuCisgICAgYm9vbCBzdXBwb3J0c1ZlcnNpb24odW5zaWduZWQgdmVyc2lv
bikgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHZhbGlkYXRlZFBheW1lbnRO
ZXR3b3JrKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuTWFrZVBheW1lbnRz
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25z
dCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlOwor
ICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlOworICAgIGJvb2wgc2hvd1BheW1lbnRVSShjb25z
dCBXZWJDb3JlOjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VVJM
PiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29u
c3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQg
Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0
VXBkYXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBvdmVycmlkZTsKKyAgICAKKyAgICB2
b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbmNlbFBheW1l
bnRTZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgCisgICAgdm9pZCBwYXltZW50Q29vcmRpbmF0b3JE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICAKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworICAgIAorICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCB2
YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVSTFN0cmluZyk7CisgICAg
dm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmKTsKKyAgICB2
b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworICAgIHZvaWQgZGlkU2VsZWN0U2hp
cHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0Jik7CisgICAgdm9pZCBk
aWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKTsKKyAg
ICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7CisgICAgdm9pZCBjYW5NYWtlUGF5bWVu
dHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtlUGF5
bWVudHMpOworICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJ
RCwgYm9vbCByZXN1bHQpOworICAgIAorICAgIFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvciYg
cGF5bWVudFByb2Nlc3NDb29yZGluYXRvcigpOworICAgIAorICAgIHVzaW5nIEF2YWlsYWJsZVBh
eW1lbnROZXR3b3Jrc1NldCA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+OworICAgIGNvbnN0IEF2YWlsYWJsZVBheW1lbnROZXR3b3Jrc1NldCYgYXZhaWxhYmxlUGF5
bWVudE5ldHdvcmtzKCk7CisgICAgCisgICAgV2ViUGFnZSYgbV93ZWJQYWdlOworICAgIAorICAg
IEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4+IG1fcGVuZGluZ0Nh
bk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0
X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4+IG1fcGVuZGluZ09wZW5QYXltZW50U2V0dXBD
YWxsYmFja3M7CisgICAgCisgICAgc3RkOjpvcHRpb25hbDxBdmFpbGFibGVQYXltZW50TmV0d29y
a3NTZXQ+IG1fYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzOworfTsKKworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50
cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTI3
MWU4NjQ2NWUxYWM3YjQ1OGE3ZWE5MDIzNTdiMzFiZDZlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM5IEBACisjIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorIy8KKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IgeworCisg
ICAgVmFsaWRhdGVNZXJjaGFudChTdHJpbmcgdmFsaWRhdGlvblVSTFN0cmluZykKKyAgICBEaWRB
dXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBheW1lbnQgcGF5bWVudCkKKyAgICBEaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2QpCisgICAgRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0
KFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHNoaXBwaW5nQ29udGFjdCkKKyAgICBEaWRTZWxlY3RQ
YXltZW50TWV0aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QgcGF5bWVudE1ldGhvZCkKKyAgICBE
aWRDYW5jZWxQYXltZW50U2Vzc2lvbigpCisgICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNh
cmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQorICAgIE9w
ZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9X
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGE2ZDBh
N2I1NjkyYjExOWZjNjdmNDI3ZGQ0NzllZTE4ZDM4MTYzYzAuLjJkNGNkMmM3ZDE2YTQ0NGI5NjJi
NTMwZmQ1NzdiNGM0YWVkZjViZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMjMsMTYgKzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKICAqLwotI2lmIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oIgogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKIAorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFu
YWdlci5oPgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTQ4LDE3ICs0Nyw0MiBAQCBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6fldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkKICAgICBtX2Nv
bm5lY3Rpb24tPmludmFsaWRhdGUoKTsKIH0KIAotdm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
Ojp2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVSTFN0cmluZykKK3sK
KyAgICBVTlVTRURfUEFSQU0odmFsaWRhdGlvblVSTFN0cmluZyk7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7CisK
K30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQXV0aG9yaXplUGF5
bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIp
Cit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGluZ01l
dGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogeworfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmIHNoaXBwaW5nQ29udGFjdCkK
K3sKIH0KIAordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2VsZWN0UGF5
bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKQor
eworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRDYW5jZWxQYXlt
ZW50U2Vzc2lvbigpCit7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBi
b29sIGNhbk1ha2VQYXltZW50cykKK3sKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbjo6b3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBy
ZXN1bHQpCit7Cit9CisKKwogdm9pZCBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIGF1dG8gcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCBhNDE3N2Y4ZjJlYzdjNTUzODc3ZDFmYjkwNDI2ZDEyM2MxNmE2MjBmLi45YTkwNTI3ZGIx
OGE0ZTM1MjQzZDk1Yjk1NDI3NjdjNWQ2MDY4NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24uaApAQCAtMzAsMTcgKzMwLDE1IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU1dTZXJ2ZXIu
aD4KLSNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudENvbnRhY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Bh
eW1lbnRNZXRob2QuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCi1uYW1lc3BhY2Ug
UEFMIHsKLWNsYXNzIFNlc3Npb25JRDsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24+LCBwcml2YXRlIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
LCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgCitjbGFzcyBXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlciwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIElQQzo6TWVzc2FnZVNlbmRlciB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4g
Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikK
ICAgICB7CkBAIC00OSwxMyArNDcsMjIgQEAgcHVibGljOgogICAgIH5XZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOwogICAgIAogICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigp
IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorICAgICAgICAKKyAgICB2b2lkIHZhbGlk
YXRlTWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKTsKKyAgICB2b2lk
IGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVudCYpOworICAgIHZvaWQg
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmKTsKKyAgICB2b2lkIGRpZFNl
bGVjdFBheW1lbnRNZXRob2QoY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYpOworICAgIHZv
aWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50c1dp
dGhBY3RpdmVDYXJkUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBib29sIGNhbk1ha2VQYXltZW50
cyk7CisgICAgdm9pZCBvcGVuUGF5bWVudFNldHVwUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBi
b29sIHJlc3VsdCk7CisKIAogcHJpdmF0ZToKICAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTg5OTgwN2M2MDNi
YmUyMTAwMjVmNzgxZGU0MjBmODgyYTY5ZTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisjLworCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJP
Q0VTUykKKworbWVzc2FnZXMgLT4gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24geworCisg
ICAgVmFsaWRhdGVNZXJjaGFudChTdHJpbmcgdmFsaWRhdGlvblVSTFN0cmluZykKKyAgICBEaWRB
dXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBheW1lbnQgcGF5bWVudCkKKyAgICBEaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2QpCisgICAgRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0
KFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHNoaXBwaW5nQ29udGFjdCkKKyAgICBEaWRTZWxlY3RQ
YXltZW50TWV0aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QgcGF5bWVudE1ldGhvZCkKKyAgICBE
aWRDYW5jZWxQYXltZW50U2Vzc2lvbigpCisgICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNh
cmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQorICAgIE9w
ZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggYjkyZWViZmY5MGY5YmNkMzQ0ODhkYTdlNDk2
N2I5ZDM0OTg5MjUxYi4uYjQwNzg5M2NlZDNjMGM2NTE4YTdlMzUzNjU1NmRhZjIwMzhjNzA2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmKSBmaW5hbDsKIAogICAgIHZvaWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY2hlZHVsZVBh
eW1lbnRKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZv
aWQgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
N2YwNDQzZTVjNmViMzU4MjM1MmU5N2ZjM2M5NWM0ZmFjYWRiYmQ5Zi4uNGM3NDQ4MGFiYmI5Mjhl
ODQ1NmVjNTdlZWI5OWUwZmJhZGQzNTZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJQYWdlQmFubmVyLmgiCisjaW5jbHVkZSAiUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVz
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCkBA
IC00NTIsNyArNDUzLDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VDb25maWd1cmF0aW9u
LnVzZXJDb250ZW50UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlci5wdHIoKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gVmlzaXRlZExpbmtUYWJsZUNv
bnRyb2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKTsKIAot
I2lmIEVOQUJMRShBUFBMRV9QQVkpCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wYXltZW50Q29vcmRpbmF0b3JD
bGllbnQgPSBuZXcgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcigqdGhpcyk7CisjZWxpZiBFTkFC
TEUoQVBQTEVfUEFZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnBheW1lbnRDb29yZGluYXRvckNs
aWVudCA9IG5ldyBXZWJQYXltZW50Q29vcmRpbmF0b3IoKnRoaXMpOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzMzE1YWMyOTEyMWRiMWE5ZDQ5
NWRiZTI3MTcxZjQ1NTZiOGYxNjE3Li5hNjBkNmEyMGMzODA1ZjViNDBkZmJkYWQ4YTViOTcyZjdm
NjFiODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0zOTAs
NiArMzkwLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKICAgICBlbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBlbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbigpOwogCiAgICAgc2V0VGVybWluYXRpb25UaW1lb3V0KHBhcmFtZXRlcnMudGVybWlu
YXRpb25UaW1lb3V0KTsKIApAQCAtMTI1NywxNyArMTI1OCwxNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OndlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aQogICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwog
fQogCi1XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25J
RCkKK1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX3dlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uKSB7CiAgICAgICAgIElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVj
dGlvbklkZW50aWZpZXI7CiAKLSAgICAgICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oaW5pdGlhbFNlc3Npb25JRCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlm
aWVyKSwgMCkpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGlmICgh
SVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikp
CisgICAgICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCksIE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHko
ZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpCisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1Zh
bGlkKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCkpKQogICAgICAgICAgICAgQ1JB
U0goKTsKIAotICAgICAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0gV2ViVG9Q
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSWRlbnRpZmllcik7Cisg
ICAgICAgIG1fd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCkp
OwogCiAgICAgfQogICAgIHJldHVybiAqbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDlhMzQzOWY3NTYzNjY1NjVl
MzY2MzNkMmI1MTA4OGYwYzQ1MGYyYTcuLmUwODQzZjVmZWQ3NGM3NzczNTExYjEwMThmNDczMzE0
MTI3MDg1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTgwLDcg
KzE4MCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCiAgICAgdm9p
ZCB3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbiopOwotICAgIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklEKTsKKyAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJlV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNT
KQogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0
Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUg
c2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3
ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVk
UHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAg
RVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRl
bnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBf
cGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRl
RGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVz
b3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVY
UEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJv
Y2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6
ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJjM2Q2M2E5ZWE4N2MyNmVjYTBkMWJmZDY2Nzc2
NTczMDkxNi4uZTY0MDNlOWUwZmY2ZWFiZGE5ZWNlMGYyOWNmZmE2NWU1NTVjZGM4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KQEAgLTEwNDYsNiArMTA0Niw5IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIFNlcnZpY2VXb3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5
bWVudCBwcm9jZXNzIGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIp
OworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5v
dCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdl
YlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50SWdu
b3JpbmdQcmV3YXJtZWQpOwogCkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3Jr
ZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hv
dWxkIGJlIG5vIHBheW1lbnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJW
aWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRp
Zmllcik7CisKICAgICAvLyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBo
YXMgc2VydmljZSB3b3JrZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24u
Z2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358014</attachid>
            <date>2018-12-21 19:17:23 -0800</date>
            <delta_ts>2020-09-28 09:50:00 -0700</delta_ts>
            <desc>Patch #2</desc>
            <filename>bug-191298-20181221191721.patch</filename>
            <type>text/plain</type>
            <size>236725</size>
            <attacher name="Zamiul Haque">zhaque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NTkwMWYzMjI3NGM4NjY1M2MxZWY0NThlZmE3MGQ0OWNhMWI5OGI2Li4wMTM2OWRkMTcyY2VlMmFm
YjQxYzI2MDg1ZWFmYmU1NzhlZmEyMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0xMS0xNCAgWmFtaXVsIEhhcXVlICA8emhhcXVlQGFwcGxlLmNvbT4K
KworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMjk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxOC0xMS0yNyAgWmFtaXVsIEhhcXVlICA8
emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZl
YXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA5OTc1YjI3ODZkODEwNWUwYTgzZTU4ZmU3OTU4ZmIx
ZDNlNGYwYTAuLmFkOTA1YjQ4NTViODhjZjk2Njg4ODg1ZDU3NjBjMTQwZGVjMjQwYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMi0yMCAgWmFtaXVsIEhhcXVlICA8emhhcXVl
QGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50IHByb2Nlc3Mgc3R1YiB3aXRoIGZlYXR1cmUg
ZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTgtMTEtMjcgIFphbWl1bCBI
YXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIg
d2l0aCBmZWF0dXJlIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDQzNjA5YTVhNDZjNjIwMmE1
NGIzZDkyMWYxYjg4MzgxNDFmYTllMDcuLmU2OWI1OTkyMjY0NTk3YjFmOGVlZWRmZTVhZWQxMDA3
MWRmMWYwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEyLTIw
ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBwbGUuY29tPgorCisgICAgICAgIFBheW1lbnQgcHJv
Y2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaDoKKyAgICAg
ICAgKiBwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLm1tOgorICAgICAgICAqIHBhbC9zcGkvY29j
b2EvUGFzc0tpdFNQSS5oOgorCiAyMDE4LTExLTI3ICBaYW1pdWwgSGFxdWUgIDx6aGFxdWVAYXBw
bGUuY29tPgogCiAgICAgICAgIFBheW1lbnQgcHJvY2VzcyBzdHViIHdpdGggZmVhdHVyZSBmbGFn
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGU3NjYzMTNmMGY0YTRiNzQzYzJhMDk2ZTgwY2Y2ZWM3ZDQ4NjEzMzEuLmM5
ODNhZjM2M2E2Y2Y4YWU2MTU4NzQ5ZTE1MDJkOGJmNTRhNzk4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTMgQEAKKzIwMTgtMTItMjAgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
UGF5bWVudFNlcnZpY2UueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0
OjpQYXltZW50UHJvY2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAgICAg
ICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmg6CisgICAgICAgICogUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogUGF5bWVudFByb2Nl
c3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaDoKKyAgICAgICAgKiBQYXlt
ZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBpbml0V2l0aFBh
eW1lbnRDb29yZGluYXRvclByb3h5Ol0pOgorICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0
aW9uQ29udHJvbGxlckRlbGVnYXRlIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV0tQYXltZW50
QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRy
b2xsZXI6ZGlkUmVxdWVzdE1lcmNoYW50U2Vzc2lvbjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50
QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRy
b2xsZXI6ZGlkQXV0aG9yaXplUGF5bWVudDpoYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1BheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlcjpkaWRTZWxlY3RQYXltZW50TWV0aG9kOmhhbmRsZXI6XSk6CisgICAgICAgICgtW1dL
UGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgcGF5bWVudEF1dGhvcml6YXRp
b25Db250cm9sbGVyOmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kOmhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgcGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyOmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdDpoYW5kbGVyOl0pOgor
ICAgICAgICAoLVtXS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIHBheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjpkaWRBdXRob3JpemVQYXltZW50OmNvbXBsZXRpb246
XSk6CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUg
cGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kOmNv
bXBsZXRpb246XSk6CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVy
RGVsZWdhdGUgcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOmRpZFNlbGVjdFBheW1lbnRN
ZXRob2Q6Y29tcGxldGlvbjpdKToKKyAgICAgICAgKC1bV0tQYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXJEZWxlZ2F0ZSBwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6ZGlkU2VsZWN0
U2hpcHBpbmdDb250YWN0OmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLUGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUgcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVy
RGlkRmluaXNoOl0pOgorICAgICAgICAoV2ViS2l0Ojp0b1BLU2hpcHBpbmdNZXRob2QpOgorICAg
ICAgICAoV2ViS2l0Ojp0b1BLUGF5bWVudFJlcXVlc3QpOgorICAgICAgICAqIFBheW1lbnRQcm9j
ZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp2YWxpZGF0ZU1lcmNoYW50KToKKyAgICAgICAgKFdl
YktpdDo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEF1dGhvcml6ZVBheW1lbnQp
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KToKKyAgICAgICAgKFdlYktpdDo6
UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNlbGVjdFBheW1lbnRNZXRob2QpOgor
ICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FuY2Vs
UGF5bWVudFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSk6CisgICAgICAgIChX
ZWJLaXQ6OlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpvcGVuUGF5bWVudFNldHVwUmVw
bHkpOgorICAgICAgICAqIFBheW1lbnRQcm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaDoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eUNvY29hLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OnRvUEtQYXltZW50UmVx
dWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50UHJvY2Vzc1Byb3h5Ojp+UGF5bWVudFByb2Nl
c3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmdldFBheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJv
eHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlk
Q3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQ
YXltZW50UHJvY2Vzc1Byb3h5OjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6fldlYlByb2Nlc3NQb29sKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppbml0aWFsaXpl
TmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6Z2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnJlbW92ZVByZXZhbGVudERvbWFpbnMpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6dmFsaWRhdGVNZXJjaGFudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRv
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRBdXRob3JpemVQYXltZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNlbGVjdFNoaXBwaW5n
TWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpkaWRTZWxlY3RQYXltZW50TWV0aG9kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhbmNlbFBheW1lbnRTZXNz
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNh
bk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6b3BlblBheW1lbnRTZXR1cFJlcGx5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjptX3Nob3VsZEF0dGFjaERyYXdpbmdBcmVhT25QYWdlVHJhbnNpdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpl
bnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisKIDIwMTgtMTEtMjcgIFphbWl1bCBIYXF1ZSAgPHpoYXF1ZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUGF5bWVudCBwcm9jZXNzIHN0dWIgd2l0aCBmZWF0dXJlIGZsYWcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBhZDZiNWYzODllMzc0YWZkN2MwNTA4NDExMDc4
NzllZmE4MmE3YWU1Li5kODBjM2I1MDYzY2JkOGE1M2JjNGZkYmMxYTJmMDhjM2VlNjZmMTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00MDEsNCArNDAxLDQgQEAgRU5BQkxFX1dJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAK
IEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkg
JChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChF
TkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5B
QkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVO
QUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
KSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQo
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkg
JChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFC
TEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAk
KEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFC
TEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFU
QUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFH
X1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFM
X0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRklMVEVS
U19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFT
RSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVf
SU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVS
RV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFC
TEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJV
VEUpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9D
U1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFH
RVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNT
KSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9Y
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0p
ICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9O
QVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFZ
TUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5B
QkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQo
RU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJM
RV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RS
RUFNU19BUEkpICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9f
VFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVf
V0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlOR19BUEkpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCTUVU
QUwpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykg
JChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChF
TkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChF
TkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVf
Q1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFC
TEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVf
REFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RB
VEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRkFTVF9KSVRfUEVS
TUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVf
SU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZF
TlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAkKEVO
QUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19D
T05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVH
QUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAk
KEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJ
QV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElB
X1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUykgJChFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQo
RU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JF
U09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxF
X1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJW
SUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19B
UEkpICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVM
RVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFC
TEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxF
X1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVP
KSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0sp
ICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCQVNT
RU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlOR19BUEkpICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCTUVUQUwpICQo
RU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CmluZGV4IGFkNmI1ZjM4OWUzNzRhZmQ3YzA1MDg0MTEwNzg3OWVmYTgyYTdhZTUuLmQ4MGMzYjUw
NjNjYmQ4YTUzYmM0ZmRiYzFhMmYwOGMzZWU2NmYxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00MDEsNCAr
NDAxLDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVO
QUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5B
QkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
T05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RF
VklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJM
RV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJM
RV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9D
U1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVNI
Qk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREFUQUNV
RV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkg
JChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNT
SU9OUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVf
SU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRM
KSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxF
X0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
Q1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEp
ICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NB
UFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VT
U0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01I
VE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05U
RU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
KSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFC
TEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZ
TlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5B
QkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5B
QkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VS
X01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJ
QVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05f
TU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9G
VUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFC
TEVfV0VCX1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NU
UkVBTUlOR19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dF
QkdQVSkgJChFTkFCTEVfV0VCTUVUQUwpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZP
Uk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
X09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9Q
QVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQ
UExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxF
X0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNf
VEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lN
QUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1Nf
U0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NT
U19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9T
Q0hFTUVfSEFORExFUikgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfREFS
S19NT0RFX0NTUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT04pICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1F
TlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAk
KEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykg
JChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikg
JChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQ
QUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElP
Tl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAk
KEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0tFWUJPQVJE
X0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJM
RV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJM
RV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVf
TUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9N
RVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxF
KSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBWU1FTlRfUFJPQ0VT
UykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVO
QUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSX01FU1NB
R0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05f
Rk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NS
RUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VC
X1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlO
R19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkg
JChFTkFCTEVfV0VCTUVUQUwpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChF
TkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggYWQ2YjVmMzg5ZTM3NGFmZDdjMDUw
ODQxMTA3ODc5ZWZhODJhN2FlNS4uZDgwYzNiNTA2M2NiZDhhNTNiYzRmZGJjMWEyZjA4YzNlZTY2
ZjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDAxLDQgKzQwMSw0IEBAIEVOQUJMRV9XSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwog
CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVO
QUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQp
ICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1F
TlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAk
KEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQo
RU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElP
TikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAk
KEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQp
ICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykg
JChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJB
R19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRB
TF9GRUFUVVJFUykgJChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxF
X0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RV
UkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5B
QkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklC
VVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lf
Q1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5B
R0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVT
UykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJP
WCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElB
X1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFN
KSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9M
T0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVO
QUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAk
KEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFC
TEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NU
UkVBTVNfQVBJKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJM
RV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVP
X1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxF
X1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJBU1NFTUJMWV9TVFJFQU1JTkdfQVBJKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQk1F
VEFMKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcp
ICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkg
JChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5B
QkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9D
U1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQo
RU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQo
RU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5B
QkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9E
QVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZBU1RfSklUX1BF
Uk1JU1NJT05TKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxF
X0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChF
TkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykg
JChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVE
SUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJ
QV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFC
TEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9S
X0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQVlNRU5UX1BST0NFU1MpICQoRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAk
KEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1P
VEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9S
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJM
RV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VS
VklDRV9XT1JLRVIpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNf
QVBJKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RF
TEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5B
QkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJM
RV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNL
KSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQkFT
U0VNQkxZKSAkKEVOQUJMRV9XRUJBU1NFTUJMWV9TVFJFQU1JTkdfQVBJKSAkKEVOQUJMRV9XRUJH
TCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQk1FVEFMKSAk
KEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmgKaW5kZXggYzA4NzQ4
OTU1NjUxZDljYzNiN2YzMTUzZGY1NTI5ZTE2MzNkM2VhMS4uNTNhMzcyZDA0MDQ0ODk4MDA4MzA0
YjkwNmNlZjliMjU0OTM3M2E0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9QYXNzS2l0U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L1Bhc3NLaXRTb2Z0TGluay5oCkBAIC0zNiw2ICszNiw3IEBAIFNPRlRfTElOS19DTEFTU19GT1Jf
SEVBREVSKFBBTCwgUEtDb250YWN0KQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQ
S1Bhc3NMaWJyYXJ5KQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1BheW1lbnQp
CiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFBLUGF5bWVudEF1dGhvcml6YXRpb25W
aWV3Q29udHJvbGxlcikKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgUEtQYXltZW50
QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUws
IFBLUGF5bWVudE1ldGhvZCkKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgUEtQYXlt
ZW50TWVyY2hhbnRTZXNzaW9uKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBQS1Bh
eW1lbnRSZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9Q
YXNzS2l0U29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRT
b2Z0TGluay5tbQppbmRleCAzMmY3YmUwOWNhYWM1NmYwZjA2ZjJkODc3M2U3N2MwYjg0ZGU4Zjkz
Li4wODY0NTJiYWJkOTgzN2FkZGUxOWI0ZjRmOGM0OWUwYjAyZDg3OGI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5tbQpAQCAtMzksNiArMzks
NyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNz
S2l0LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBQYXNzS2l0LCBQS0NvbnRhY3QsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQsIFBLUGFzc0xpYnJhcnksIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBhc3NLaXQs
IFBLUGF5bWVudCwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIsIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFBh
c3NLaXQsIFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlciwgUEFMX0VYUE9SVCkK
IFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgUGFzc0tpdCwgUEtQ
YXltZW50TWVyY2hhbnRTZXNzaW9uLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBQYXNzS2l0LCBQS1BheW1lbnRNZXRob2QsIFBBTF9FWFBP
UlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9QYXNzS2l0
U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmgKaW5k
ZXggMTg5NThlOTI2MTRjMWUzYjZhNGYwNGE2OGFkMTQzM2FiMTk3MTgxNy4uOGI4YmFlYTY5NzFj
OTg2MzEzOWUyYTUxMjk2NjBiNWVlMDYzNjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvUGFzc0tpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaApAQCAtNDAsNiArNDAsNyBAQCBXVEZfRVhURVJOX0Nf
RU5ECiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8UGFzc0tpdC9QYXNz
S2l0Lmg+CisjaW1wb3J0IDxQYXNzS2l0L1BLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVy
X1ByaXZhdGUuaD4KICNpbXBvcnQgPFBhc3NLaXQvUEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdD
b250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQgPFBhc3NLaXQvUEtQYXltZW50UmVxdWVzdF9Q
cml2YXRlLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFz
ZVRhcmdldC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdl
dC54Y2NvbmZpZwppbmRleCA0MDVkNjNiYmIwMTJhMzllNjVkYThiYThiODkwODM1OGEyNThiZDZj
Li5lZWI3YTI2YWRhMTQ2M2QyYWQ1YThkY2ZkYjIwNmE0ZDYzY2YzZTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKKysrIGIvU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCkBAIC0xMTEsNiAr
MTExLDggQEAgV0tfSEFWRV9DT1JFX1BSRURJQ1RJT05bc2RrPW1hY29zeCpdW2FyY2g9aTM4Nl0g
PSBOTzsKIFdLX0NPUkVfUFJFRElDVElPTl9ERUZJTkVTID0gJChXS19DT1JFX1BSRURJQ1RJT05f
REVGSU5FU18kKFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OKSk7CiBXS19DT1JFX1BSRURJQ1RJT05f
REVGSU5FU19ZRVMgPSBIQVZFX0NPUkVfUFJFRElDVElPTjsKIAorV0tfUEFZTUVOVF9TRVJWSUNF
X1BST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisKIFdLX1NUT1JBR0Vf
U0VSVklDRV9QUk9EVUNUX05BTUUgPSAkKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUVf
JChXS19VU0VfTEVHQUNZX1NUT1JBR0VfU0VSVklDRV9OQU1FKSk7CiBXS19TVE9SQUdFX1NFUlZJ
Q0VfUFJPRFVDVF9OQU1FXyA9ICQoV0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRV9OTyk7
CiBXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FX05PID0gY29tLmFwcGxlLldlYktpdC5T
dG9yYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggYWQ2YjVmMzg5ZTM3NGFmZDdjMDUwODQxMTA3ODc5ZWZhODJh
N2FlNS4uZDgwYzNiNTA2M2NiZDhhNTNiYzRmZGJjMWEyZjA4YzNlZTY2ZjEwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CkBAIC00MDEsNCArNDAxLDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVO
QUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hT
TFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Yz
KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFO
SUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05T
KSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChF
TkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdf
QVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVW
RUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAk
KEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVS
KSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAk
KEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChF
TkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNU
X0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExf
SklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAk
KEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJV
VEUpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0xBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVO
QUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9F
VkVOVFMpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFC
TEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9T
VEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQp
ICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05B
VklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9Q
REZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZG
SVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5B
QkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElT
VElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAk
KEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFC
TEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1dFQl9D
UllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRF
Q1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAk
KEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VT
RVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9B
VVRITikgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dF
QkFTU0VNQkxZX1NUUkVBTUlOR19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIp
ICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCTUVUQUwpICQoRU5BQkxFX1dJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVO
QUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQp
ICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1F
TlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAk
KEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQo
RU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElP
TikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAk
KEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQp
ICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykg
JChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJB
R19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRB
TF9GRUFUVVJFUykgJChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxF
X0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RV
UkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5B
QkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklC
VVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lf
Q1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5B
R0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVT
UykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJP
WCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElB
X1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFN
KSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
TkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BB
WU1FTlRfUFJPQ0VTUykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRf
UExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElT
VCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JF
U09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykg
JChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJM
RV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1dFQl9DUllQVE8p
ICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04p
ICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJM
RV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5U
QVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxF
TUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikg
JChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VN
QkxZX1NUUkVBTUlOR19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5B
QkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCTUVUQUwpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1BheW1lbnRTZXJ2aWNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9QYXltZW50U2VydmljZS54Y2NvbmZpZwppbmRleCA3NGQzODg4YzhkZjBiZGFiZDNh
MzI3MTRlNjEwY2IyZWZlNTc0MzhkLi5hY2I1YzNkOGJiZjZlMTYzMzJjYjhhMjY2MDUxMGZlYjQx
NTczNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRT
ZXJ2aWNlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVu
dFNlcnZpY2UueGNjb25maWcKQEAgLTI1LDkgKzI1LDE0IEBACiAKIFdLX1BBWU1FTlRfRU5USVRM
RU1FTlRTX1JFU1RSSUNURURfTk8gPSA7CiAKK1dLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVO
VFNfQkFTRSA9ICQoV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFXyQoV0tfUExB
VEZPUk1fTkFNRSkpOworV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lwaG9u
ZW9zID0gUGF5bWVudHMtaU9TOworV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNF
X2lwaG9uZXNpbXVsYXRvciA9IFBheW1lbnRzLWlPUzsKKworQ09ERV9TSUdOX0VOVElUTEVNRU5U
U19DT0NPQV9UT1VDSF9OTyA9ICQoV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF8k
KFdLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UUykpOwogQ09ERV9TSUdOX0VOVElUTEVNRU5U
U19DT0NPQV9UT1VDSF9OTyA9ICQoV0tfUEFZTUVOVF9FTlRJVExFTUVOVFNfUkVTVFJJQ1RFRF8k
KFdLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UUykpOwogT1RIRVJfQ09ERV9TSUdOX0ZMQUdT
ID0gJChXS19MSUJSQVJZX1ZBTElEQVRJT05fQ09ERV9TSUdOX0ZMQUdTKTsKIAotUFJPRFVDVF9O
QU1FID0gJChXS19QQVlNRU5UX1NFUlZJQ0VfUFJPRFVDVF9OQU1FKTsKK1BST0RVQ1RfTkFNRSA9
IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CiBQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0g
JChQUk9EVUNUX05BTUUpOwogSU5GT1BMSVNUX0ZJTEVbc2RrPWlwaG9uZSpdID0gUGF5bWVudFBy
b2Nlc3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2VydmljZS9JbmZvLWlPUy5w
bGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudHMt
aU9TLW1pbmltYWxzaW11bGF0b3IuZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9QYXltZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvci5lbnRpdGxlbWVudHMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmQ3YWEzMjVlODk4OTA5MGU3ZDk0MmU0ZjBhZWFkMjg4YzNlNmMzZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9TLW1pbmlt
YWxzaW11bGF0b3IuZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBs
ZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5
TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5zZWF0
YmVsdC1wcm9maWxlczwva2V5PgorCTxhcnJheT4KKwkJPHN0cmluZz5jb20uYXBwbGUuV2ViS2l0
LlBheW1lbnRzPC9zdHJpbmc+CisJPC9hcnJheT4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlPUy5lbnRpdGxlbWVu
dHMgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BheW1lbnRzLWlPUy5lbnRpdGxlbWVu
dHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGVhNDBiYmRjNjhiMjZmMDRjNDRhMTlkYWM4YTE1YzNkNWZjYWQ1Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGF5bWVudHMt
aU9TLmVudGl0bGVtZW50cwpAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQ
TElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w
LmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Y29tLmFwcGxlLnBh
eW1lbnQuYWxsLWFjY2Vzczwva2V5PgorCTx0cnVlLz4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRl
LmluLWFwcC1wYXltZW50czwva2V5PgorCTx0cnVlLz4KKwk8a2V5PnNlYXRiZWx0LXByb2ZpbGVz
PC9rZXk+CisJPGFycmF5PgorCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM8L3N0
cmluZz4KKwk8L2FycmF5PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCA4NjA1ZTdiNmNjYWRlZGFiOWM4ZDc3ZWE3ZGEwNzgyZDNlNTM0ODM4Li45MjBj
MDg5YWI5ZTQwNTY0MDRkM2VhMWVjNmE4Mzk4NjNmMjNlZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC01Miw2ICs1Miw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKKyAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUGF5bWVudHMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTIyLDYgKzEyMyw4IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSBcCiAg
ICAgUGF5bWVudFByb2Nlc3MgXAogICAgIFBheW1lbnRQcm9jZXNzUHJveHkgXAorICAgIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3IgXAorICAgIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eSBcCiAgICAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFBsdWdpbkNvbnRy
b2xsZXJQcm94eSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCkBAIC0xODcsNiArMTkwLDcgQEAgTUVT
U0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIFwKICAgICBXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gXAogICAgIFdlYlNvY2tldFN0cmVhbSBcCisgICAg
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gXAogICAgIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlciBcCiAgICAgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkgXAogIwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNl
L1BheW1lbnRTZXJ2aWNlRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvRW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2VydmljZUVudHJ5UG9pbnQubW0K
aW5kZXggYzc5MjVlZDNjMjg1ZWQ2NzFlODA4NWI2NDZhOTY0N2M0NTllMmU1OC4uZGNmZmM4Yjhk
OTQzZmQ3NTMyMTc4NjJkYWU0MGM1MWVhY2NlZWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9FbnRyeVBvaW50L2lvcy9YUENTZXJ2aWNlL1BheW1lbnRTZXJ2aWNl
RW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL0VudHJ5UG9p
bnQvaW9zL1hQQ1NlcnZpY2UvUGF5bWVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC0yNSw2ICsy
NSw4IEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogCisjaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VT
UykKKwogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlBheW1lbnRQ
cm9jZXNzLmgiCiAjaW1wb3J0ICJXS0Jhc2UuaCIKQEAgLTUzLDMgKzU1LDQgQEAgdm9pZCBQYXlt
ZW50U2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29i
amVjdF90IGluaXRpYWwKICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRp
bmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0ZW1TaGltLmR5bGli
Iik7CiAgICAgWFBDU2VydmljZUluaXRpYWxpemVyPFBheW1lbnRQcm9jZXNzLCBQYXltZW50U2Vy
dmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGFkb3B0T1NPYmplY3QoY29ubmVjdGlvbiksIGluaXRp
YWxpemVyTWVzc2FnZSwgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwogfQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCmluZGV4IDMyYTM0
MTIxMDI5ODUyOTczYzY4NTE4YmEwY2I1NmFlNGNiZGYxY2YuLjViOGM2ZmJmZjQ3MjFkZjc3YmUx
MmE5OThlNmZmODZjN2UyOGQzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGF5bWVudFBy
b2Nlc3MvUGF5bWVudFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nl
c3MvUGF5bWVudFByb2Nlc3MuY3BwCkBAIC0yOCw2ICsyOCwxNiBAQAogCiAjaWYgRU5BQkxFKFBB
WU1FTlRfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eS5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpAQCAtMzksNiArNDksOCBAQCBQYXltZW50UHJvY2VzcyYgUGF5bWVudFByb2Nlc3M6OnNp
bmdsZXRvbigpCiB9CiAKIFBheW1lbnRQcm9jZXNzOjpQYXltZW50UHJvY2VzcygpCisgICAgOiBt
X3BheW1lbnRDb29yZGluYXRvcihzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eT4oKnRoaXMpKQorICAgICwgbV9jb25uZWN0aW9uKG51bGxwdHIpCiB7CiB9CiAK
QEAgLTU1LDE0ICs2NywxMSBAQCBib29sIFBheW1lbnRQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUo
KQogewogICAgIHJldHVybiB0cnVlOwogfQotCi12b2lkIFBheW1lbnRQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikKKyAgICAKK3ZvaWQgUGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBpZiAobWVzc2Fn
ZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAg
ICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
KyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAg
ICAgIG1fcGF5bWVudENvb3JkaW5hdG9yLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
NzAsMTEgKzc5LDMzIEBAIHZvaWQgUGF5bWVudFByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyCiAgICAgICAgIENoaWxkUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci19CiAKLXZvaWQgUGF5bWVudFByb2Nlc3M6OmNyZWF0ZVBheW1lbnRUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcywgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pCit9CisgICAgCit2b2lkIFBheW1l
bnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAg
Ly8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KKyAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQ
b3J0ID0gTUFDSF9QT1JUX05VTEw7CisgICAgYXV0byBrciA9IG1hY2hfcG9ydF9hbGxvY2F0ZSht
YWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQp
OworICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoUHJvY2VzcywgIlBheW1lbnRQcm9jZXNzOjpjcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjogQ291bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJyb3IgJXgiLCBrcik7Cisg
ICAgICAgIENSQVNIKCk7CisgICAgfQorICAgIGlmICghTUFDSF9QT1JUX1ZBTElEKGxpc3Rlbmlu
Z1BvcnQpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJQYXltZW50UHJv
Y2Vzczo6Y3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246IENvdWxkIG5vdCBhbGxv
Y2F0ZSBtYWNoIHBvcnQsIHJldHVybmVkIHBvcnQgd2FzIGludmFsaWQiKTsKKyAgICAgICAgQ1JB
U0goKTsKKyAgICB9CisgICAgCisgICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24u
CisgICAgbV9jb25uZWN0aW9uID0gUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0
ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIobGlzdGVuaW5nUG9ydCkpOworICAgIAorICAg
IElQQzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVf
TUFLRV9TRU5EKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpQYXltZW50UHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbihjbGllbnRQb3J0KSwgMCk7Cit9CisgICAgCit2b2lkIFBheW1lbnRQcm9jZXNzOjpkZXN0
cm95U2Vzc2lvbigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBUT0RPOiBkZWxl
dGUgY29vcmRpbmF0b3IgcHJveHkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLmgKaW5kZXggMmY2ZGU0N2Uw
MDE3NDA3MTVkYzY3NjdjZTYxMGY0NzYxMjdlYTViNi4uNDJlZWVmYTExNGNlZDBiNWQ2NmIwMjFj
NDI4M2FiYzliOWFhYTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vz
cy9QYXltZW50UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MuaApAQCAtMzYsNiArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvclByb3h5OwogCiBjbGFzcyBQYXltZW50UHJvY2VzcyA6IHB1YmxpYyBDaGlsZFBy
b2Nlc3MgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBheW1lbnRQcm9jZXNzKTsKQEAgLTQ2
LDggKzQ3LDE2IEBAIHB1YmxpYzoKIAogICAgIH5QYXltZW50UHJvY2VzcygpOwogCi0gICAgdm9p
ZCBkaWRSZWNlaXZlUGF5bWVudFByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKSBvdmVycmlkZTsKKyAgICAKKyAgICB2b2lkIGluaXRpYWxpemVQcm9jZXNzKGNvbnN0
IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAgIHZv
aWQgaW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eT4gbV9wYXltZW50Q29vcmRpbmF0b3I7CisgICAgUmVmUHRy
PFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgCiBwcml2
YXRlOgogICAgIFBheW1lbnRQcm9jZXNzKCk7CiAKQEAgLTU1LDExICs2NCwxMCBAQCBwcml2YXRl
OgogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBvdmVycmlkZTsKIAotICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKLQogICAgIC8vIE1lc3NhZ2UgSGFuZGxl
cnMKLSAgICB2b2lkIGNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNT
ZXJ2aWNlV29ya2VyUHJvY2VzcywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYpOworICAg
IHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICB2b2lkIGRl
c3Ryb3lTZXNzaW9uKCk7CisgICAgCiAgICAgCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5OGI5
MTRmYzRhOGY0NDcxOGNmYTEyNTc2ZDMzOGRhZTU5MmFhMGUzLi42OTRlNmU2M2QzYzE4ZjU2MGQx
YzhiNGI3ZWFjY2I4ZTlmOGNiYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI0LDUgKzI0LDcgQEAK
IAogbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3MgewogICAgIAorICAgIENyZWF0ZVBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKKyAgICBEZXN0cm95U2Vzc2lvbigpCiB9CiAjZW5kaWYg
Ly8gRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5
bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NmY1MGE1YzcyYzZkMTVkNjUwMDE2NmJlYThjZjc0YjQ3NTk3YmU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0wLDAgKzEsMzQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eS5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykK
KworI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
clByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlICJXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisKKyNpbmNs
dWRlIDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdGF0aWMgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5KiBhY3RpdmVQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTsKKworUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5
OjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkoUGF5bWVudFByb2Nlc3MmIHBheW1lbnRQ
cm9jZXNzKQorICAgIDogbV9wYXltZW50UHJvY2VzcyhwYXltZW50UHJvY2VzcykKKyAgICAsIG1f
c3RhdGUoU3RhdGU6OklkbGUpCisgICAgLCBtX21lcmNoYW50VmFsaWRhdGlvblN0YXRlKE1lcmNo
YW50VmFsaWRhdGlvblN0YXRlOjpJZGxlKQoreworICAgIG1fcGF5bWVudFByb2Nlc3MuYWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6On5QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkoKQoreworICAgIGlmIChh
Y3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSA9PSB0aGlzKQorICAgICAgICBhY3RpdmVQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eSA9IG51bGxwdHI7CisgICAgCisgICAgaWYgKG1fc3RhdGUgIT0g
U3RhdGU6OklkbGUpCisgICAgICAgIGhpZGVQYXltZW50VUkoKTsKKyAgICAKKyAgICBtX3BheW1l
bnRQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UGF5bWVudFByb2Nlc3ND
b29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6YXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKFZlY3Rv
cjxTdHJpbmc+JiBuZXR3b3JrcykKK3sKKyAgICBuZXR3b3JrcyA9IHBsYXRmb3JtQXZhaWxhYmxl
UGF5bWVudE5ldHdvcmtzKCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5OjpjYW5NYWtlUGF5bWVudHMoYm9vbCYgcmVwbHkpCit7CisgICAgcmVwbHkgPSBwbGF0Zm9y
bUNhbk1ha2VQYXltZW50cygpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXJjaGFu
dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElE
KQoreworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgcGxhdGZv
cm1DYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChtZXJjaGFudElkZW50aWZpZXIsIGRvbWFp
bk5hbWUsIFt3ZWFrVGhpcywgcmVxdWVzdElEXShib29sIGNhbk1ha2VQYXltZW50cykgeworICAg
ICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMuZ2V0KCk7CisgICAg
ICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIAorICAgICAgICBwYXltZW50Q29vcmRpbmF0b3JQcm94eS0+bV9wYXltZW50UHJvY2Vz
cy5tX2Nvbm5lY3Rpb24tPmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHkocmVxdWVz
dElELCBjYW5NYWtlUGF5bWVudHMpOworICAgIH0pOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50NjRfdCByZXF1ZXN0SUQp
Cit7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICBwbGF0Zm9y
bU9wZW5QYXltZW50U2V0dXAobWVyY2hhbnRJZGVudGlmaWVyLCBkb21haW5OYW1lLCBbd2Vha1Ro
aXMsIHJlcXVlc3RJRF0oYm9vbCByZXN1bHQpIHsKKyAgICAgICAgYXV0byBwYXltZW50Q29vcmRp
bmF0b3JQcm94eSA9IHdlYWtUaGlzLmdldCgpOworICAgICAgICBpZiAoIXBheW1lbnRDb29yZGlu
YXRvclByb3h5KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgcGF5bWVu
dENvb3JkaW5hdG9yUHJveHktPm1fcGF5bWVudFByb2Nlc3MubV9jb25uZWN0aW9uLT5vcGVuUGF5
bWVudFNldHVwUmVwbHkocmVxdWVzdElELCByZXN1bHQpOworICAgIH0pOworfQorCit2b2lkIFBh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6c2hvd1BheW1lbnRVSShjb25zdCBTdHJpbmcm
IG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGlua0ljb25VUkxT
dHJpbmdzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcGF5
bWVudFJlcXVlc3QsIGJvb2wmIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGEg
bWVzc2FnZSBjaGVjay4KKyAgICBBU1NFUlQoY2FuQmVnaW4oKSk7CisgICAgCisgICAgaWYgKGFj
dGl2ZVBheW1lbnRDb29yZGluYXRvclByb3h5KSB7CisgICAgICAgIGFjdGl2ZVBheW1lbnRDb29y
ZGluYXRvclByb3h5LT5oaWRlUGF5bWVudFVJKCk7CisgICAgICAgIGFjdGl2ZVBheW1lbnRDb29y
ZGluYXRvclByb3h5LT5kaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpOworICAgIH0KKyAgICAKKyAg
ICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eSA9IHRoaXM7CisgICAgCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpBY3RpdmF0aW5nOworICAgIAorICAgIFdURjo6VVJMIG9yaWdpbmF0aW5nVVJM
KFdURjo6VVJMKCksIG9yaWdpbmF0aW5nVVJMU3RyaW5nKTsKKyAgICAKKyAgICBWZWN0b3I8V1RG
OjpVUkw+IGxpbmtJY29uVVJMczsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGxpbmtJY29uVVJMU3Ry
aW5nIDogbGlua0ljb25VUkxTdHJpbmdzKQorICAgICAgICBsaW5rSWNvblVSTHMuYXBwZW5kKFdU
Rjo6VVJMKFdURjo6VVJMKCksIGxpbmtJY29uVVJMU3RyaW5nKSk7CisgICAgCisgICAgcGxhdGZv
cm1TaG93UGF5bWVudFVJKG9yaWdpbmF0aW5nVVJMLCBsaW5rSWNvblVSTHMsIHBheW1lbnRSZXF1
ZXN0LCBbdGhpc10oYm9vbCByZXN1bHQpIHsKKyAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3Rh
dGU6OkFjdGl2YXRpbmcpOworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgZGlk
Q2FuY2VsUGF5bWVudFNlc3Npb24oKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpBY3RpdmU7CisgICAgfSk7CisgICAg
CisgICAgcmVzdWx0ID0gdHJ1ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
UHJveHk6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRN
ZXJjaGFudFNlc3Npb24mIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCit7CisgICAgLy8gSXQncyBw
b3NzaWJsZSB0aGF0IHRoZSBwYXltZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCisgICAg
aWYgKG1fc3RhdGUgPT0gU3RhdGU6OklkbGUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBNRVNTQUdFX0NIRUNLLgorICAgIEFTU0VSVChtX21l
cmNoYW50VmFsaWRhdGlvblN0YXRlID09IE1lcmNoYW50VmFsaWRhdGlvblN0YXRlOjpWYWxpZGF0
aW5nKTsKKyAgICAKKyAgICBwbGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1l
bnRNZXJjaGFudFNlc3Npb24pOworICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJj
aGFudFZhbGlkYXRpb25TdGF0ZTo6VmFsaWRhdGlvbkNvbXBsZXRlOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlv
bihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkK
K3sKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2Vs
ZWQgYWxyZWFkeS4KKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhIE1FU1NBR0VfQ0hFQ0su
CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQpOwor
ICAgIAorICAgIHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbih1cGRhdGUp
OworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQoreworICAg
IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJl
YWR5LgorICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgTUVTU0FHRV9DSEVDSy4KKyAgICBB
U1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6U2hpcHBpbmdDb250YWN0U2VsZWN0ZWQpOworICAgIAor
ICAgIHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odXBkYXRlKTsKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYgdXBkYXRlKQoreworICAgIC8vIEl0J3Mg
cG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5LgorICAg
IGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgTUVTU0FHRV9DSEVDSy4KKyAgICBBU1NFUlQobV9z
dGF0ZSA9PSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVjdGVkKTsKKyAgICAKKyAgICBwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fc3RhdGUgPSBT
dGF0ZTo6QWN0aXZlOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6
Y29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0
aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkKK3sKKyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQg
dGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KKyAgICBpZiAoIWNhbkNvbXBs
ZXRlUGF5bWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgYm9vbCBpc0ZpbmFsU3Rh
dGVSZXN1bHQgPSBXZWJDb3JlOjppc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKKyAgICAKKyAg
ICBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KTsKKyAgICAKKyAgICBpZiAo
IWlzRmluYWxTdGF0ZVJlc3VsdCkgeworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsK
K30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmFib3J0UGF5bWVudFNl
c3Npb24oKQoreworICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVl
biBjYW5jZWxlZCBhbHJlYWR5LgorICAgIGlmICghY2FuQWJvcnQoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIGhpZGVQYXltZW50VUkoKTsKKyAgICAKKyAgICBkaWRSZWFjaEZpbmFsU3Rh
dGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbmNlbFBh
eW1lbnRTZXNzaW9uKCkKK3sKKyAgICBpZiAoIWNhbkNhbmNlbCgpKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgaGlkZVBheW1lbnRVSSgpOworICAgIGRpZENhbmNlbFBheW1lbnRTZXNzaW9u
KCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpkaWRDYW5jZWxQ
YXltZW50U2Vzc2lvbigpCit7CisgICAgQVNTRVJUKGNhbkNhbmNlbCgpKTsKKyAgICAKKyAgICBt
X3BheW1lbnRQcm9jZXNzLm1fY29ubmVjdGlvbi0+ZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oKTsK
KyAgICAKKyAgICBkaWRSZWFjaEZpbmFsU3RhdGUoKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHk6OnZhbGlkYXRlTWVyY2hhbnQoY29uc3QgV1RGOjpVUkwmIHVybCkK
K3sKKyAgICBBU1NFUlQobV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9PSBNZXJjaGFudFZhbGlk
YXRpb25TdGF0ZTo6SWRsZSk7CisgICAgCisgICAgbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9
IE1lcmNoYW50VmFsaWRhdGlvblN0YXRlOjpWYWxpZGF0aW5nOworICAgIG1fcGF5bWVudFByb2Nl
c3MubV9jb25uZWN0aW9uLT52YWxpZGF0ZU1lcmNoYW50KHVybC5zdHJpbmcoKSk7Cit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpkaWRBdXRob3JpemVQYXltZW50KGNv
bnN0IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCit7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpB
dXRob3JpemVkOworICAgIG1fcGF5bWVudFByb2Nlc3MubV9jb25uZWN0aW9uLT5kaWRBdXRob3Jp
emVQYXltZW50KHBheW1lbnQpOworCit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
clByb3h5OjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQorewor
ICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOworICAgIAorICAgIG1fc3RhdGUg
PSBTdGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZDsKKyAgICBtX3BheW1lbnRQcm9jZXNzLm1f
Y29ubmVjdGlvbi0+ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpOworfQor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlkU2VsZWN0U2hpcHBpbmdD
b250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBzaGlwcGluZ0NvbnRhY3QpCit7
CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2ZSk7CisgICAgCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZDsKKyAgICBtX3BheW1lbnRQcm9jZXNz
Lm1fY29ubmVjdGlvbi0+ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KHNoaXBwaW5nQ29udGFjdCk7
Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpkaWRTZWxlY3RQYXlt
ZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRob2QpCit7
CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2ZSk7CisgICAgCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQ7CisgICAgbV9wYXltZW50UHJvY2Vzcy5t
X2Nvbm5lY3Rpb24tPmRpZFNlbGVjdFBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZCk7CisKK30K
KworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OmNhbkJlZ2luKCkgY29uc3QK
K3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNlIFN0YXRlOjpJZGxlOgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgY2FzZSBTdGF0ZTo6QWN0aXZhdGluZzoKKyAg
ICBjYXNlIFN0YXRlOjpBY3RpdmU6CisgICAgY2FzZSBTdGF0ZTo6QXV0aG9yaXplZDoKKyAgICBj
YXNlIFN0YXRlOjpTaGlwcGluZ01ldGhvZFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6OlNoaXBw
aW5nQ29udGFjdFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6OlBheW1lbnRNZXRob2RTZWxlY3Rl
ZDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworYm9vbCBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHk6OmNhbkNhbmNlbCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX3N0
YXRlKSB7CisgICAgY2FzZSBTdGF0ZTo6QWN0aXZhdGluZzoKKyAgICBjYXNlIFN0YXRlOjpBY3Rp
dmU6CisgICAgY2FzZSBTdGF0ZTo6QXV0aG9yaXplZDoKKyAgICBjYXNlIFN0YXRlOjpTaGlwcGlu
Z01ldGhvZFNlbGVjdGVkOgorICAgIGNhc2UgU3RhdGU6OlNoaXBwaW5nQ29udGFjdFNlbGVjdGVk
OgorICAgIGNhc2UgU3RhdGU6OlBheW1lbnRNZXRob2RTZWxlY3RlZDoKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIAorICAgIGNhc2UgU3RhdGU6OklkbGU6CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Ojpj
YW5Db21wbGV0ZVBheW1lbnQoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAg
IGNhc2UgU3RhdGU6OkF1dGhvcml6ZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAK
KyAgICBjYXNlIFN0YXRlOjpJZGxlOgorICAgIGNhc2UgU3RhdGU6OkFjdGl2YXRpbmc6CisgICAg
Y2FzZSBTdGF0ZTo6QWN0aXZlOgorICAgIGNhc2UgU3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0
ZWQ6CisgICAgY2FzZSBTdGF0ZTo6U2hpcHBpbmdDb250YWN0U2VsZWN0ZWQ6CisgICAgY2FzZSBT
dGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVjdGVkOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorfQorCitib29sIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6Y2FuQWJvcnQoKSBj
b25zdAoreworICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAgIGNhc2UgU3RhdGU6OkFjdGl2YXRp
bmc6CisgICAgY2FzZSBTdGF0ZTo6QWN0aXZlOgorICAgIGNhc2UgU3RhdGU6OkF1dGhvcml6ZWQ6
CisgICAgY2FzZSBTdGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRl
OjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZDoKKyAgICBjYXNlIFN0YXRlOjpQYXltZW50TWV0aG9k
U2VsZWN0ZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAKKyAgICBjYXNlIFN0YXRl
OjpJZGxlOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCit2b2lkIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6ZGlkUmVhY2hGaW5hbFN0YXRlKCkKK3sKKyAgICBtX3N0
YXRlID0gU3RhdGU6OklkbGU7CisgICAgbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9IE1lcmNo
YW50VmFsaWRhdGlvblN0YXRlOjpJZGxlOworICAgIAorICAgIEFTU0VSVChhY3RpdmVQYXltZW50
Q29vcmRpbmF0b3JQcm94eSA9PSB0aGlzKTsKKyAgICBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQ
cm94eSA9IG51bGxwdHI7Cit9CisgICAgCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmJiNDIyZjEzZjU3NWU1YWZjMjk1YzNkNDc2NzY0NjI0NTliOTE4
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5LmgKQEAgLTAsMCArMSwxNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5U
X1BST0NFU1MpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1BheW1lbnRIZWFkZXJzLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IElQQyB7CitjbGFzcyBEYXRhUmVmZXJlbmNlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7Citl
bnVtIGNsYXNzIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOworY2xhc3MgUGF5bWVudDsKK2Ns
YXNzIFBheW1lbnRDb250YWN0OworY2xhc3MgUGF5bWVudE1lcmNoYW50U2Vzc2lvbjsKK2NsYXNz
IFBheW1lbnRNZXRob2Q7Cit9CisKK09CSkNfQ0xBU1MgTlNPYmplY3Q7CitPQkpDX0NMQVNTIE5T
V2luZG93OworT0JKQ19DTEFTUyBQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjsKK09C
SkNfQ0xBU1MgV0tQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFBheW1lbnRQcm9j
ZXNzOworCitjbGFzcyBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkgOiBwcml2YXRlIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGF5bWVudFByb2Nlc3ND
b29yZGluYXRvclByb3h5PiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVudFByb2Nlc3ND
b29yZGluYXRvclByb3h5KFBheW1lbnRQcm9jZXNzJik7CisgICAgflBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eSgpOworICAgIAorICAgIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24o
KTsKKyAgICB2b2lkIHZhbGlkYXRlTWVyY2hhbnQoY29uc3QgV1RGOjpVUkwmKTsKKyAgICB2b2lk
IGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVudCYpOworICAgIHZvaWQg
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmKTsKKyAgICB2b2lkIGRpZFNl
bGVjdFBheW1lbnRNZXRob2QoY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYpOworICAgIAor
ICAgIHZvaWQgaGlkZVBheW1lbnRVSSgpOworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgCisgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KKyAgICB2b2lkIGF2YWlsYWJsZVBheW1lbnROZXR3b3JrcyhWZWN0b3I8U3RyaW5nPiYpOwor
ICAgIHZvaWQgY2FuTWFrZVBheW1lbnRzKGJvb2wmIHJlcGx5KTsKKyAgICB2b2lkIGNhbk1ha2VQ
YXltZW50c1dpdGhBY3RpdmVDYXJkKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CisgICAgdm9pZCBv
cGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CisgICAgdm9pZCBzaG93UGF5
bWVudFVJKGNvbnN0IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBsaW5rSWNvblVSTFN0cmluZ3MsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0JiwgYm9vbCYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlTWVyY2hh
bnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKKyAg
ICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RV
cGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIGNvbXBs
ZXRlUGF5bWVudFNlc3Npb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6
YXRpb25SZXN1bHQ+Jik7CisgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCk7CisgICAgdm9p
ZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpOworICAgIAorICAgIGJvb2wgY2FuQmVnaW4oKSBjb25z
dDsKKyAgICBib29sIGNhbkNhbmNlbCgpIGNvbnN0OworICAgIGJvb2wgY2FuQ29tcGxldGVQYXlt
ZW50KCkgY29uc3Q7CisgICAgYm9vbCBjYW5BYm9ydCgpIGNvbnN0OworICAgIAorICAgIHZvaWQg
ZGlkUmVhY2hGaW5hbFN0YXRlKCk7CisgICAgCisgICAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1B
dmFpbGFibGVQYXltZW50TmV0d29ya3MoKTsKKyAgICBib29sIHBsYXRmb3JtQ2FuTWFrZVBheW1l
bnRzKCk7CisgICAgdm9pZCBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKGNv
bnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUs
IFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9p
ZCBwbGF0Zm9ybU9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHBsYXRmb3JtU2hvd1BheW1lbnRVSShjb25z
dCBXVEY6OlVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxXVEY6OlVSTD4mIGxpbmtJ
Y29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQg
cGxhdGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50
TWVyY2hhbnRTZXNzaW9uJik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRo
b2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+
Jik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNv
bnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mKTsKKyAgICB2b2lk
IHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdl
YkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRl
UGF5bWVudFNlc3Npb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQ+Jik7CisgICAgCisgICAgUGF5bWVudFByb2Nlc3MmIG1fcGF5bWVudFByb2Nlc3M7
CisgICAgCisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIC8vIElkbGUgLSBOb3RoaW5n
J3MgaGFwcGVuaW5nLgorICAgICAgICBJZGxlLAorICAgICAgICAKKyAgICAgICAgLy8gQWN0aXZh
dGluZyAtIFdhaXRpbmcgdG8gc2hvdyB0aGUgcGF5bWVudCBVSS4KKyAgICAgICAgQWN0aXZhdGlu
ZywKKyAgICAgICAgCisgICAgICAgIC8vIEFjdGl2ZSAtIFNob3dpbmcgcGF5bWVudCBVSS4KKyAg
ICAgICAgQWN0aXZlLAorICAgICAgICAKKyAgICAgICAgLy8gQXV0aG9yaXplZCAtIERpc3BhdGNo
aW5nIHRoZSBhdXRob3JpemVkIGV2ZW50IGFuZCB3YWl0aW5nIGZvciB0aGUgcGF5bWVudFNlc3Np
b25Db21wbGV0ZWQgbWVzc2FnZS4KKyAgICAgICAgQXV0aG9yaXplZCwKKyAgICAgICAgCisgICAg
ICAgIC8vIFNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQgLSBEaXNwYXRjaGluZyB0aGUgc2hpcHBpbmdt
ZXRob2RzZWxlY3RlZCBldmVudCBhbmQgd2FpdGluZyBmb3IgYSByZXBseS4KKyAgICAgICAgU2hp
cHBpbmdNZXRob2RTZWxlY3RlZCwKKyAgICAgICAgCisgICAgICAgIC8vIFNoaXBwaW5nQ29udGFj
dFNlbGVjdGVkIC0gRGlzcGF0Y2hpbmcgdGhlIHNoaXBwaW5nY29udGFjdHNlbGVjdGVkIGV2ZW50
IGFuZCB3YWl0aW5nIGZvciBhIHJlcGx5LgorICAgICAgICBTaGlwcGluZ0NvbnRhY3RTZWxlY3Rl
ZCwKKyAgICAgICAgCisgICAgICAgIC8vIFBheW1lbnRNZXRob2RTZWxlY3RlZCAtIERpc3BhdGNo
aW5nIHRoZSBwYXltZW50bWV0aG9kc2VsZWN0ZWQgZXZlbnQgYW5kIHdhaXRpbmcgZm9yIGEgcmVw
bHkuCisgICAgICAgIFBheW1lbnRNZXRob2RTZWxlY3RlZCwKKyAgICB9IG1fc3RhdGU7CisgICAg
CisgICAgZW51bSBjbGFzcyBNZXJjaGFudFZhbGlkYXRpb25TdGF0ZSB7CisgICAgICAgIC8vIElk
bGUgLSBOb3RoaW5nJ3MgaGFwcGVuaW5nLgorICAgICAgICBJZGxlLAorICAgICAgICAKKyAgICAg
ICAgLy8gVmFsaWRhdGluZyAtIERpc3BhdGNoaW5nIHRoZSB2YWxpZGF0ZW1lcmNoYW50IGV2ZW50
IGFuZCB3YWl0aW5nIGZvciBhIHJlcGx5LgorICAgICAgICBWYWxpZGF0aW5nLAorICAgICAgICAK
KyAgICAgICAgLy8gVmFsaWRhdGlvbkNvbXBsZXRlIC0gQSBtZXJjaGFudCBzZXNzaW9uIGhhcyBi
ZWVuIHNlbnQgYWxvbmcgdG8gUGFzc0tpdC4KKyAgICAgICAgVmFsaWRhdGlvbkNvbXBsZXRlCisg
ICAgfSBtX21lcmNoYW50VmFsaWRhdGlvblN0YXRlOworICAgIAorICAgIFJldGFpblB0cjxQS1Bh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcj4gbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRy
b2xsZXI7CisgICAgUmV0YWluUHRyPFdLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVs
ZWdhdGU+IG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGU7CisgICAgCisj
aWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQ2NF90IG1fc2hvd1BheW1lbnRVSVJlcXVlc3RTZWVk
IHsgMCB9OworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gbV9zaGVldFdpbmRvdzsKKyAgICBSZXRh
aW5QdHI8TlNPYmplY3QgKj4gbV9zaGVldFdpbmRvd1dpbGxDbG9zZU9ic2VydmVyOworI2VuZGlm
Cit9OworICAgIAorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHku
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUxNjY2ZmQzZTc1MzM4ODgzZDA0YmUwNTg1ZTJmYTlm
YTFjYWVhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3Mv
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2lmIEVO
QUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSB7CisKKyAgICBBdmFpbGFibGVQYXltZW50
TmV0d29ya3MoKSAtPiAoVmVjdG9yPFN0cmluZz4gYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKSBM
ZWdhY3lTeW5jCisgICAgQ2FuTWFrZVBheW1lbnRzKCkgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lT
eW5jCisgICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoU3RyaW5nIG1lcmNoYW50SWRl
bnRpZmllciwgU3RyaW5nIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBPcGVu
UGF5bWVudFNldHVwKFN0cmluZyBtZXJjaGFudElkZW50aWZpZXIsIFN0cmluZyBkb21haW5OYW1l
LCB1aW50NjRfdCByZXF1ZXN0SUQpCisKKyAgICBTaG93UGF5bWVudFVJKFN0cmluZyBvcmlnaW5h
dGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25VUkxTdHJpbmdzLCBXZWJDb3Jl
OjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50UmVxdWVzdCkgLT4gKGJvb2wg
cmVzdWx0KSBMZWdhY3lTeW5jCisgICAgQ29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oV2ViQ29y
ZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQorICAgIENv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdN
ZXRob2RVcGRhdGU+IHVwZGF0ZSkKKyAgICBDb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlv
bihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IHVwZGF0ZSkKKyAgICBD
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1l
dGhvZFVwZGF0ZT4gdXBkYXRlKQorICAgIENvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8
V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IHJlc3VsdCkKKyAgICBBYm9ydFBh
eW1lbnRTZXNzaW9uKCkKKyAgICBDYW5jZWxQYXltZW50U2Vzc2lvbigpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yUHJveHlDb2NvYS5oIGIvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYjNmMTEwYTBm
YWY0YjgzZGQwNWYzODdkZTUyMDU4ZDJjYTJlM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29h
LmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworI2ltcG9ydCA8V2Vi
Q29yZS9QYXltZW50SGVhZGVycy5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJ
Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBV
Ukw7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZVByb3h5OworY2xhc3Mg
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OworCitSZXRhaW5QdHI8UEtQYXltZW50UmVx
dWVzdD4gdG9QS1BheW1lbnRSZXF1ZXN0KGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0
IFZlY3RvcjxXVEY6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKKyAgICAKK30KKworQGludGVyZmFjZSBXS1BheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlIDogTlNPYmplY3QgPFBLUGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUsCisgICAgUEtQYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXJQcml2YXRlRGVsZWdhdGU+IHsKK0BwYWNrYWdlCisgICAgV2ViS2l0OjpQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkqIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eTsK
KyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX3BheW1lbnRTdW1tYXJ5SXRlbXM7CisgICAgUmV0YWlu
UHRyPE5TQXJyYXk+IF9zaGlwcGluZ01ldGhvZHM7CisKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5
bWVudE1lcmNoYW50U2Vzc2lvbiAqLCBOU0Vycm9yICopPiBfc2Vzc2lvbkJsb2NrOworCisgICAg
Qk9PTCBfZGlkUmVhY2hGaW5hbFN0YXRlOworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorICAgIEJs
b2NrUHRyPHZvaWQoUEtQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCAqKT4gX3BheW1lbnRBdXRo
b3JpemVkQ29tcGxldGlvbjsKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5bWVudFJlcXVlc3RQYXlt
ZW50TWV0aG9kVXBkYXRlICopPiBfZGlkU2VsZWN0UGF5bWVudE1ldGhvZENvbXBsZXRpb247Cisg
ICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUgKik+
IF9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBsZXRpb247CisgICAgQmxvY2tQdHI8dm9pZChQ
S1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlICopPiBfZGlkU2VsZWN0U2hpcHBp
bmdDb250YWN0Q29tcGxldGlvbjsKKyNlbHNlCisgICAgQmxvY2tQdHI8dm9pZChQS1BheW1lbnRB
dXRob3JpemF0aW9uU3RhdHVzKT4gX3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbjsKKyAgICBC
bG9ja1B0cjx2b2lkKE5TQXJyYXkgKik+IF9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxldGlv
bjsKKyAgICBCbG9ja1B0cjx2b2lkKFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMsIE5TQXJy
YXkgKik+IF9kaWRTZWxlY3RTaGlwcGluZ01ldGhvZENvbXBsZXRpb247CisgICAgQmxvY2tQdHI8
dm9pZChQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLCBOU0FycmF5ICosIE5TQXJyYXkgKik+
IF9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uOworI2VuZGlmCit9CisKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFBheW1lbnRDb29yZGluYXRvclByb3h5OihXZWJLaXQ6OlBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eSYpd2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk7CisK
Ky0gKHZvaWQpaW52YWxpZGF0ZTsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3JQcm94eUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlY2JlMTI3NzY0MjBiYWRkYWYzOTEyOTg1
YzUwMzI2MmViYWM4OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLm1tCkBAIC0wLDAgKzEs
Nzk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EuaCIKKworI2lmIEVOQUJMRShBUFBM
RV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbXBvcnQgIlBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eS5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbXBv
cnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsu
aD4KKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKwor
I2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01BWF9BTExPV0VEID49IDEwMTMwMCkKK1NPRlRfTElOS19GUkFNRVdPUksoQ29udGFjdHMpCitT
T0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRkcmVzc1N0cmVldEtleSwgTlNT
dHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRkcmVzc1N1
YkxvY2FsaXR5S2V5LCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19DT05TVEFOVChDb250YWN0cywg
Q05Qb3N0YWxBZGRyZXNzQ2l0eUtleSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQo
Q29udGFjdHMsIENOUG9zdGFsQWRkcmVzc1N1YkFkbWluaXN0cmF0aXZlQXJlYUtleSwgTlNTdHJp
bmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29udGFjdHMsIENOUG9zdGFsQWRkcmVzc1N0YXRl
S2V5LCBOU1N0cmluZyAqKTsKK1NPRlRfTElOS19DT05TVEFOVChDb250YWN0cywgQ05Qb3N0YWxB
ZGRyZXNzUG9zdGFsQ29kZUtleSwgTlNTdHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoQ29u
dGFjdHMsIENOUG9zdGFsQWRkcmVzc0NvdW50cnlLZXksIE5TU3RyaW5nICopOworU09GVF9MSU5L
X0NPTlNUQU5UKENvbnRhY3RzLCBDTlBvc3RhbEFkZHJlc3NJU09Db3VudHJ5Q29kZUtleSwgTlNT
dHJpbmcgKik7CitTT0ZUX0xJTktfQ09OU1RBTlQoUEFMOjpQYXNzS2l0LCBQS1BheW1lbnRFcnJv
ckRvbWFpbiwgTlNTdHJpbmcgKik7CisjZW5kaWYKKworQGltcGxlbWVudGF0aW9uIFdLUGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUKKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUGF5bWVudENvb3JkaW5hdG9yUHJveHk6KFdlYktpdDo6UGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5Jil3ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eQoreworICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIF9wYXltZW50
UHJvZXNzQ29vcmRpbmF0b3JQcm94eSA9ICZ3ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTsKKwor
ICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWludmFsaWRhdGUKK3sKKyAgICBfcGF5bWVu
dFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkgPSBudWxscHRyOworICAgIGlmIChfcGF5bWVudEF1dGhv
cml6ZWRDb21wbGV0aW9uKSB7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgICAgIF9wYXlt
ZW50QXV0aG9yaXplZENvbXBsZXRpb24oYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHRJbnN0YW5jZSgpIGluaXRXaXRoU3RhdHVzOlBLUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXNGYWlsdXJlIGVycm9yczpAWyBdXSkuZ2V0KCkpOworI2Vsc2UKKyAgICAgICAg
X3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbihQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVz
RmFpbHVyZSk7CisjZW5kaWYKKyAgICAgICAgX3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbiA9
IG51bGxwdHI7CisgICAgfQorfQorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJv
bGxlcjooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxG
aW5pc2hXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgoreworfQorCistICh2b2lkKXBheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlcjooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIg
Kiljb250cm9sbGVyIGRpZFJlcXVlc3RNZXJjaGFudFNlc3Npb246KHZvaWQoXikoUEtQYXltZW50
TWVyY2hhbnRTZXNzaW9uICosIE5TRXJyb3IgKikpc2Vzc2lvbkJsb2NrCit7CisgICAgQVNTRVJU
KCFfc2Vzc2lvbkJsb2NrKTsKKyAgICBfc2Vzc2lvbkJsb2NrID0gc2Vzc2lvbkJsb2NrOworCisg
ICAgW1BBTDo6Z2V0UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyQ2xhc3MoKSBw
YXltZW50U2VydmljZXNNZXJjaGFudFVSTDpeKE5TVVJMICptZXJjaGFudFVSTCwgTlNFcnJvciAq
ZXJyb3IpIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgTE9HX0VSUk9SKCJQS0Nh
bk1ha2VQYXltZW50c1dpdGhNZXJjaGFudElkZW50aWZpZXJBbmREb21haW4gZXJyb3IgJUAiLCBl
cnJvcik7CisKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgXnsKKyAgICAgICAgICAgIEFTU0VSVChfc2Vzc2lvbkJsb2NrKTsKKworICAgICAgICAgICAg
aWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgICAgICAgICBf
c2Vzc2lvbkJsb2NrKG51bGxwdHIsIG51bGxwdHIpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclBy
b3h5LT52YWxpZGF0ZU1lcmNoYW50KG1lcmNoYW50VVJMKTsKKyAgICAgICAgfSk7CisgICAgfV07
Cit9CisKK3N0YXRpYyBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2QgdG9TaGlwcGluZ01ldGhvZChQS1NoaXBwaW5nTWV0aG9kICpzaGlwcGluZ01l
dGhvZCkKK3sKKyAgICBBU1NFUlQoc2hpcHBpbmdNZXRob2QpOworCisgICAgV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKKyAgICBy
ZXN1bHQubGFiZWwgPSBzaGlwcGluZ01ldGhvZC5sYWJlbDsKKyAgICByZXN1bHQuZGV0YWlsID0g
c2hpcHBpbmdNZXRob2QuZGV0YWlsOworICAgIHJlc3VsdC5hbW91bnQgPSBzaGlwcGluZ01ldGhv
ZC5hbW91bnQuc3RyaW5nVmFsdWU7CisgICAgcmVzdWx0LmlkZW50aWZpZXIgPSBzaGlwcGluZ01l
dGhvZC5pZGVudGlmaWVyOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEzMDApIHx8IFBM
QVRGT1JNKElPU19GQU1JTFkpCisKKy0gKHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9s
bGVyOihQS1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkQXV0
aG9yaXplUGF5bWVudDooUEtQYXltZW50ICopcGF5bWVudCBoYW5kbGVyOih2b2lkICheKShQS1Bh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0ICpyZXN1bHQpKWNvbXBsZXRpb24KK3sKKyNpZiAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkg
fHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDExMDAwMCkKKyAgICBpZiAoIV9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkg
eworICAgICAgICBjb21wbGV0aW9uKGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0SW5zdGFuY2UoKSBpbml0V2l0aFN0YXR1czpQS1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzRmFpbHVyZSBlcnJvcnM6QFsgXV0pLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIEFTU0VSVCghX3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbik7CisgICAg
X3BheW1lbnRBdXRob3JpemVkQ29tcGxldGlvbiA9IGNvbXBsZXRpb247CisKKyAgICBfcGF5bWVu
dFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZEF1dGhvcml6ZVBheW1lbnQoV2ViQ29yZTo6UGF5
bWVudChwYXltZW50KSk7CisjZW5kaWYKK30KKworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlv
bkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxl
ciBkaWRTZWxlY3RQYXltZW50TWV0aG9kOihQS1BheW1lbnRNZXRob2QgKilwYXltZW50TWV0aG9k
IGhhbmRsZXI6KHZvaWQgKF4pKFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICp1
cGRhdGUpKWNvbXBsZXRpb24KK3sKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBpZiAoIV9w
YXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKGFkb3B0
TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZUluc3RhbmNl
KCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOkBbIF1dKS5nZXQoKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIV9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29tcGxl
dGlvbik7CisgICAgX2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21wbGV0aW9uID0gY29tcGxldGlv
bjsKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFBheW1lbnRN
ZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kKSk7CisjZW5kaWYKK30K
KworLSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhv
cml6YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZDoo
UEtTaGlwcGluZ01ldGhvZCAqKXNoaXBwaW5nTWV0aG9kIGhhbmRsZXI6KHZvaWQgKF4pKFBLUGF5
bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZSAqdXBkYXRlKSljb21wbGV0aW9uIHsKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBpZiAoIV9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQ
cm94eSkgeworICAgICAgICBjb21wbGV0aW9uKGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRS
ZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1h
cnlJdGVtczpAWyBdXSkuZ2V0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNT
RVJUKCFfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uKTsKKyAgICBfZGlkU2VsZWN0
U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uID0gY29tcGxldGlvbjsKKyAgICBfcGF5bWVudFByb2Vz
c0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHRvU2hpcHBpbmdNZXRo
b2Qoc2hpcHBpbmdNZXRob2QpKTsKKyNlbmRpZgorfQorCistICh2b2lkKXBheW1lbnRBdXRob3Jp
emF0aW9uQ29udHJvbGxlcjooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250
cm9sbGVyIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdDooUEtDb250YWN0ICopY29udGFjdCBoYW5k
bGVyOih2b2lkICheKShQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlICp1cGRh
dGUpKWNvbXBsZXRpb24KK3sKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBpZiAoIV9wYXlt
ZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgeworICAgICAgICBjb21wbGV0aW9uKGFkb3B0TlMo
W1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2Uo
KSBpbml0V2l0aEVycm9yczpAWyBdIHBheW1lbnRTdW1tYXJ5SXRlbXM6QFsgXSBzaGlwcGluZ01l
dGhvZHM6QFsgXV0pLmdldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VS
VCghX2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb24pOworICAgIF9kaWRTZWxlY3RT
aGlwcGluZ0NvbnRhY3RDb21wbGV0aW9uID0gY29tcGxldGlvbjsKKyAgICBfcGF5bWVudFByb2Vz
c0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChXZWJDb3JlOjpQYXlt
ZW50Q29udGFjdChjb250YWN0KSk7CisjZW5kaWYKK30KKworI2VuZGlmCisKKyNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAwKSB8fCAo
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PCAxMTAwMDApCisKKy0gKHZvaWQpcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyOihQS1Bh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkQXV0aG9yaXplUGF5
bWVudDooUEtQYXltZW50ICopcGF5bWVudCBjb21wbGV0aW9uOih2b2lkICheKShQS1BheW1lbnRB
dXRob3JpemF0aW9uU3RhdHVzKSljb21wbGV0aW9uCit7CisgICAgaWYgKCFfcGF5bWVudFByb2Vz
c0Nvb3JkaW5hdG9yUHJveHkpIHsKKyAgICAgICAgY29tcGxldGlvbihQS1BheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzRmFpbHVyZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NF
UlQoIV9wYXltZW50QXV0aG9yaXplZENvbXBsZXRpb24pOworICAgIF9wYXltZW50QXV0aG9yaXpl
ZENvbXBsZXRpb24gPSBjb21wbGV0aW9uOworCisgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRv
clByb3h5LT5kaWRBdXRob3JpemVQYXltZW50KFdlYkNvcmU6OlBheW1lbnQocGF5bWVudCkpOwor
fQorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcjooUEtQYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9k
OihQS1NoaXBwaW5nTWV0aG9kICopc2hpcHBpbmdNZXRob2QgY29tcGxldGlvbjoodm9pZCAoXiko
UEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyBzdGF0dXMsIE5TQXJyYXk8UEtQYXltZW50U3Vt
bWFyeUl0ZW0gKj4gKnN1bW1hcnlJdGVtcykpY29tcGxldGlvbgoreworICAgIGlmICghX3BheW1l
bnRQcm9lc3NDb29yZGluYXRvclByb3h5KSB7CisgICAgICAgIGNvbXBsZXRpb24oUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1c0ZhaWx1cmUsIEBbIF0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgQVNTRVJUKCFfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uKTsKKyAg
ICBfZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uID0gY29tcGxldGlvbjsKKyAgICBf
cGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHktPmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHRv
U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpKTsKK30KKworLSAodm9pZClwYXltZW50QXV0
aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyICop
Y29udHJvbGxlciBkaWRTZWxlY3RQYXltZW50TWV0aG9kOihQS1BheW1lbnRNZXRob2QgKilwYXlt
ZW50TWV0aG9kIGNvbXBsZXRpb246KHZvaWQgKF4pKE5TQXJyYXk8UEtQYXltZW50U3VtbWFyeUl0
ZW0gKj4gKnN1bW1hcnlJdGVtcykpY29tcGxldGlvbgoreworICAgIGlmICghX3BheW1lbnRQcm9l
c3NDb29yZGluYXRvclByb3h5KSB7CisgICAgICAgIGNvbXBsZXRpb24oQFsgXSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIV9kaWRTZWxlY3RQYXltZW50TWV0aG9kQ29t
cGxldGlvbik7CisgICAgX2RpZFNlbGVjdFBheW1lbnRNZXRob2RDb21wbGV0aW9uID0gY29tcGxl
dGlvbjsKKworICAgIF9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eS0+ZGlkU2VsZWN0UGF5
bWVudE1ldGhvZChXZWJDb3JlOjpQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpKTsKK30KKwor
LSAodm9pZClwYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXI6KFBLUGF5bWVudEF1dGhvcml6
YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6KFBL
Q29udGFjdCAqKWNvbnRhY3QgY29tcGxldGlvbjoodm9pZCAoXikoUEtQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1cyBzdGF0dXMsIE5TQXJyYXk8UEtTaGlwcGluZ01ldGhvZCAqPiAqc2hpcHBpbmdN
ZXRob2RzLCBOU0FycmF5PFBLUGF5bWVudFN1bW1hcnlJdGVtICo+ICpzdW1tYXJ5SXRlbXMpKWNv
bXBsZXRpb24KK3sKKyAgICBpZiAoIV9wYXltZW50UHJvZXNzQ29vcmRpbmF0b3JQcm94eSkgewor
ICAgICAgICBjb21wbGV0aW9uKFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlLCBA
WyBdLCBAWyBdKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghX2RpZFNl
bGVjdFNoaXBwaW5nQ29udGFjdENvbXBsZXRpb24pOworICAgIF9kaWRTZWxlY3RTaGlwcGluZ0Nv
bnRhY3RDb21wbGV0aW9uID0gY29tcGxldGlvbjsKKyAgICBfcGF5bWVudFByb2Vzc0Nvb3JkaW5h
dG9yUHJveHktPmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChXZWJDb3JlOjpQYXltZW50Q29udGFj
dChjb250YWN0KSk7Cit9CisKKyNlbmRpZgorCistICh2b2lkKXBheW1lbnRBdXRob3JpemF0aW9u
Q29udHJvbGxlckRpZEZpbmlzaDooUEtQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgKilj
b250cm9sbGVyCit7CisgICAgaWYgKCFfcGF5bWVudFByb2Vzc0Nvb3JkaW5hdG9yUHJveHkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghX2RpZFJlYWNoRmluYWxTdGF0ZSkKKyAgICAgICAg
X3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5kaWRDYW5jZWxQYXltZW50U2Vzc2lvbigp
OworCisgICAgX3BheW1lbnRQcm9lc3NDb29yZGluYXRvclByb3h5LT5oaWRlUGF5bWVudFVJKCk7
Cit9CisKK0BlbmQKKworLy8gRklYTUU6IE9uY2UgcmRhcjovL3Byb2JsZW0vMjQ0MjAwMjQgaGFz
IGJlZW4gZml4ZWQsIGltcG9ydCBQS1BheW1lbnRSZXF1ZXN0X1ByaXZhdGUuaCBpbnN0ZWFkLgor
QGludGVyZmFjZSBQS1BheW1lbnRSZXF1ZXN0ICgpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0
YWluKSBOU1VSTCAqb3JpZ2luYXRpbmdVUkw7CitAZW5kCisKK0BpbnRlcmZhY2UgUEtQYXltZW50
UmVxdWVzdCAoKQorLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgaXQncyBpbiBhbiBTREsuCitA
cHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU0FycmF5ICp0aHVtYm5haWxVUkxzOworQHBy
b3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNVUkwgKnRodW1ibmFpbFVSTDsKKworQHByb3Bl
cnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBleHBlY3RzTWVyY2hhbnRTZXNzaW9uOworQGVu
ZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
UHJveHk6OnBsYXRmb3JtQ2FuTWFrZVBheW1lbnRzKCkKK3sKKyAgICByZXR1cm4gW1BBTDo6Z2V0
UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyQ2xhc3MoKSBjYW5NYWtlUGF5bWVu
dHNdOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1D
YW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgUEtD
YW5NYWtlUGF5bWVudHNXaXRoTWVyY2hhbnRJZGVudGlmaWVyRG9tYWluQW5kU291cmNlQXBwbGlj
YXRpb24obWVyY2hhbnRJZGVudGlmaWVyLCBkb21haW5OYW1lLCBAIiIsIEJsb2NrUHRyPHZvaWQo
Qk9PTCwgTlNFcnJvciAqKT46OmZyb21DYWxsYWJsZShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQk9PTCBjYW5NYWtlUGF5bWVudHMsIE5TRXJyb3IgKmVy
cm9yKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgTE9HX0VSUk9S
KCJQS0Nhbk1ha2VQYXltZW50c1dpdGhNZXJjaGFudElkZW50aWZpZXJBbmREb21haW4gZXJyb3Ig
JUAiLCBlcnJvcik7CisKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjYW5NYWtlUGF5bWVudHNd
IHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNhbk1ha2VQYXltZW50cyk7CisgICAg
ICAgIH0pOworICAgIH0pLmdldCgpKTsKKyNlbHNlCisgICAgUEtDYW5NYWtlUGF5bWVudHNXaXRo
TWVyY2hhbnRJZGVudGlmaWVyQW5kRG9tYWluKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFt
ZSwgQmxvY2tQdHI8dm9pZChCT09MLCBOU0Vycm9yICopPjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShCT09MIGNhbk1ha2VQYXlt
ZW50cywgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3IpCisgICAg
ICAgICAgICBMT0dfRVJST1IoIlBLQ2FuTWFrZVBheW1lbnRzV2l0aE1lcmNoYW50SWRlbnRpZmll
ckFuZERvbWFpbiBlcnJvciAlQCIsIGVycm9yKTsKKworICAgICAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IGNhbk1ha2VQYXltZW50c10geworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY2FuTWFr
ZVBheW1lbnRzKTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCkpOworI2VuZGlmCit9CisKK3Zv
aWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybU9wZW5QYXltZW50U2V0
dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWlu
TmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGF1dG8gcGFzc0xpYnJhcnkgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXNzTGlicmFyeUlu
c3RhbmNlKCkgaW5pdF0pOworICAgIFtwYXNzTGlicmFyeSBvcGVuUGF5bWVudFNldHVwRm9yTWVy
Y2hhbnRJZGVudGlmaWVyOm1lcmNoYW50SWRlbnRpZmllciBkb21haW46ZG9tYWluTmFtZSBjb21w
bGV0aW9uOkJsb2NrUHRyPHZvaWQoQk9PTCk+Ojpmcm9tQ2FsbGFibGUoW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCByZXN1bHRdIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHJlc3VsdCk7CisgICAgICAgIH0pOworICAgIH0pLmdldCgpXTsKK30KKworI2lm
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MzAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTEwMDAwKQorc3RhdGljIFJldGFpblB0cjxOU1NldD4gdG9QS0NvbnRhY3RG
aWVsZHMoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkNvbnRh
Y3RGaWVsZHMmIGNvbnRhY3RGaWVsZHMpCit7CisgICAgVmVjdG9yPE5TU3RyaW5nICo+IHJlc3Vs
dDsKKyAgICAKKyAgICBpZiAoY29udGFjdEZpZWxkcy5wb3N0YWxBZGRyZXNzKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNz
KCkpOworICAgIGlmIChjb250YWN0RmllbGRzLnBob25lKQorICAgICAgICByZXN1bHQuYXBwZW5k
KFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQaG9uZU51bWJlcigpKTsKKyAgICBpZiAo
Y29udGFjdEZpZWxkcy5lbWFpbCkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChQQUw6OmdldF9QYXNz
S2l0X1BLQ29udGFjdEZpZWxkRW1haWxBZGRyZXNzKCkpOworICAgIGlmIChjb250YWN0RmllbGRz
Lm5hbWUpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RG
aWVsZE5hbWUoKSk7CisgICAgaWYgKGNvbnRhY3RGaWVsZHMucGhvbmV0aWNOYW1lKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQaG9uZXRpY05h
bWUoKSk7CisgICAgCisgICAgcmV0dXJuIGFkb3B0TlMoW1tOU1NldCBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOnJlc3VsdC5kYXRhKCkgY291bnQ6cmVzdWx0LnNpemUoKV0pOworfQorI2Vsc2UKK3N0
YXRpYyBQS0FkZHJlc3NGaWVsZCB0b1BLQWRkcmVzc0ZpZWxkKGNvbnN0IFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpDb250YWN0RmllbGRzJiBjb250YWN0RmllbGRzKQor
eworICAgIFBLQWRkcmVzc0ZpZWxkIHJlc3VsdCA9IDA7CisgICAgCisgICAgaWYgKGNvbnRhY3RG
aWVsZHMucG9zdGFsQWRkcmVzcykKKyAgICAgICAgcmVzdWx0IHw9IFBLQWRkcmVzc0ZpZWxkUG9z
dGFsQWRkcmVzczsKKyAgICBpZiAoY29udGFjdEZpZWxkcy5waG9uZSkKKyAgICAgICAgcmVzdWx0
IHw9IFBLQWRkcmVzc0ZpZWxkUGhvbmU7CisgICAgaWYgKGNvbnRhY3RGaWVsZHMuZW1haWwpCisg
ICAgICAgIHJlc3VsdCB8PSBQS0FkZHJlc3NGaWVsZEVtYWlsOworICAgIGlmIChjb250YWN0Rmll
bGRzLm5hbWUpCisgICAgICAgIHJlc3VsdCB8PSBQS0FkZHJlc3NGaWVsZE5hbWU7CisgICAgCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKyNlbmRpZgorICAgIAorc3RhdGljIFBLUGF5bWVudFN1bW1h
cnlJdGVtVHlwZSB0b1BLUGF5bWVudFN1bW1hcnlJdGVtVHlwZShXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6TGluZUl0ZW06OlR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjpMaW5lSXRlbTo6VHlwZTo6RmluYWw6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRTdW1tYXJ5
SXRlbVR5cGVGaW5hbDsKKworICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OkxpbmVJdGVtOjpUeXBlOjpQZW5kaW5nOgorICAgICAgICByZXR1cm4gUEtQYXlt
ZW50U3VtbWFyeUl0ZW1UeXBlUGVuZGluZzsKKyAgICB9Cit9CisKK3N0YXRpYyBOU0RlY2ltYWxO
dW1iZXIgKnRvRGVjaW1hbE51bWJlcihjb25zdCBTdHJpbmcmIGFtb3VudCkKK3sKKyAgICBpZiAo
IWFtb3VudCkKKyAgICAgICAgcmV0dXJuIFtOU0RlY2ltYWxOdW1iZXIgemVyb107CisgICAgcmV0
dXJuIFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6YW1vdW50IGxvY2Fs
ZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1dOworfQorCitzdGF0aWMgUmV0
YWluUHRyPFBLUGF5bWVudFN1bW1hcnlJdGVtPiB0b1BLUGF5bWVudFN1bW1hcnlJdGVtKGNvbnN0
IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbSYgbGluZUl0
ZW0pCit7CisgICAgcmV0dXJuIFtQQUw6OmdldFBLUGF5bWVudFN1bW1hcnlJdGVtQ2xhc3MoKSBz
dW1tYXJ5SXRlbVdpdGhMYWJlbDpsaW5lSXRlbS5sYWJlbCBhbW91bnQ6dG9EZWNpbWFsTnVtYmVy
KGxpbmVJdGVtLmFtb3VudCkgdHlwZTp0b1BLUGF5bWVudFN1bW1hcnlJdGVtVHlwZShsaW5lSXRl
bS50eXBlKV07Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gdG9QS1BheW1lbnRTdW1t
YXJ5SXRlbXMoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRv
dGFsQW5kTGluZUl0ZW1zJiB0b3RhbEFuZExpbmVJdGVtcykKK3sKKyAgICBhdXRvIHBheW1lbnRT
dW1tYXJ5SXRlbXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAg
ICBmb3IgKGF1dG8mIGxpbmVJdGVtIDogdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zKSB7Cisg
ICAgICAgIGlmIChhdXRvIHN1bW1hcnlJdGVtID0gdG9QS1BheW1lbnRTdW1tYXJ5SXRlbShsaW5l
SXRlbSkpCisgICAgICAgICAgICBbcGF5bWVudFN1bW1hcnlJdGVtcyBhZGRPYmplY3Q6c3VtbWFy
eUl0ZW0uZ2V0KCldOworICAgIH0KKworICAgIGlmIChhdXRvIHRvdGFsSXRlbSA9IHRvUEtQYXlt
ZW50U3VtbWFyeUl0ZW0odG90YWxBbmRMaW5lSXRlbXMudG90YWwpKQorICAgICAgICBbcGF5bWVu
dFN1bW1hcnlJdGVtcyBhZGRPYmplY3Q6dG90YWxJdGVtLmdldCgpXTsKKworICAgIHJldHVybiBw
YXltZW50U3VtbWFyeUl0ZW1zOworfQorICAgIAorc3RhdGljIFBLTWVyY2hhbnRDYXBhYmlsaXR5
IHRvUEtNZXJjaGFudENhcGFiaWxpdGllcyhjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMmIG1lcmNoYW50Q2FwYWJpbGl0aWVz
KQoreworICAgIFBLTWVyY2hhbnRDYXBhYmlsaXR5IHJlc3VsdCA9IDA7CisgICAgaWYgKG1lcmNo
YW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzM0RTKQorICAgICAgICByZXN1bHQgfD0gUEtNZXJjaGFu
dENhcGFiaWxpdHkzRFM7CisgICAgaWYgKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzRU1W
KQorICAgICAgICByZXN1bHQgfD0gUEtNZXJjaGFudENhcGFiaWxpdHlFTVY7CisgICAgaWYgKG1l
cmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzQ3JlZGl0KQorICAgICAgICByZXN1bHQgfD0gUEtN
ZXJjaGFudENhcGFiaWxpdHlDcmVkaXQ7CisgICAgaWYgKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1
cHBvcnRzRGViaXQpCisgICAgICAgIHJlc3VsdCB8PSBQS01lcmNoYW50Q2FwYWJpbGl0eURlYml0
OworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJh
eT4gdG9TdXBwb3J0ZWROZXR3b3Jrcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3VwcG9ydGVkTmV0
d29ya3MpCit7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6c3VwcG9ydGVkTmV0d29ya3Muc2l6ZSgpXSk7CisgICAgZm9y
IChhdXRvJiBzdXBwb3J0ZWROZXR3b3JrIDogc3VwcG9ydGVkTmV0d29ya3MpCisgICAgICAgIFty
ZXN1bHQgYWRkT2JqZWN0OnN1cHBvcnRlZE5ldHdvcmtdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisgICAgCitzdGF0aWMgUEtTaGlwcGluZ1R5cGUgdG9QS1NoaXBwaW5nVHlwZShXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdUeXBlIHNoaXBwaW5nVHlwZSkK
K3sKKyAgICBzd2l0Y2ggKHNoaXBwaW5nVHlwZSkgeworICAgICAgICBjYXNlIFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ1R5cGU6OlNoaXBwaW5nOgorICAg
ICAgICAgICAgcmV0dXJuIFBLU2hpcHBpbmdUeXBlU2hpcHBpbmc7CisgICAgICAgICAgICAKKyAg
ICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdUeXBlOjpEZWxpdmVyeToKKyAgICAgICAgICAgIHJldHVybiBQS1NoaXBwaW5nVHlwZURlbGl2
ZXJ5OworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nVHlwZTo6U3RvcmVQaWNrdXA6CisgICAgICAgICAgICBy
ZXR1cm4gUEtTaGlwcGluZ1R5cGVTdG9yZVBpY2t1cDsKKyAgICAgICAgICAgIAorICAgICAgICBj
YXNlIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ1R5cGU6
OlNlcnZpY2VQaWNrdXA6CisgICAgICAgICAgICByZXR1cm4gUEtTaGlwcGluZ1R5cGVTZXJ2aWNl
UGlja3VwOworICAgIH0KK30KKworc3RhdGljIFJldGFpblB0cjxQS1NoaXBwaW5nTWV0aG9kPiB0
b1BLU2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3sKKyAgICBSZXRhaW5QdHI8
UEtTaGlwcGluZ01ldGhvZD4gcmVzdWx0ID0gW1BBTDo6Z2V0UEtTaGlwcGluZ01ldGhvZENsYXNz
KCkgc3VtbWFyeUl0ZW1XaXRoTGFiZWw6c2hpcHBpbmdNZXRob2QubGFiZWwgYW1vdW50OnRvRGVj
aW1hbE51bWJlcihzaGlwcGluZ01ldGhvZC5hbW91bnQpXTsKKyAgICBbcmVzdWx0IHNldElkZW50
aWZpZXI6c2hpcHBpbmdNZXRob2QuaWRlbnRpZmllcl07CisgICAgW3Jlc3VsdCBzZXREZXRhaWw6
c2hpcHBpbmdNZXRob2QuZGV0YWlsXTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMw
MCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkKK3N0YXRpYyBSZXRhaW5QdHI8TlNTZXQ+IHRvTlNTZXQoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCit7CisgICAgaWYgKHN0cmluZ3MuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIGF1dG8gbXV0YWJsZVNldCA9IGFkb3B0TlMo
W1tOU011dGFibGVTZXQgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c3RyaW5ncy5zaXplKCldKTsK
KyAgICBmb3IgKGF1dG8mIHN0cmluZyA6IHN0cmluZ3MpCisgICAgICAgIFttdXRhYmxlU2V0IGFk
ZE9iamVjdDpzdHJpbmddOworICAgIAorICAgIHJldHVybiBXVEZNb3ZlKG11dGFibGVTZXQpOwor
fQorI2VuZGlmCisgICAgCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEzMDAgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEwMTMwNCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3N0YXRpYyBQS1BheW1lbnRSZXF1
ZXN0QVBJVHlwZSB0b0FQSVR5cGUoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlJlcXVlc3RlciByZXF1ZXN0ZXIpCit7CisgICAgc3dpdGNoIChyZXF1ZXN0ZXIpIHsKKyAg
ICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6UmVxdWVz
dGVyOjpBcHBsZVBheUpTOgorICAgICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFJlcXVlc3RBUElU
eXBlV2ViSlM7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlJlcXVlc3Rlcjo6UGF5bWVudFJlcXVlc3Q6CisgICAgICAgICAgICByZXR1cm4gUEtQ
YXltZW50UmVxdWVzdEFQSVR5cGVXZWJQYXltZW50UmVxdWVzdDsKKyAgICB9Cit9CisjZW5kaWYK
KyAgICAKK1JldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiB0b1BLUGF5bWVudFJlcXVlc3QoY29u
c3QgV1RGOjpVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8V1RGOjpVUkw+JiBsaW5r
SWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiBw
YXltZW50UmVxdWVzdCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQ
S1BheW1lbnRSZXF1ZXN0SW5zdGFuY2UoKSBpbml0XSk7CisgICAgCisgICAgW3Jlc3VsdCBzZXRP
cmlnaW5hdGluZ1VSTDpvcmlnaW5hdGluZ1VSTF07CisgICAgCisgICAgaWYgKFtyZXN1bHQgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRUaHVtYm5haWxVUkxzOildKSB7CisgICAgICAg
IGF1dG8gdGh1bWJuYWlsVVJMcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dF0pOworICAgICAgICBmb3IgKGF1dG8mIGxpbmtJY29uVVJMIDogbGlua0ljb25VUkxzKQorICAg
ICAgICAgICAgW3RodW1ibmFpbFVSTHMgYWRkT2JqZWN0OnN0YXRpY19jYXN0PE5TVVJMICo+KGxp
bmtJY29uVVJMKV07CisgICAgICAgIAorICAgICAgICBbcmVzdWx0IHNldFRodW1ibmFpbFVSTHM6
dGh1bWJuYWlsVVJMcy5nZXQoKV07CisgICAgfSBlbHNlIGlmICghbGlua0ljb25VUkxzLmlzRW1w
dHkoKSkKKyAgICAgICAgW3Jlc3VsdCBzZXRUaHVtYm5haWxVUkw6bGlua0ljb25VUkxzWzBdXTsK
KyAgICAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMCAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMzA0
KSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFtyZXN1bHQgc2V0QVBJVHlwZTp0b0FQSVR5
cGUocGF5bWVudFJlcXVlc3QucmVxdWVzdGVyKCkpXTsKKyNlbmRpZgorICAgIAorICAgIFtyZXN1
bHQgc2V0Q291bnRyeUNvZGU6cGF5bWVudFJlcXVlc3QuY291bnRyeUNvZGUoKV07CisgICAgW3Jl
c3VsdCBzZXRDdXJyZW5jeUNvZGU6cGF5bWVudFJlcXVlc3QuY3VycmVuY3lDb2RlKCldOworICAg
IFtyZXN1bHQgc2V0QmlsbGluZ0NvbnRhY3Q6cGF5bWVudFJlcXVlc3QuYmlsbGluZ0NvbnRhY3Qo
KS5wa0NvbnRhY3QoKV07CisgICAgW3Jlc3VsdCBzZXRTaGlwcGluZ0NvbnRhY3Q6cGF5bWVudFJl
cXVlc3Quc2hpcHBpbmdDb250YWN0KCkucGtDb250YWN0KCldOworI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEw
MDAwKQorICAgIFtyZXN1bHQgc2V0UmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkczp0b1BLQ29u
dGFjdEZpZWxkcyhwYXltZW50UmVxdWVzdC5yZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzKCkp
LmdldCgpXTsKKyAgICBbcmVzdWx0IHNldFJlcXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzOnRv
UEtDb250YWN0RmllbGRzKHBheW1lbnRSZXF1ZXN0LnJlcXVpcmVkU2hpcHBpbmdDb250YWN0Rmll
bGRzKCkpLmdldCgpXTsKKyNlbHNlCisgICAgW3Jlc3VsdCBzZXRSZXF1aXJlZEJpbGxpbmdBZGRy
ZXNzRmllbGRzOnRvUEtBZGRyZXNzRmllbGQocGF5bWVudFJlcXVlc3QucmVxdWlyZWRCaWxsaW5n
Q29udGFjdEZpZWxkcygpKV07CisgICAgW3Jlc3VsdCBzZXRSZXF1aXJlZFNoaXBwaW5nQWRkcmVz
c0ZpZWxkczp0b1BLQWRkcmVzc0ZpZWxkKHBheW1lbnRSZXF1ZXN0LnJlcXVpcmVkU2hpcHBpbmdD
b250YWN0RmllbGRzKCkpXTsKKyNlbmRpZgorICAgIAorICAgIFtyZXN1bHQgc2V0U3VwcG9ydGVk
TmV0d29ya3M6dG9TdXBwb3J0ZWROZXR3b3JrcyhwYXltZW50UmVxdWVzdC5zdXBwb3J0ZWROZXR3
b3JrcygpKS5nZXQoKV07CisgICAgW3Jlc3VsdCBzZXRNZXJjaGFudENhcGFiaWxpdGllczp0b1BL
TWVyY2hhbnRDYXBhYmlsaXRpZXMocGF5bWVudFJlcXVlc3QubWVyY2hhbnRDYXBhYmlsaXRpZXMo
KSldOworICAgIAorICAgIFtyZXN1bHQgc2V0U2hpcHBpbmdUeXBlOnRvUEtTaGlwcGluZ1R5cGUo
cGF5bWVudFJlcXVlc3Quc2hpcHBpbmdUeXBlKCkpXTsKKyAgICAKKyAgICBhdXRvIHNoaXBwaW5n
TWV0aG9kcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgIGZv
ciAoYXV0byYgc2hpcHBpbmdNZXRob2QgOiBwYXltZW50UmVxdWVzdC5zaGlwcGluZ01ldGhvZHMo
KSkKKyAgICAgICAgW3NoaXBwaW5nTWV0aG9kcyBhZGRPYmplY3Q6dG9QS1NoaXBwaW5nTWV0aG9k
KHNoaXBwaW5nTWV0aG9kKS5nZXQoKV07CisgICAgW3Jlc3VsdCBzZXRTaGlwcGluZ01ldGhvZHM6
c2hpcHBpbmdNZXRob2RzLmdldCgpXTsKKyAgICAKKyAgICBhdXRvIHBheW1lbnRTdW1tYXJ5SXRl
bXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKGF1
dG8mIGxpbmVJdGVtIDogcGF5bWVudFJlcXVlc3QubGluZUl0ZW1zKCkpIHsKKyAgICAgICAgaWYg
KGF1dG8gc3VtbWFyeUl0ZW0gPSB0b1BLUGF5bWVudFN1bW1hcnlJdGVtKGxpbmVJdGVtKSkKKyAg
ICAgICAgICAgIFtwYXltZW50U3VtbWFyeUl0ZW1zIGFkZE9iamVjdDpzdW1tYXJ5SXRlbS5nZXQo
KV07CisgICAgfQorICAgIAorICAgIGlmIChhdXRvIHRvdGFsSXRlbSA9IHRvUEtQYXltZW50U3Vt
bWFyeUl0ZW0ocGF5bWVudFJlcXVlc3QudG90YWwoKSkpCisgICAgICAgIFtwYXltZW50U3VtbWFy
eUl0ZW1zIGFkZE9iamVjdDp0b3RhbEl0ZW0uZ2V0KCldOworICAgIAorICAgIFtyZXN1bHQgc2V0
UGF5bWVudFN1bW1hcnlJdGVtczpwYXltZW50U3VtbWFyeUl0ZW1zLmdldCgpXTsKKyAgICAKKyAg
ICBbcmVzdWx0IHNldEV4cGVjdHNNZXJjaGFudFNlc3Npb246WUVTXTsKKyAgICAKKyAgICBpZiAo
IXBheW1lbnRSZXF1ZXN0LmFwcGxpY2F0aW9uRGF0YSgpLmlzTnVsbCgpKSB7CisgICAgICAgIGF1
dG8gYXBwbGljYXRpb25EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNl
NjRFbmNvZGVkU3RyaW5nOnBheW1lbnRSZXF1ZXN0LmFwcGxpY2F0aW9uRGF0YSgpIG9wdGlvbnM6
MF0pOworICAgICAgICBbcmVzdWx0IHNldEFwcGxpY2F0aW9uRGF0YTphcHBsaWNhdGlvbkRhdGEu
Z2V0KCldOworICAgIH0KKyAgICAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBbcmVzdWx0
IHNldFN1cHBvcnRlZENvdW50cmllczp0b05TU2V0KHBheW1lbnRSZXF1ZXN0LnN1cHBvcnRlZENv
dW50cmllcygpKS5nZXQoKV07CisjZW5kaWYKKyAgICAKKyAgICAvLyBUT0RPOiBzZXQgcHJpbWFy
eSBhbmQgc2Vjb25kYXJ5IGFwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyIGhlcmUKKyAgICAv
LyBsaWtlIGFuYWxvZ291cyBmdW5jdGlvbiBpbiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNv
Y29hLm1tCisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEw
MDAwKQorc3RhdGljIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMgdG9QS1BheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzKFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHN0YXR1
cykKK3sKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzU3VjY2VzczsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzOjpGYWlsdXJlOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1c0ZhaWx1cmU7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1czo6UElOUmVxdWlyZWQ6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzUElOUmVxdWlyZWQ7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1czo6UElOSW5jb3JyZWN0OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9y
aXphdGlvblN0YXR1c1BJTkluY29ycmVjdDsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzOjpQSU5Mb2Nrb3V0OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0
aG9yaXphdGlvblN0YXR1c1BJTkxvY2tvdXQ7CisgICAgfQorfQorCitzdGF0aWMgUEtQYXltZW50
RXJyb3JDb2RlIHRvUEtQYXltZW50RXJyb3JDb2RlKFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29k
ZSBjb2RlKQoreworICAgIHN3aXRjaCAoY29kZSkgeworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb2RlOjpVbmtub3duOgorICAgICAgICByZXR1cm4gUEtQYXltZW50VW5rbm93bkVy
cm9yOworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRh
Y3RJbnZhbGlkOgorICAgICAgICByZXR1cm4gUEtQYXltZW50U2hpcHBpbmdDb250YWN0SW52YWxp
ZEVycm9yOworICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpCaWxsaW5nQ29u
dGFjdEludmFsaWQ6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRCaWxsaW5nQ29udGFjdEludmFs
aWRFcnJvcjsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QWRkcmVzc1Vu
c2VydmljZWFibGU6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRTaGlwcGluZ0FkZHJlc3NVbnNl
cnZpY2VhYmxlRXJyb3I7CisgICAgfQorfQorCitzdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IHRv
TlNFcnJvcihjb25zdCBXZWJDb3JlOjpQYXltZW50RXJyb3ImIGVycm9yKQoreworICAgIGF1dG8g
dXNlckluZm8gPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwor
ICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6ZXJyb3IubWVzc2FnZSBmb3JLZXk6TlNMb2NhbGl6ZWRE
ZXNjcmlwdGlvbktleV07CisKKyAgICBpZiAoZXJyb3IuY29udGFjdEZpZWxkKSB7CisgICAgICAg
IE5TU3RyaW5nICpwa0NvbnRhY3RGaWVsZCA9IG5pbDsKKyAgICAgICAgTlNTdHJpbmcgKnBvc3Rh
bEFkZHJlc3NLZXkgPSBuaWw7CisKKyAgICAgICAgc3dpdGNoICgqZXJyb3IuY29udGFjdEZpZWxk
KSB7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBo
b25lTnVtYmVyOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0
X1BLQ29udGFjdEZpZWxkUGhvbmVOdW1iZXIoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVz
czoKKyAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRh
Y3RGaWVsZEVtYWlsQWRkcmVzcygpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6TmFtZToKKyAgICAgICAgICAg
IHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZE5hbWUoKTsK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb250YWN0RmllbGQ6OlBob25ldGljTmFtZToKKyAgICAgICAgICAgIHBrQ29udGFjdEZpZWxk
ID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBob25ldGljTmFtZSgpOworICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRh
Y3RGaWVsZDo6UG9zdGFsQWRkcmVzczoKKyAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFM
OjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0Rmll
bGQ6OkFkZHJlc3NMaW5lczoKKyAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRf
UGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKKyAgICAgICAgICAgIHBvc3Rh
bEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NTdHJlZXRLZXkoKTsKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0Rmll
bGQ6OlN1YkxvY2FsaXR5OgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9Q
YXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFs
QWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1N1YkxvY2FsaXR5S2V5KCk7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFj
dEZpZWxkOjpMb2NhbGl0eToKKyAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRf
UGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKKyAgICAgICAgICAgIHBvc3Rh
bEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NDaXR5S2V5KCk7CisgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxk
OjpQb3N0YWxDb2RlOgorICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNz
S2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOworICAgICAgICAgICAgcG9zdGFsQWRk
cmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1Bvc3RhbENvZGVLZXkoKTsKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0Rmll
bGQ6OlN1YkFkbWluaXN0cmF0aXZlQXJlYToKKyAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0g
UEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKKyAgICAgICAg
ICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NTdWJBZG1pbmlzdHJhdGl2
ZUFyZWFLZXkoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFkbWluaXN0cmF0aXZlQXJlYToKKyAgICAgICAg
ICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3Rh
bEFkZHJlc3MoKTsKKyAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFk
ZHJlc3NTdGF0ZUtleSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6Q291bnRyeToKKyAgICAgICAgICAgIHBr
Q29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJl
c3MoKTsKKyAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3ND
b3VudHJ5S2V5KCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdlYkNvcmU6
OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpDb3VudHJ5Q29kZToKKyAgICAgICAgICAgIHBr
Q29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJl
c3MoKTsKKyAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NJ
U09Db3VudHJ5Q29kZUtleSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAg
ICAgICBbdXNlckluZm8gc2V0T2JqZWN0OnBrQ29udGFjdEZpZWxkIGZvcktleTpQQUw6OmdldF9Q
YXNzS2l0X1BLUGF5bWVudEVycm9yQ29udGFjdEZpZWxkVXNlckluZm9LZXkoKV07CisgICAgICAg
IGlmIChwb3N0YWxBZGRyZXNzS2V5KQorICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpw
b3N0YWxBZGRyZXNzS2V5IGZvcktleTpQQUw6OmdldF9QYXNzS2l0X1BLUGF5bWVudEVycm9yUG9z
dGFsQWRkcmVzc1VzZXJJbmZvS2V5KCldOworICAgIH0KKworICAgIHJldHVybiBhZG9wdE5TKFtb
TlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46Z2V0UEtQYXltZW50RXJyb3JEb21haW4oKSBj
b2RlOnRvUEtQYXltZW50RXJyb3JDb2RlKGVycm9yLmNvZGUpIHVzZXJJbmZvOnVzZXJJbmZvLmdl
dCgpXSk7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gdG9OU0Vycm9ycyhjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6UGF5bWVudEVycm9yPiYgZXJyb3JzKQoreworICAgIGF1dG8gcmVzdWx0
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAgICBmb3IgKGF1
dG8gZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAgaWYgKGF1dG8gbnNFcnJvciA9IHRvTlNFcnJv
cihlcnJvcikpCisgICAgICAgICAgICBbcmVzdWx0IGFkZE9iamVjdDpuc0Vycm9yLmdldCgpXTsK
KyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorI2Vsc2UKK3N0YXRpYyBQS1BheW1lbnRB
dXRob3JpemF0aW9uU3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhjb25zdCBP
cHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkKK3sK
KyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXNTdWNjZXNzOworCisgICAgaWYgKHJlc3VsdC0+ZXJyb3JzLnNpemUoKSA9PSAxKSB7Cisg
ICAgICAgIGF1dG8mIGVycm9yID0gcmVzdWx0LT5lcnJvcnNbMF07CisgICAgICAgIHN3aXRjaCAo
ZXJyb3IuY29kZSkgeworICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6
VW5rbm93bjoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkFkZHJl
c3NVbnNlcnZpY2VhYmxlOgorICAgICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXNGYWlsdXJlOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpD
b2RlOjpCaWxsaW5nQ29udGFjdEludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4gUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1c0ludmFsaWRCaWxsaW5nUG9zdGFsQWRkcmVzczsKKworICAgICAg
ICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZDoKKyAgICAgICAgICAgIGlmIChlcnJvci5jb250YWN0RmllbGQgJiYgZXJyb3IuY29udGFjdEZp
ZWxkID09IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNz
KQorICAgICAgICAgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzSW52
YWxpZFNoaXBwaW5nUG9zdGFsQWRkcmVzczsKKworICAgICAgICAgICAgcmV0dXJuIFBLUGF5bWVu
dEF1dGhvcml6YXRpb25TdGF0dXNJbnZhbGlkU2hpcHBpbmdDb250YWN0OworICAgICAgICB9Cisg
ICAgfQorCisgICAgc3dpdGNoIChyZXN1bHQtPnN0YXR1cykgeworICAgIGNhc2UgV2ViQ29yZTo6
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M6CisgICAgICAgIHJldHVybiBQS1Bh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzU3VjY2VzczsKKyAgICBjYXNlIFdlYkNvcmU6OlBheW1l
bnRBdXRob3JpemF0aW9uU3RhdHVzOjpGYWlsdXJlOgorICAgICAgICByZXR1cm4gUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1c0ZhaWx1cmU7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0
aG9yaXphdGlvblN0YXR1czo6UElOUmVxdWlyZWQ6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRB
dXRob3JpemF0aW9uU3RhdHVzUElOUmVxdWlyZWQ7CisgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1czo6UElOSW5jb3JyZWN0OgorICAgICAgICByZXR1cm4gUEtQYXlt
ZW50QXV0aG9yaXphdGlvblN0YXR1c1BJTkluY29ycmVjdDsKKyAgICBjYXNlIFdlYkNvcmU6OlBh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5Mb2Nrb3V0OgorICAgICAgICByZXR1cm4gUEtQ
YXltZW50QXV0aG9yaXphdGlvblN0YXR1c1BJTkxvY2tvdXQ7CisgICAgfQorCisgICAgcmV0dXJu
IFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOworfQorI2VuZGlmCisKK3ZvaWQg
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNl
c3Npb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+
JiByZXN1bHQpCit7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVy
KTsKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7
CisKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fZGlkUmVh
Y2hGaW5hbFN0YXRlID0gV2ViQ29yZTo6aXNGaW5hbFN0YXRlUmVzdWx0KHJlc3VsdCk7CisKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBhdXRvIHN0YXR1cyA9IHJlc3VsdCA/IHJlc3VsdC0+
c3RhdHVzIDogV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M7Cisg
ICAgYXV0byBwa1BheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0ID0gYWRvcHROUyhbUEFMOjphbGxv
Y1BLUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRJbnN0YW5jZSgpIGluaXRXaXRoU3RhdHVzOnRv
UEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhzdGF0dXMpIGVycm9yczpyZXN1bHQgPyB0b05T
RXJyb3JzKHJlc3VsdC0+ZXJyb3JzKS5nZXQoKSA6IEBbIF1dKTsKKyAgICBtX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudEF1dGhvcml6ZWRDb21wbGV0aW9u
KHBrUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuZ2V0KCkpOworI2Vsc2UKKyAgICBtX3BheW1l
bnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudEF1dGhvcml6ZWRDb21w
bGV0aW9uKHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhyZXN1bHQpKTsKKyNlbmRpZgor
ICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50QXV0
aG9yaXplZENvbXBsZXRpb24gPSBudWxscHRyOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBX
ZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQor
eworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcik7CisgICAgQVNT
RVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUpOworCisgICAgbV9w
YXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3Nlc3Npb25CbG9jayhwYXlt
ZW50TWVyY2hhbnRTZXNzaW9uLnBrUGF5bWVudE1lcmNoYW50U2Vzc2lvbigpLCBudWxscHRyKTsK
KyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fc2Vzc2lvbkJs
b2NrID0gbnVsbHB0cjsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3sKKyAgICBBU1NFUlQobV9w
YXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIpOworICAgIEFTU0VSVChtX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlKTsKKworICAgIGlmICh1cGRhdGUpCisgICAgICAg
IG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXltZW50U3VtbWFy
eUl0ZW1zID0gdG9QS1BheW1lbnRTdW1tYXJ5SXRlbXModXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJ
dGVtcyk7CisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKKyAgICBhdXRvIHBrU2hpcHBpbmdNZXRo
b2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0
aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6bV9wYXltZW50
QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X3BheW1lbnRTdW1tYXJ5SXRlbXMuZ2V0
KCldKTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fZGlk
U2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uKHBrU2hpcHBpbmdNZXRob2RVcGRhdGUuZ2V0
KCkpOworI2Vsc2UKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRl
LT5fZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21wbGV0aW9uKFBLUGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXNTdWNjZXNzLCBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRl
LT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKSk7CisjZW5kaWYKKyAgICBtX3BheW1lbnRBdXRo
b3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fZGlkU2VsZWN0U2hpcHBpbmdNZXRob2RDb21w
bGV0aW9uID0gbnVsbHB0cjsKK30KKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDExMDAwMCkKK3N0YXRpYyBQS1Bh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRhdGUpCit7
CisgICAgaWYgKCF1cGRhdGUgfHwgdXBkYXRlLT5lcnJvcnMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nlc3M7CisKKyAgICBpZiAodXBk
YXRlLT5lcnJvcnMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgYXV0byYgZXJyb3IgPSB1cGRhdGUt
PmVycm9yc1swXTsKKyAgICAgICAgc3dpdGNoIChlcnJvci5jb2RlKSB7CisgICAgICAgIGNhc2Ug
V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpVbmtub3duOgorICAgICAgICBjYXNlIFdlYkNv
cmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QWRkcmVzc1Vuc2VydmljZWFibGU6CisgICAgICAgICAg
ICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0ZhaWx1cmU7CisKKyAgICAgICAg
Y2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZDoK
KyAgICAgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzSW52YWxpZEJp
bGxpbmdQb3N0YWxBZGRyZXNzOworCisgICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkOgorICAgICAgICAgICAgaWYgKGVycm9yLmNv
bnRhY3RGaWVsZCAmJiBlcnJvci5jb250YWN0RmllbGQgPT0gV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIFBL
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNJbnZhbGlkU2hpcHBpbmdQb3N0YWxBZGRyZXNzOwor
CisgICAgICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c0ludmFsaWRT
aGlwcGluZ0NvbnRhY3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gUEtQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1c0ZhaWx1cmU7Cit9CisjZW5kaWYKKwordm9pZCBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBk
YXRlKQoreworICAgIEFTU0VSVChtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlcik7Cisg
ICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUpOworCisg
ICAgaWYgKHVwZGF0ZSkgeworICAgICAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
ckRlbGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVtcyA9IHRvUEtQYXltZW50U3VtbWFyeUl0ZW1z
KHVwZGF0ZS0+bmV3VG90YWxBbmRMaW5lSXRlbXMpOworCisgICAgICAgIGF1dG8gc2hpcHBpbmdN
ZXRob2RzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAg
IGZvciAoYXV0byYgc2hpcHBpbmdNZXRob2QgOiB1cGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9kcykK
KyAgICAgICAgICAgIFtzaGlwcGluZ01ldGhvZHMgYWRkT2JqZWN0OnRvUEtTaGlwcGluZ01ldGhv
ZChzaGlwcGluZ01ldGhvZCkuZ2V0KCldOworCisgICAgICAgIG1fcGF5bWVudEF1dGhvcml6YXRp
b25Db250cm9sbGVyRGVsZWdhdGUtPl9zaGlwcGluZ01ldGhvZHMgPSBXVEZNb3ZlKHNoaXBwaW5n
TWV0aG9kcyk7CisgICAgfQorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgYXV0byBwa1No
aXBwaW5nQ29udGFjdFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0
U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczp1cGRhdGUgPyB0
b05TRXJyb3JzKHVwZGF0ZS0+ZXJyb3JzKS5nZXQoKSA6IEBbIF0gcGF5bWVudFN1bW1hcnlJdGVt
czptX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudFN1bW1h
cnlJdGVtcy5nZXQoKSBzaGlwcGluZ01ldGhvZHM6bV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRy
b2xsZXJEZWxlZ2F0ZS0+X3NoaXBwaW5nTWV0aG9kcy5nZXQoKV0pOworICAgIG1fcGF5bWVudEF1
dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RD
b21wbGV0aW9uKHBrU2hpcHBpbmdDb250YWN0VXBkYXRlLmdldCgpKTsKKyNlbHNlCisgICAgbV9w
YXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFNoaXBwaW5n
Q29udGFjdENvbXBsZXRpb24odG9QS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKHVwZGF0ZSks
IG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9zaGlwcGluZ01ldGhv
ZHMuZ2V0KCksIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9wYXlt
ZW50U3VtbWFyeUl0ZW1zLmdldCgpKTsKKyNlbmRpZgorICAgIG1fcGF5bWVudEF1dGhvcml6YXRp
b25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3RDb21wbGV0aW9u
ID0gbnVsbHB0cjsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OnBs
YXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit7CisgICAgQVNTRVJUKG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyKTsKKyAgICBBU1NFUlQobV9wYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7CisKKyAgICBpZiAodXBkYXRlKQorICAgICAgICBtX3Bh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVt
cyA9IHRvUEtQYXltZW50U3VtbWFyeUl0ZW1zKHVwZGF0ZS0+bmV3VG90YWxBbmRMaW5lSXRlbXMp
OworCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCisgICAgYXV0byBwa1BheW1lbnRNZXRob2RVcGRh
dGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRh
dGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczptX3BheW1lbnRBdXRob3Jp
emF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVtcy5nZXQoKV0pOwor
ICAgIG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUtPl9kaWRTZWxlY3RQ
YXltZW50TWV0aG9kQ29tcGxldGlvbihwa1BheW1lbnRNZXRob2RVcGRhdGUuZ2V0KCkpOworI2Vs
c2UKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZENvbXBsZXRpb24obV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXJEZWxlZ2F0ZS0+X3BheW1lbnRTdW1tYXJ5SXRlbXMuZ2V0KCkpOworI2VuZGlmCisgICAgbV9w
YXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZS0+X2RpZFNlbGVjdFBheW1lbnRN
ZXRob2RDb21wbGV0aW9uID0gbnVsbHB0cjsKK30KKworVmVjdG9yPFN0cmluZz4gUGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUF2YWlsYWJsZVBheW1lbnROZXR3b3Jrcygp
Cit7CisgICAgTlNBcnJheTxQS1BheW1lbnROZXR3b3JrPiAqYXZhaWxhYmxlTmV0d29ya3MgPSBb
UEFMOjpnZXRQS1BheW1lbnRSZXF1ZXN0Q2xhc3MoKSBhdmFpbGFibGVOZXR3b3Jrc107CisgICAg
VmVjdG9yPFN0cmluZz4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGF2YWlsYWJsZU5ldHdvcmtzLmNvdW50KTsKKyAgICBmb3IgKFBLUGF5bWVudE5ldHdvcmsgbmV0
d29yayBpbiBhdmFpbGFibGVOZXR3b3JrcykKKyAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVu
ZChuZXR3b3JrKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvUGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclBy
b3h5SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZTNlMGMzNzUxYTUwYzliNTI4MGFlMjdmYjk4OTQ0NWY1
NDE2NWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNzL1Bh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUlPUy5tbQpAQCAtMCwwICsxLDc5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShBUFBM
RV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbXBvcnQgIkFQSVVJQ2xpZW50
LmgiCisjaW1wb3J0ICJQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5oIgorI2lt
cG9ydCA8UGFzc0tpdC9QYXNzS2l0Lmg+CisjaW1wb3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVy
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg+CisjaW1w
b3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1TaG93UGF5bWVu
dFVJKGNvbnN0IFdURjo6VVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdURjo6VVJM
PiYgbGlua0ljb25VUkxTdHJpbmdzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdCYgcmVxdWVzdCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIEFTU0VSVCghbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xs
ZXIpOworCisgICAgYXV0byBwYXltZW50UmVxdWVzdCA9IHRvUEtQYXltZW50UmVxdWVzdChvcmln
aW5hdGluZ1VSTCwgbGlua0ljb25VUkxTdHJpbmdzLCByZXF1ZXN0KTsKKworICAgIG1fcGF5bWVu
dEF1dGhvcml6YXRpb25Db250cm9sbGVyID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudEF1
dGhvcml6YXRpb25Db250cm9sbGVySW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRSZXF1ZXN0OnBh
eW1lbnRSZXF1ZXN0LmdldCgpXSk7CisgICAgaWYgKCFtX3BheW1lbnRBdXRob3JpemF0aW9uQ29u
dHJvbGxlcikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVn
YXRlID0gYWRvcHROUyhbW1dLUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyRGVsZWdhdGUg
YWxsb2NdIGluaXRXaXRoUGF5bWVudENvb3JkaW5hdG9yUHJveHk6KnRoaXNdKTsKKyAgICBtX3Bh
eW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fcGF5bWVudFN1bW1hcnlJdGVt
cyA9IFtwYXltZW50UmVxdWVzdCBwYXltZW50U3VtbWFyeUl0ZW1zXTsKKyAgICBtX3BheW1lbnRB
dXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRlLT5fc2hpcHBpbmdNZXRob2RzID0gW3BheW1l
bnRSZXF1ZXN0IHNoaXBwaW5nTWV0aG9kc107CisKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlv
bkNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJE
ZWxlZ2F0ZS5nZXQoKV07CisgICAgW21fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyIHNl
dFByaXZhdGVEZWxlZ2F0ZTptX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRl
LmdldCgpXTsKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgcHJlc2VudFdp
dGhDb21wbGV0aW9uOiBudWxscHRyXTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwor
fQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6aGlkZVBheW1lbnRVSSgp
Cit7CisgICAgQVNTRVJUKG1fcGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyKTsKKyAgICBB
U1NFUlQobV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSk7CisKKyAgICBb
bV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgZGlzbWlzc1dpdGhDb21wbGV0aW9uOm51
bGxwdHJdOworICAgIFttX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciBzZXREZWxlZ2F0
ZTpuaWxdOworICAgIFttX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciBzZXRQcml2YXRl
RGVsZWdhdGU6bmlsXTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlciA9IG51
bGxwdHI7CisKKyAgICBbbV9wYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSBp
bnZhbGlkYXRlXTsKKyAgICBtX3BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlckRlbGVnYXRl
ID0gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
aW5kZXggYzMxYzQwODhhMmQ2YmNkOTQxYmM3NzdjOWVhMzk1MWE5MTk5ZTc4ZS4uYzE2MTBhNTM1
ZjMyNDVhNTQ4YWUxNGE0YmFmMzc0NDVmNWZkNTI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJQYXltZW50UHJvY2Vzcy5oIgorI2luY2x1ZGUgIlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgpAQCAtNDksNyArNTAsNyBAQCBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6UGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZAogewogICAgIC8vIE5PVEU6IHdlIG11c3Qgc2V0IHRoaXMgdG8gdHJ1ZSBiZWNhdXNlIHRoZSBX
ZWJDb250ZW50IHByb2Nlc3MgbWF5IHJlLWVudGVyIHdoZW4gc2VuZGluZwogICAgIC8vIGEgc3lu
YyBJUEMgYW5kIHRoaXMgaXMgYSBodWdlIHNvdXJjZSBvZiBzZWN1cml0eSBidWdzCi0gICAgbV9j
b25uZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSkKKyAgICBtX2Nvbm5lY3Rpb24t
PnNldE9ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlXaGVu
UHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZSh0cnVlKTsKICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsK
IH0KIApAQCAtNjEsNyArNjIsMTIgQEAgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246On5Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCiB2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpIHsKLSAgICAgICAgUGF5bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVQYXlt
ZW50UHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIFBheW1lbnRQ
cm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFBheW1lbnRQcm9jZXNzOjpzaW5n
bGV0b24oKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtNzAsOSArNzYsNjEgQEAgdm9pZCBQYXltZW50VG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW8KIAogdm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeworICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nl
c3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBQYXltZW50UHJvY2Vzczo6c2lu
Z2xldG9uKCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5
RW5jb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UGF5bWVudFByb2Nl
c3NDb29yZGluYXRvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgUGF5
bWVudFByb2Nlc3M6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9u
LCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgICAgIAorICAg
IH0KKyAgICAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordm9pZCBQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6dmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlk
YXRpb25VUkxTdHJpbmcpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbjo6VmFsaWRhdGVNZXJjaGFudCh2YWxpZGF0aW9uVVJM
U3RyaW5nKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVudCYgcGF5bWVudCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpEaWRBdXRob3JpemVQYXltZW50KHBheW1lbnQpLCAwKTsKK30KKwordm9pZCBQYXltZW50
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlw
cGluZ01ldGhvZCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChzaGlwcGluZ01l
dGhvZCksIDApOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRT
ZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmIHNoaXBw
aW5nQ29udGFjdCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Qoc2hpcHBpbmdD
b250YWN0KSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYgcGF5bWVu
dE1ldGhvZCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uOjpEaWRTZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2Qp
LCAwKTsKK30KKwordm9pZCBQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FuY2Vs
UGF5bWVudFNlc3Npb24oKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCksIDAp
OworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjYW5NYWtlUGF5bWVu
dHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtlUGF5
bWVudHMpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJUb1BheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbjo6Q2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseShyZXF1
ZXN0SUQsIGNhbk1ha2VQYXltZW50cyksIDApOworfQorCit2b2lkIFBheW1lbnRUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpvcGVuUGF5bWVudFNldHVwUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBi
b29sIHJlc3VsdCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpPcGVuUGF5bWVudFNldHVwUmVwbHkocmVxdWVzdElELCBy
ZXN1bHQpLCAwKTsKK30KKyAgICAKIHZvaWQgUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBVTlVTRURfUEFS
QU0oY29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQcm9jZXNz
L1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BheW1lbnRQ
cm9jZXNzL1BheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODQ5YTllYjRhMTM3
NjQ0MTE2Y2FjZWQwMzgzMDdhYjM0MDgxY2ZmYy4uN2IzMTRhMDJhODg2M2JkM2JkZGE5MGMxZGRm
ZGM2YThiYmYxMWIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QYXltZW50UHJvY2Vzcy9Q
YXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGF5bWVu
dFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDAsNiArNDAsMTUg
QEAgcHVibGljOgogICAgIH5QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOwogCiAgICAg
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgp
OyB9CisgICAgCisgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRh
dGlvblVSTFN0cmluZyk7CisgICAgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNv
cmU6OlBheW1lbnQmKTsKKyAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdl
YkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOwor
ICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRD
b250YWN0Jik7CisgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6
OlBheW1lbnRNZXRob2QmKTsKKyAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7Cisg
ICAgdm9pZCBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVl
c3RJRCwgYm9vbCBjYW5NYWtlUGF5bWVudHMpOworICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cFJl
cGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCByZXN1bHQpOwogCiBwcml2YXRlOgogICAgIFBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0ZVN5bWJvbHNG
b3JUQVBJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0ZVN5bWJvbHNGb3JU
QVBJLmgKaW5kZXggZGYwOGVhMjhhZjhlY2I0MDY0Yzk5YzdiZTMzZTcyZmQ0ZDhiOTRjOC4uYmIy
ZmM3ZTNiMTEwOWE0NWQ4NDdjMzI3NDZmNDhmMDI2NGViMDRiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaApAQCAtMzAsNiAr
MzAsOSBAQCBleHRlcm4gIkMiIHsKICNlbmRpZgogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIGFm
dGVyIDxyZGFyOi8vcHJvYmxlbS8zMDc3MjAzMz4gaXMgZml4ZWQuCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKK3ZvaWQgUGF5bWVudFNlcnZpY2VJbml0aWFsaXplcigpOworI2VuZGlmCiB2
b2lkIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXIoKTsKIHZvaWQgUGx1Z2luU2VydmljZUluaXRp
YWxpemVyKCk7CiB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLXBheW1lbnRzLXNhbmRib3gtZW50aXRs
ZW1lbnRzLnNoIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtcGF5bWVudHMtc2FuZGJv
eC1lbnRpdGxlbWVudHMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA0ZjI4MGZiODYzN2FmMTMzOTA4NThkMjQ4
MGJkOTQ5ZGFjYWVhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9w
cm9jZXNzLXBheW1lbnRzLXNhbmRib3gtZW50aXRsZW1lbnRzLnNoCkBAIC0wLDAgKzEsMTQgQEAK
KyMhL2Jpbi9zaAorc2V0IC1lCisKK1BST0NFU1NFRF9YQ0VOVF9GSUxFPSIke1RFTVBfRklMRV9E
SVJ9LyR7RlVMTF9QUk9EVUNUX05BTUV9LnhjZW50IgorCitpZiBbWyAke1dLX1BMQVRGT1JNX05B
TUV9ID09ICJtYWNvc3giIF1dOyB0aGVuCisKKyAgICBpZiBbWyAke1dLX1VTRV9SRVNUUklDVEVE
X0VOVElUTEVNRU5UU30gPT0gIllFUyIgXV07IHRoZW4KKyAgICAgICAgZWNobyAiUHJvY2Vzc2lu
ZyByZXN0cmljdGVkIGVudGl0bGVtZW50cyBmb3IgSW50ZXJuYWwgU0RLIjsKKworICAgICAgICBl
Y2hvICJBZGRpbmcgc2FuZGJveCBlbnRpdGxlbWVudHMgZm9yIFBheW1lbnRzIHByb2Nlc3MuIjsK
KyAgICAgICAgL3Vzci9saWJleGVjL1BsaXN0QnVkZHkgLWMgIk1lcmdlIENvbmZpZ3VyYXRpb25z
L1BheW1lbnRzLWlvcy5lbnRpdGxlbWVudHMiICIke1BST0NFU1NFRF9YQ0VOVF9GSUxFfSI7Cisg
ICAgZmkKK2ZpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1l
bnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Bh
eW1lbnQvUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3
MzcwOTczNDAzZDQ2MzQwOGVkNjNiYmNlZjQ1NjNiZDAwOTk4MWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQQVlN
RU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXltZW50UHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCit7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7Cit9CisKK2Jvb2wgUGF5bWVudFBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFBh
eW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCit7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Q
YXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9QYXltZW50L1BheW1lbnRQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmFjODYzYzAwYThhNDA3MDEzNTEyY2EyMzFjMDU1ODM1MTdiOWVlYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BheW1lbnQvUGF5bWVudFByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUg
PHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIElQQyB7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CisgICAgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKKworICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRl
Y29kZXImLCBQYXltZW50UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOworCisgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyAhUEFZTUVOVChQQVlNRU5UX1BST0NFU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGM5ZmQ0ZDViYWI3
NjlkNmFiYWNkMDZjN2JkNjY1ZmNmNjFhOTZjOGQuLmI1MmFlNmJkN2I2MzE5ZDYxNjI2YjRiYWUw
ODNhYWM5NTY4NTYyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNzQsOSArNzQsNiBAQCBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKIAogTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCiAKLVBheW1lbnRQcm9jZXNzL1Bh
eW1lbnRQcm9jZXNzLmNwcAotUGF5bWVudFByb2Nlc3MvUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCi0KIC8vIFRPRE86IFdlIHNob3VsZCB1bmlmeSB0aGVzZSBmaWxlcyBvbmNlIEdU
SydzIFBsdWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBAbm8t
dW5pZnkKIFBsYXRmb3JtL01vZHVsZS5jcHAgQG5vLXVuaWZ5CkBAIC0zNzgsOCArMzc1LDYgQEAg
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAogVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCiAKLVVJUHJvY2Vzcy9QYXlt
ZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcAotCiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5B
dXRvU3RhcnRQcm92aWRlci5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5j
cHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtNDgxLDgg
KzQ3Niw2IEBAIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAogV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNw
cAogCi1XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cAotCiAvLyBUT0RPOiBUaGVzZSBmaWxlcyBzaG91bGQgYmUgdW5pZmllZCBvbmNlIEdUSydzIFBs
dWdpblByb2Nlc3MyIGlzIHJlbW92ZWQuCiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBA
bm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAg
QG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOGZhYmY2YjFlZTE1NzAyNjBjOGY4
YzdlOGZkYmEwZGE2ZWM0MzNhMy4uOGIwMWI1OTFhOGU1ZGJmMGY2Yzc5ZTgxY2YzZTM3MGEzODcy
OWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTg0LDcgKzE4NCwxMyBAQCBTaGFyZWQv
bWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKIFNoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdERhdGEu
bW0KIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KIAorUGF5bWVudFByb2Nlc3Mv
RW50cnlQb2ludC9pb3MvWFBDU2VydmljZS9QYXltZW50U2VydmljZUVudHJ5UG9pbnQubW0KIFBh
eW1lbnRQcm9jZXNzL2lvcy9QYXltZW50UHJvY2Vzc0lPUy5tbQorUGF5bWVudFByb2Nlc3MvUGF5
bWVudFByb2Nlc3MuY3BwCitQYXltZW50UHJvY2Vzcy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9y
UHJveHkuY3BwCitQYXltZW50UHJvY2Vzcy9QYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKK1BheW1lbnRQcm9jZXNzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUlPUy5tbQor
UGF5bWVudFByb2Nlc3MvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Q29jb2EubW0KIAog
U2hhcmVkL1BsdWdpbnMvbWFjL1BsdWdpblNhbmRib3hQcm9maWxlLm1tCiAKQEAgLTQ0MSw2ICs0
NDcsOCBAQCBVSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCiAKIFVJUHJvY2Vz
cy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eS5jcHAKIAorVUlQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzUHJveHkuY3BwCisKIFVJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0KIFVJUHJvY2Vzcy9QbHVn
aW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbQogVUlQcm9jZXNzL1BsdWdpbnMvbWFj
L1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtNTEwLDYgKzUxOCw5IEBAIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCiAKIFdlYlByb2Nlc3MvTWVk
aWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAogCitXZWJQcm9jZXNzL1BheW1l
bnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuY3BwCitXZWJQcm9jZXNzL1BheW1lbnRzL1dl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcAorCiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5Q29jb2EuaAppbmRleCBjNGQ3OWZlNGMxMmM5YWI4NTRmYmJkNDI1MTNiNzg1Mzgz
MDcyYWU3Li43YmFlMDIyZmFmYTUzM2MyZGY2NDI3ZGZmNDMyNWZlMmI1MTE5NjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eUNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQ
YXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCkBAIC0zMSwxMSArMzEs
MTUgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUGFzc0tpdFNQSS5oPgogI2ltcG9ydCA8d3Rm
L0Jsb2NrUHRyLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVVJMOworfQorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OwogCi1SZXRhaW5QdHI8UEtQYXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1
ZXN0KFdlYlBhZ2VQcm94eSYsIGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3Rv
cjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0Jik7CitSZXRhaW5QdHI8UEtQYXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1
ZXN0KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBjb25zdCBXVEY6OlVSTCYgb3JpZ2luYXRp
bmdVUkwsIGNvbnN0IFZlY3RvcjxXVEY6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29y
ZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKIAogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvY29jb2Ev
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQppbmRleCBlYWY1YmNkNzQ0MmExNDFj
ZTc2Y2IxNWVkNmFhYjZiMzIxZjRkNTRkLi4zODI2YzQxOTQzNzJjYWVhMDUzOTJjZTllNzlhNDM4
M2VmNTA3MDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9j
b2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29j
b2EubW0KQEAgLTQ0MSw4ICs0NDEsOCBAQCBzdGF0aWMgUEtQYXltZW50UmVxdWVzdEFQSVR5cGUg
dG9BUElUeXBlKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OgogICAgIH0K
IH0KICNlbmRpZgotCi1SZXRhaW5QdHI8UEtQYXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1
ZXN0KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBjb25zdCBVUkwmIG9yaWdpbmF0aW5nVVJM
LCBjb25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdCYgcGF5bWVudFJlcXVlc3QpCisgICAgCitSZXRhaW5QdHI8
UEtQYXltZW50UmVxdWVzdD4gdG9QS1BheW1lbnRSZXF1ZXN0KFdlYlBhZ2VQcm94eSYgd2ViUGFn
ZVByb3h5LCBjb25zdCBXVEY6OlVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxXVEY6
OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KQogewogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHROUyhb
UEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RJbnN0YW5jZSgpIGluaXRdKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA3ZTdiNTQ1NTJmNjlmNTkxNmFjZjRhZjM3NmE1NWEzNDA3MDZlOGRkLi4xMTgx
OWE3NTAxZDIzZjI0NjUxNzk2MDQyNzBhZDJiZjQ5ZTk1ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmNwcApA
QCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogCisjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9u
KSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0aW9uKCkpCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ4LDYgKzUwLDggQEAg
UGF5bWVudFByb2Nlc3NQcm94eTo6UGF5bWVudFByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYg
cHJvY2Vzc1Bvb2wpCiAKIFBheW1lbnRQcm9jZXNzUHJveHk6On5QYXltZW50UHJvY2Vzc1Byb3h5
KCkKIHsKKyAgICBmb3IgKGF1dG8mIHJlcGx5IDogbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMp
CisgICAgICAgIHJlcGx5KHsgfSk7CiB9CiAKIHZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6dGVy
bWluYXRlRm9yVGVzdGluZygpCkBAIC01OSwxNSArNjMsMTQgQEAgdm9pZCBQYXltZW50UHJvY2Vz
c1Byb3h5OjpnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQ
cm9jZXMKIHsKICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShy
ZXBseSkpOwogICAgIAotICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpMYXVuY2hpbmcpIHsKKyAg
ICBpZiAoc3RhdGUoKSAhPSBTdGF0ZTo6UnVubmluZykgewogICAgICAgICBtX251bVBlbmRpbmdD
b25uZWN0aW9uUmVxdWVzdHMrKzsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBi
b29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MgPSBmYWxzZTsKLSAgICBTZWN1cml0eU9yaWdpbkRh
dGEgc2VjdXJpdHlPcmlnaW47CiAgICAgCi0gICAgc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nl
c3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclBy
b2Nlc3MsIHNlY3VyaXR5T3JpZ2luKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3Nh
Z2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkNyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKCksIDApOworCiB9CiAgICAgCiB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmdldExhdW5j
aE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQpA
QCAtODEsMTQgKzg0LDYgQEAgdm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNo
dXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICAgICBBU1NFUlRfVU5VU0VEKGNv
bm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7CiB9CiAKLXZvaWQg
UGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCi17Ci0gICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc1Byb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVBheW1lbnRQcm9jZXNzUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
fQotCiB2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYp
CiB7CiAgICAgYXV0byBwcm90ZWN0ZWRQcm9jZXNzUG9vbCA9IG1ha2VSZWYobV9wcm9jZXNzUG9v
bCk7CkBAIC05OSwyNSArOTQsMzAgQEAgdm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KICAg
ICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIHBheW1lbnQgcHJvY2Vz
cy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KLSAgICBtX3Byb2Nlc3NQb29sLnBh
eW1lbnRQcm9jZXNzQ3Jhc2hlZCgqdGhpcyk7CisgICAgbV9wcm9jZXNzUG9vbC5wYXltZW50UHJv
Y2Vzc0NyYXNoZWQodGhpcyk7CiB9CiAKIHZvaWQgUGF5bWVudFByb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQog
ewogfQotCi12b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKQorICAgIAordm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5
OjpkaWRDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFj
aG1lbnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogeworICAgIEFTU0VSVCghbV9wZW5kaW5nQ29u
bmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKTsKKyAgICAKKyAgICAvLyBHcmFiIHRoZSBmaXJzdCBw
ZW5kaW5nIGNvbm5lY3Rpb24gcmVwbHkuCisgICAgYXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5l
Y3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworICAgIE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZB
TElEKGNvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSkpOworICAgIHJlcGx5KElQQzo6QXR0YWNo
bWVudChjb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5E
KSk7CisgICAgCiB9CiAgICAgCi12b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZENyZWF0ZVBh
eW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVj
dGlvbklkZW50aWZpZXIpCit2b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmNyZWF0ZVBheW1lbnRU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiB2
b2lkIFBheW1lbnRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNo
ZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIpCi17Ci0gICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVu
Y2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOworeyAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7CiAKICAgICBp
ZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZp
ZXIpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBEbyBiZXR0ZXIgY2xlYW51cCBoZXJlLgpAQCAtMTI1
LDEwICsxMjUsMTEgQEAgdm9pZCBQYXltZW50UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb24KICAgICB9CiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOyArK2kp
Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihmYWxzZSwgeyB9KSwgMCk7Ci0gICAgCisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzOjpDcmVhdGVQYXltZW50VG9XZWJQcm9jZXNzQ29ubmVj
dGlvbigpLCAwKTsKKwogICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKICNlbmRpZiAv
LyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGF5bWVudHMvUGF5bWVudFByb2Nlc3NQcm94eS5oCmluZGV4IGUwMzFjN2M2N2I0ZjBl
OTQyNmIxMWQxMGYxZTU1NDU5NTc4NGYwNWMuLjdiZjEzMDA0OTEzMTQ3ODZlMzI5NzZjZjhiZDA0
MjM2ZWZmYTUyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BheW1lbnRz
L1BheW1lbnRQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYXlt
ZW50cy9QYXltZW50UHJvY2Vzc1Byb3h5LmgKQEAgLTY2LDEwICs2Niw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFt
ZSkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVQYXltZW50UHJvY2Vzc1Byb3h5TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLQogICAgIC8vIE1lc3NhZ2Ug
aGFuZGxlcnMKICAgICB2b2lkIGRpZENyZWF0ZVBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9u
KGNvbnN0IElQQzo6QXR0YWNobWVudCYpOworICAgIHZvaWQgY3JlYXRlUGF5bWVudFRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAg
dm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCA1OWFiNWRlMWM2N2QyYzFjZjI3ODE5YzI5YTcyNTFjNzVmMTI4ZDBk
Li4zYzFkMDg2YTM5MjFkZTM4MTYyMzlkNjEyOWM1MTYzNTcyNzQyOWQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zMzEsNiArMzMxLDExIEBAIFdl
YlByb2Nlc3NQb29sOjp+V2ViUHJvY2Vzc1Bvb2woKQogCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nl
c3MpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNodXREb3duUHJvY2VzcygpOworICAgIAor
I2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisgICAgaWYgKG1fcGF5bWVudFByb2Nlc3MpCisg
ICAgICAgIG1fcGF5bWVudFByb2Nlc3MtPnNodXREb3duUHJvY2VzcygpOworI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKICAgICBpZiAoIW1f
cHJvY2Vzc2VzVXNpbmdHYW1lcGFkcy5pc0VtcHR5KCkpCkBAIC02MzAsMTMgKzYzNSwxMyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVQYXltZW50UHJvY2VzcygpCiAgICAgICAgIG1fcGF5
bWVudFByb2Nlc3MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBheW1lbnRQcm9jZXNzUHJveHk+KCp0aGlz
KTsKIH0KICAgICAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFBheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgUEFMOjpTZXNzaW9uSUQgaW5p
dGlhbFNlc3Npb25JRCwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQ
cm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBlbnN1cmVQYXltZW50UHJvY2Vzcygp
OwogICAgIG1fcGF5bWVudFByb2Nlc3MtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbih3ZWJQ
cm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGF5bWVudFByb2Nlc3NDcmFzaGVkKFBheW1lbnRQcm9jZXNzUHJveHkmIHBheW1lbnRQcm9jZXNz
UHJveHkpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwYXltZW50UHJvY2Vzc0NyYXNoZWQoUGF5bWVu
dFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3NQcm94eSkKIHsKICAgICBBU1NFUlQobV9wYXlt
ZW50UHJvY2Vzcyk7CiAgICAgQVNTRVJUKHBheW1lbnRQcm9jZXNzUHJveHkgPT0gbV9wYXltZW50
UHJvY2Vzcy5nZXQoKSk7CkBAIC03MzAsNyArNzM1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZh
dGUKICAgICB9IGVsc2UgewogICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5yZW1vdmVTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogI2lmIEVOQUJMRShQ
QVlNRU5UX1BST0NFU1MpCi0gICAgICAgIHNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQ
YXltZW50UHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSkpOworICAgICAgICBzZW5kVG9QYXltZW50UHJvY2VzcyhNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKCkpOwogI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BS
T0NFU1MpCiAgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkp
OwogICAgIH0KQEAgLTg0NSw2ICs4NTAsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFs
aXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogICAg
IH0pOwogCiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKKyNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQorICAgIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7CisjZW5kaWYKIAogICAgIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZTUzYmJiOTVlYmNmODg2MDAwYmIxNGIwNDdhNWMy
N2FmNzdmNTAwMS4uM2YzN2ZkZGU0YmEyOGRkZGY0NzU2NDM0YzQyM2NlMTE4YTM1MzhmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xNzcsNiArMTc3LDcg
QEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvTmV0d29ya2lu
Z1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdlKTsKIAogI2lmIEVOQUJM
RShQQVlNRU5UX1BST0NFU1MpCisgICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJvY2Vz
cyBvciBQYXltZW50UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBt
b2RlbC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1lbnRQcm9jZXNz
KFQmJiBtZXNzYWdlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1BheW1l
bnRQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CiAjZW5kaWYgLy8g
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKQEAgLTM2MSw3ICszNjIsNyBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKICAgICB2b2lkIGVuc3VyZVBheW1lbnRQcm9jZXNzKCk7
CiAgICAgUGF5bWVudFByb2Nlc3NQcm94eSogcGF5bWVudFByb2Nlc3MoKSB7IHJldHVybiBtX3Bh
eW1lbnRQcm9jZXNzLmdldCgpOyB9Ci0gICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oV2ViUHJvY2Vzc1Byb3h5JiwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHkmJik7CisgICAgdm9pZCBnZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJv
Y2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBwYXltZW50UHJvY2Vzc0NyYXNo
ZWQoUGF5bWVudFByb2Nlc3NQcm94eSopOwogI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOTgyMzJjMjZiNDlhMGYxYjAxMDM3YzRjNzNmZWI4
YmVmMGY5NmUyYi4uN2UyOGVjZmUyZWU3MGI2ZGFkYzE1ZmFmNWM0MGM5M2IyNzIwNGNiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02MzIsOSAr
NjMyLDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXQKICAgICBtX3Byb2Nlc3NQb29sLT5nZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVwbHkpKTsKIH0KICNpZiBF
TkFCTEUoUEFZTUVOVF9QUk9DRVNTKQotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQ
cm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRS
ZXBseSYmIHJlcGx5KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5l
Y3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewotICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgaW5pdGlhbFNlc3Npb25JRCwgV1RGTW92ZShy
ZXBseSkpOworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigq
dGhpcywgV1RGTW92ZShyZXBseSkpOwogfQogI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1BST0NF
U1MpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzNk
NDZjNWQ5NmZiODI5Y2M1YmRlOWM5M2Y0ZGE1NTJiODdiNTQwMi4uOWFhNTQxZmI1MDUyMjA2YWM2
ZmI5ZjgxZTZmMmNhMjdkMTc5YzMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKQEAgLTI5MSw3ICsyOTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCiAjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKLSAgICB2b2lkIGdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNl
c3Npb25JRCBpbml0aWFsU2Vzc2lvbklELCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
YXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGdldFBh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZiAvLyBFTkFCTEUo
UEFZTUVOVF9QUk9DRVNTKQogICAgIGJvb2wgcGxhdGZvcm1Jc0JlaW5nRGVidWdnZWQoKSBjb25z
dDsKICAgICBib29sIHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA4NDZmNDk2YjY1OGYyNzQ4MGI2NzE0MWNlN2UzZjBhZjdiMGNkNWUzLi5hMjU4ZjMw
ZDgxZjJiMzNiYzUzY2QzYzIxODk0MDliNWRmMjA3YTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zOCw3ICszOCw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYK
ICAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNv
bm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKICNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQotICAg
IEdldFBheW1lbnRQcm9jZXNzQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vzc2lv
bklEKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKyAgICBH
ZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rp
b25IYW5kbGUpIERlbGF5ZWQKICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQogICAg
IFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcAppbmRleCBiMDc4OWJlMDM1MmJjOGQ5MzdkOTVmMWYzZWE1M2M4NTY2
Y2Q4NGMwLi4zY2Y2ZDI1Zjc1ZjA2ZDdhNTFmMmE0YTI5ZTFmZDdlZGEyYjIxMjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcApAQCAtMTMyOSw3ICsxMzI5LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpy
ZW1vdmVBbGxTdG9yYWdlQWNjZXNzSGFuZGxlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYK
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZGVzdHJveVBheW1lbnRQcm9jZXNzU2Vzc2lvbihXZWJQ
cm9jZXNzUG9vbCogcG9vbCkKIHsKICNpZiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQotICAgIHBv
b2wtPnNlbmRUb1BheW1lbnRQcm9jZXNzKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzczo6RGVzdHJv
eVNlc3Npb24obV9zZXNzaW9uSUQpKTsKKyAgICBwb29sLT5zZW5kVG9QYXltZW50UHJvY2VzcyhN
ZXNzYWdlczo6UGF5bWVudFByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKCkpOwogI2VuZGlmIC8vIEVO
QUJMRShQQVlNRU5UX1BST0NFU1MpCiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMDFjZGZjMzQz
ODQzODQ3OTEzMDJkMGYyMTMxYWQ3OTQ3NGU3ZWE1OC4uNWIzMzczMTBiZDRhMjgxMTMzNjkwNDVj
ZjBmM2EwOTRhZTczYjg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjcsNiArNjcsOSBAQCBjbGFzcyBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhRmV0
Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uOworI2lmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCitz
dHJ1Y3QgUGF5bWVudFByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CisjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29yZDsKIHN0cnVjdCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWU5ZTU3MjJmYzM5MDQ5ZjVjOTMwNDk1ZGVmOGY1
NDVmMzMzY2QxNy4uYTc3MmE5NDQwZDY2YjYxNDkxNTRjMDAyMmZiNDlmY2QzOTBmNWU1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
MCw2ICsyMCw3IEBACiAJCQkJQkM3N0Y5NTYxNkQwNDU5MTAwRjhGNzhBIC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8sCiAJCQkJQkM4Mjg0NDYxNkI0RkY2NjAwQTI3OEZFIC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8sCiAJCQkJQkM4MjgzRDUxNkI0QzAxRjAwQTI3OEZFIC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8sCisJCQkJMzlFOUVDQTkyMUI4NzY0MjAwQkE1RjE5IC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFtZSA9IEFsbDsKIAkJCXByb2R1Y3ROYW1lID0gV2Vi
S2l0MjsKQEAgLTg0OSw3ICs4NTAsMTggQEAKIAkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8q
IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNj
ZXB0UG9saWN5LmggKi87IH07CiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tO
U1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07Ci0JCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDky
QSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29t
LmFwcGxlLldlYktpdC5QYXltZW50cy5zYiAqLzsgfTsKKwkJMzkzRjI1OUYyMUM4RDQ2NTAwRTRD
RTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5M0YyNTlEMjFD
OEQ0NDAwMEU0Q0U4NSAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CisJCTM5M0YyNUEwMjFDOEQ0NjgwMEU0Q0U4NSAvKiBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzOTNGMjU5RTIxQzhENDQxMDBFNENFODUgLyogV2ViVG9QYXlt
ZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQkzOTVDREM1RjIxQkI0NUQ1
MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5NUNEQzVFMjFCQjQ1
MzMwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oICov
OyB9OworCQkzOTVDREM2MTIxQkI0NkQ3MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzOTVDREM2MDIxQkI0NkNEMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
ck1lc3NhZ2VzLmggKi87IH07CisJCTM5NUNEQzY0MjFCQjVFNEUwMDc2NkU0RCAvKiBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM5NUNEQzYzMjFCQjVFMkMwMDc2NkU0RCAvKiBQ
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzk1
Q0RDNjUyMUJCNUU1MTAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzOTVDREM2MjIxQkI1RTFCMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzk1Q0RDNkQyMUM0N0I2ODAw
NzY2RTREIC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAw
M0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owor
CQkzOTVDREM2RTIxQzQ3QzVFMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEx
OEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKKwkJMzlFOUVDOTcyMUI3NUVENzAwQkE1RjE5IC8qIFhQQ1NlcnZpY2VNYWluLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYx
NkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OworCQkzOUU5RUM5OTIx
Qjc1RUQ3MDBCQTVGMTkgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2ODE1QTkxNzYzMDA4RDI2RkMg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CisJCTM5RTlFQzlBMjFCNzVFRDcwMEJBNUYx
OSAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdC5mcmFtZXdv
cmsgKi87IH07CisJCTM5RjhFNDM2MjFCNzU0RUQwMEYyQjk2QyAvKiBjb20uYXBwbGUuV2ViS2l0
LlBheW1lbnRzLnNiIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxlLldlYktpdC5QYXltZW50
cy5zYiAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjQxOEVGQjE4ODdCRDk3
MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3
MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JD
aG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
Rjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CkBAIC05
MDksOSArOTIxLDcgQEAKIAkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29u
UGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEZCQjlC
MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBBRkZE
RjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwRDEzM0MxNkNC
MDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRh
YmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4
RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwogCQk1MTE4RTlBOTFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEx
OEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsK
LQkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5bWVu
dFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTUxMUY3RDQxMUVCMUJDRjUwMEU0N0I4MyAvKiBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJ
dGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAq
LzsgfTsKQEAgLTk5Miw4ICsxMDAyLDYgQEAKIAkJNTFERDlGMjgxNjM2N0RBMjAwMTU3OEU5IC8q
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI2MTYzNjdEQTIw
MDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTUxREQ5RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovOyB9OwogCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNC
RTkgLyogSURCVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi87
IH07Ci0JCTUxRTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50UHJvY2Vzcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGQTE4MEY1
RDBCMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwICovOyB9OwotCQk1MUUzNTIwMDE4MEY1
RDBGMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkQxODBGNUQwQjAw
RTUzQkU5IC8qIFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKIAkJNTFF
NkMxNjQxRjI5MzVERDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50
U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFFNkMxNjExRjI5MzVDRDAwRkQzNDM3IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0
ZW50U3RvcmFnZS5oICovOyB9OwogCQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5k
bGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRv
d0V4dGVuc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUxRjA2MEUwMTY1NDMxN0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYw
NjBERTE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9
OwpAQCAtMTA0NSw4ICsxMDUzLDggQEAKIAkJNTdEQ0VEQzMyMTRGMTE0QzAwMTZCODQ3IC8qIE1v
Y2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3RENFREMxMjE0RjExNEMwMDE2Qjg0NyAvKiBNb2NrTG9jYWxTZXJ2aWNlLmggKi87
IH07CiAJCTU3RENFREM3MjE0RjE4MzAwMDE2Qjg0NyAvKiBNb2NrTG9jYWxDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RDRURDNTIx
NEYxODMwMDAxNkI4NDcgLyogTW9ja0xvY2FsQ29ubmVjdGlvbi5oICovOyB9OwogCQk1N0RDRURD
QjIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RDRURDOTIxNEY0RTQyMDAx
NkI4NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggKi87IH07Ci0JCTU4RTk3N0RGMjFD
NDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNThFOTc3REQyMUM0OUEwMDAwNUQ5
MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggKi87IH07CiAJCTU4Nzc0M0E2MjFD
MzBCQkUwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0LmRiIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODc3NDNBNDIxQzMwQUQ4MDBBRTkwODQgLyog
SFRUUFNVcGdyYWRlTGlzdC5kYiAqLzsgfTsKKwkJNThFOTc3REYyMUM0OUEwMDAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hU
VFBTVXBncmFkZUNoZWNrZXIuaCAqLzsgfTsKIAkJNUMwQjE3NzgxRTdDODgwRTAwRTkxMjNDIC8q
IE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwQjE3NzQxRTdDODc5QzAwRTkxMjNDIC8q
IE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1QzBCMTc3
OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMEIxNzc2MUU3
Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQk1QzE0MjZFRDFDMjNGODA5MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMTQyNkUzMUMyM0Y4MDUwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oICovOyB9OwpAQCAtMTU3Nyw3ICsxNTg1LDYgQEAKIAkJRDNCOTQ4NDcxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5o
ICovOyB9OwogCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0
NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxMDVG
RTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBF
ZGl0aW5nUmFuZ2UuaCAqLzsgfTsKLQkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1l
bnRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tICov
OyB9OwogCQlFMTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3
RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJ
RTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVn
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRB
OTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCAqLzsgfTsKIAkJRTE1MTNDNjcxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2
NTE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCAqLzsgfTsKQEAgLTE3MDUs
NiArMTcxMiwyNyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBDMENFNzI4NTEyNDdFNjY4
MDBCQzBFQzQ7CiAJCQlyZW1vdGVJbmZvID0gIkRlcml2ZWQgU291cmNlcyI7CiAJCX07CisJCTM5
RTlFQzkyMjFCNzVFRDcwMEJBNUYxOSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJ
CQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSAwODY3
RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUg
PSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBFMUFDMkUyNzIwRjdCOTRDMDBCMDg5N0Q7
CisJCQlyZW1vdGVJbmZvID0gIlVubG9jayBLZXljaGFpbiI7CisJCX07CisJCTM5RTlFQzk0MjFC
NzVFRDcwMEJBNUYxOSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQ
QlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQw
MjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJ
cmVtb3RlR2xvYmFsSURTdHJpbmcgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTY7CisJCQlyZW1v
dGVJbmZvID0gV2ViS2l0OworCQl9OworCQkzOUU5RUNBODIxQjg3NjQyMDBCQTVGMTkgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5
OworCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2pl
Y3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5n
ID0gMzlFOUVDOTAyMUI3NUVENzAwQkE1RjE5OworCQkJcmVtb3RlSW5mbyA9IFBheW1lbnRzOwor
CQl9OwogCQlCQzc3Rjk1NTE2RDA0NTkxMDBGOEY3OEEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5
ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9y
dGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAt
MTg1Myw2ICsxODgxLDcgQEAKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAwOwogCQkJZmlsZXMgPSAo
CiAJCQkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy5zYiBpbiBDb3B5RmlsZXMgKi8sCisJCQkJMzlGOEU0MzYyMUI3NTRFRDAwRjJCOTZDIC8q
IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHMuc2IgaW4gQ29weUZpbGVzICovLAogCQkJCUE3OEND
RERDMTkzQUM5RkIwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgaW4g
Q29weUZpbGVzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwpAQCAtMjk5NSwxMCArMzAyNCwyOSBAQAogCQkzN0ZDMTk0ODE4NTEwRDZBMDA4Q0ZB
NDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcg
LyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzOTEzNjAyNDIxOTNDMTQzMDA1NjQ5MkEgLyogY29tLmFwcGxl
LldlYktpdC5QYXltZW50cy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2Vi
S2l0LlBheW1lbnRzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzOTJFOTQyQjIx
OUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMzkyRTk0MkQyMTlBMzk5QTAwNTBGOTgyIC8qIFdlYlRvUGF5bWVudFBy
b2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzkzRjI1OUQy
MUM4RDQ0MDAwRTRDRTg1IC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzOTNGMjU5RTIxQzhENDQxMDBFNENFODUgLyog
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzk1Q0RDNEIyMUJBMUZBRDAwNzY2
RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTVD
REM0QzIxQkExRkFEMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNEYyMUJCMEIwNjAwNzY2RTREIC8qIFBheW1lbnRQ
cm9jZXNzQ29vcmRpbmF0b3JQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNTAy
MUJCMEIwNjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTVDREM1MTIxQkIzMEQ3MDA3NjZFNEQgLyogUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzk1Q0RDNTMyMUJCMzNBNjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzk1Q0RDNUUyMUJCNDUzMzAwNzY2RTRE
IC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTM5NUNEQzYwMjFCQjQ2
Q0QwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzOTVDREM2MjIxQkI1RTFCMDA3
NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1BheW1lbnRQcm9j
ZXNzQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCTM5NUNEQzYzMjFCQjVFMkMwMDc2NkU0RCAvKiBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzk1Q0RDNjcy
MUMxOUZFMDAwNzY2RTREIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzOTVDREM2ODIxQzFEREM5MDA3NjZFNEQgLyogUGF5
bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzOTVDREM2OTIxQzFEREQ0MDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Mzk1Q0RDNkEyMUMxRERFMjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94
eUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNv
Y29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM5QkQwQUY1MjFBRTIwMkUwMEUz
MjQzRiAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8taU9TLnBsaXN0Ijsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzlCRDBBRjYyMUFFMjAyRTAwRTMyNDNGIC8q
IFBheW1lbnRTZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1l
bnRTZXJ2aWNlRW50cnlQb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzlC
RDBBRkEyMUFGNDEyQTAwRTMyNDNGIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5QkQwQUZCMjFBRjQxMkEwMEUzMjQzRiAvKiBXZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM5
RTlFQ0EyMjFCNzVFRDcwMEJBNUYxOSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnhwYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gIndyYXBwZXIu
eHBjLXNlcnZpY2UiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0
LlBheW1lbnRzLnhwYzsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMzlF
OUVDQTQyMUI3Njg4QzAwQkE1RjE5IC8qIFBheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yLmVu
dGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRsZW1lbnRzOyBwYXRoID0gIlBh
eW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yLmVudGl0bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTM5RTlFQ0E1MjFCNzY4OEMwMEJBNUYxOSAvKiBQYXltZW50cy1pT1Mu
ZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVudHM7IHBhdGggPSAi
UGF5bWVudHMtaU9TLmVudGl0bGVtZW50cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJM0Y0MThFRjYxODg3QkQ5NzAwMjc5
NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTNGNDE4RUY3MTg4N0JEOTcw
MDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTMxNDksMTMgKzMxOTcsOSBAQAogCQk1
MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBBRTBBMTMzQzE2Q0IwMDcyNzE3QSAvKiBX
S0ljb25EYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S0ljb25EYXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBBRTBC
MTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1MTE4RTlBMjFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTExOEU5QTIxRjI5NTk2MzAw
M0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTExOEU5QTMxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTE4RTlBNDFGMjk1OTYz
MDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNTExOEU5QTUx
RjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk1MTE4RTlBNjFGMjk1OTYz
MDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9y
YWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3Jh
Z2VQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
LQkJNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VQcm9j
ZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF5bWVudFByb2Nlc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE4RTlBNjFGMjk1
OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXltZW50UHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQzMSw5ICszNDc1LDkg
QEAKIAkJNTdEQ0VEQzYyMTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrTG9jYWxDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0RDRURDOTIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0RDRURDRDIxNEY1MTY4MDAxNkI4
NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3Jh
ZGVMaXN0LmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZmlsZTsgbmFtZSA9IEhUVFBTVXBncmFkZUxpc3QuZGI7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL0hUVFBTVXBncmFkZUxpc3QuZGI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTU4RTk3N0RDMjFDNDk5RkUwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdy
YWRlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU4RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1ODc3NDNBNDIxQzMwQUQ4MDBB
RTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBIVFRQU1VwZ3JhZGVMaXN0LmRiOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9IVFRQU1VwZ3JhZGVMaXN0LmRiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0Mg
LyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1QzBC
MTc3NjFFN0M4NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tl
dFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CkBAIC00NTcxLDYgKzQ2MTUsMTUgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJMzlFOUVDOTgyMUI3NUVENzAwQkE1RjE5
IC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsK
KwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQkzOUU5
RUM5OTIxQjc1RUQ3MDBCQTVGMTkgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKKwkJCQkzOUU5RUM5QTIxQjc1RUQ3MDBCQTVGMTkgLyogV2ViS2l0LmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOworCQl9OwogCQk1MTAwMzFFRTEzNzlDQUNCMDBDOERGRTQgLyogRnJhbWV3b3Jr
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTQ2MzMsNiArNDY4Niw3IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDODI4M0IxMTZCNEJGNzcwMEEyNzhGRSAvKiBj
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjICovLAorCQkJCTM5RTlFQ0EyMjFCNzVFRDcw
MEJBNUYxOSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnhwYyAqLywKIAkJCQlCQzgyODNG
OTE2QjRGRERFMDBBMjc4RkUgLyogY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjICovLAog
CQkJCUJDODI4NDFGMTZCNEZERjYwMEEyNzhGRSAvKiBjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42
NC54cGMgKi8sCiAJCQkJMzcyRUJCNDYyMDE3RTY0MzAwMDg1MDY0IC8qIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGMgKi8sCkBAIC00ODY0LDYgKzQ5MTgsOCBAQAog
CQkJCTQxRDBGQzdEMjBFNDNBNTEwMDA3NkFFOCAvKiBOZXR3b3JrLU9TWC1zYW5kYm94LmVudGl0
bGVtZW50cyAqLywKIAkJCQk1QzdBQ0ZEMTIxOEREOEJEMDA0Q0JCNTkgLyogTmV0d29yay1PU1gu
ZW50aXRsZW1lbnRzICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEyNzhGRSAvKiBOZXR3b3Jr
U2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQkzOUU5RUNBNDIxQjc2ODhDMDBCQTVGMTkgLyogUGF5
bWVudHMtaU9TLW1pbmltYWxzaW11bGF0b3IuZW50aXRsZW1lbnRzICovLAorCQkJCTM5RTlFQ0E1
MjFCNzY4OEMwMEJBNUYxOSAvKiBQYXltZW50cy1pT1MuZW50aXRsZW1lbnRzICovLAogCQkJCTUx
QTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLywKIAkJ
CQlBMUVERDJEQjE4ODRCOTY0MDBCQkZFOTggLyogUGx1Z2luUHJvY2Vzc1NoaW0ueGNjb25maWcg
Ki8sCiAJCQkJQkM4MjgzRjIxNkI0RkM1MzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuMzIueGNj
b25maWcgKi8sCkBAIC02MzE4LDE1ICs2Mzc0LDYgQEAKIAkJCXBhdGggPSBSZXNvdXJjZXMvbWFj
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJMzkyRTk0MkEyMTlBMkU4NTAw
NTBGOTgyIC8qIFBheW1lbnRzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCQkzOTJFOTQyRDIxOUEzOTlBMDA1MEY5ODIgLyogV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwICovLAotCQkJCTM5MkU5NDJCMjE5QTM5OUEwMDUwRjk4MiAvKiBXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oICovLAotCQkJKTsKLQkJCXBhdGggPSBQYXltZW50
czsKLQkJCXNvdXJjZVRyZWUgPSAiPHVua25vd24+IjsKLQkJfTsKIAkJMzlCRDBBRjEyMUFFMjAy
RTAwRTMyNDNGIC8qIEVudHJ5UG9pbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtNjM2MCw2ICs2NDA3LDE5IEBACiAJCQlwYXRoID0gUGF5bWVudFNlcnZp
Y2U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzOUJEMEFGOTIxQUY0MTJB
MDBFMzI0M0YgLyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTM5NUNEQzRDMjFCQTFGQUQwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yLmNwcCAqLywKKwkJCQkzOTVDREM0QjIxQkExRkFEMDA3NjZFNEQgLyogUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvci5oICovLAorCQkJCTM5NUNEQzUzMjFCQjMzQTYwMDc2NkU0RCAv
KiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluICovLAorCQkJCTM5QkQwQUZC
MjFBRjQxMkEwMEUzMjQzRiAvKiBXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8s
CisJCQkJMzlCRDBBRkEyMUFGNDEyQTAwRTMyNDNGIC8qIFdlYlRvUGF5bWVudFByb2Nlc3NDb25u
ZWN0aW9uLmggKi8sCisJCQkJMzk1Q0RDNjcyMUMxOUZFMDAwNzY2RTREIC8qIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBQYXlt
ZW50czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQxMzA3NTk3MURFODRF
RDcwMDM5RUM2OSAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtNjc1Niw2ICs2ODE2LDEyIEBACiAJCQkJNTFFMzUxRkExODBGNUQwQjAwRTUz
QkU5IC8qIFBheW1lbnRQcm9jZXNzLmNwcCAqLywKIAkJCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNC
RTkgLyogUGF5bWVudFByb2Nlc3MuaCAqLywKIAkJCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkg
LyogUGF5bWVudFByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJMzk1Q0RDNTAyMUJCMEIwNjAw
NzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8sCisJCQkJMzk1
Q0RDNEYyMUJCMEIwNjAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eS5o
ICovLAorCQkJCTM5NUNEQzUxMjFCQjMwRDcwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJMzk1Q0RDNkEyMUMxRERFMjAwNzY2RTRE
IC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29hLmggKi8sCisJCQkJMzk1Q0RD
NjkyMUMxRERENDAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eUNvY29h
Lm1tICovLAorCQkJCTM5NUNEQzY4MjFDMUREQzkwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yUHJveHlJT1MubW0gKi8sCiAJCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8q
IFBheW1lbnRUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk1MUUzNTFGRTE4MEY1
RDBCMDBFNTNCRTkgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKIAkJCQk1
MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogUGF5bWVudFRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gKi8sCkBAIC02NzYzLDI3ICs2ODI5LDYgQEAKIAkJCXBhdGggPSBQYXltZW50
UHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTUzOUJENUIyMURB
REIwQkEwMEYyRTRFMSAvKiBjYXB0dXJlICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQlj
aGlsZHJlbiA9ICgKLQkJCQk1M0RFQTM2NTFEREU0MjJFMDBFODI2NDggLyoganNvbi5ocHAgKi8s
Ci0JCQkJNTMwMjU4MzAxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQuY3Bw
ICovLAotCQkJCTUzMDI1ODMxMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZUV2ZW50
LmggKi8sCi0JCQkJNTMwMjU4MzIxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlTG9n
Z2luZy5oICovLAotCQkJCTUzMDI1ODMzMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVy
ZU1hbmFnZXIuY3BwICovLAotCQkJCTUzMDI1ODM0MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3Jr
Q2FwdHVyZU1hbmFnZXIuaCAqLywKLQkJCQk1MzAyNTgzNTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0
d29ya0NhcHR1cmVSZWNvcmRlci5jcHAgKi8sCi0JCQkJNTMwMjU4MzYxRENCQkQxRDAwREE4OUMy
IC8qIE5ldHdvcmtDYXB0dXJlUmVjb3JkZXIuaCAqLywKLQkJCQk1MzAyNTgzNzFEQ0JCRDFEMDBE
QTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5jcHAgKi8sCi0JCQkJNTMwMjU4MzgxRENC
QkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCAqLywKLQkJCQk1MzAyNTgy
RTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5jcHAgKi8sCi0JCQkJ
NTMwMjU4MkYxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaCAqLywK
LQkJCQk1MzAyNTgzOTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNw
cCAqLywKLQkJCQk1MzAyNTgzQTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVw
bGF5LmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IGNhcHR1cmU7Ci0JCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwotCQl9OwogCQk1NzBBQjhGNjIwQUU4MUFCMDBCOEJFODcgLyogY29jb2EgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzIzNyw3ICs3MjgyLDcg
QEAKIAkJCQk0QTQxMEY0MTE5QUY3QjI3MDAyRUJBQjUgLyogTWVkaWFTdHJlYW0gKi8sCiAJCQkJ
NTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5NzQxNDZD
OEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAotCQkJCTM5MkU5NDJBMjE5
QTJFODUwMDUwRjk4MiAvKiBQYXltZW50cyAqLywKKwkJCQkzOUJEMEFGOTIxQUY0MTJBMDBFMzI0
M0YgLyogUGF5bWVudHMgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdp
bnMgKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJ
MUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLApAQCAtODQ5OSwxMCAr
ODU0NCwxMCBAQAogCQkJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0
U3RyZWFtTWVzc2FnZXMuaCAqLywKIAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4NDM4
MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggKi8s
Ci0JCQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKLQkJCQk1MTE4RTlBNjFGMjk1OTYzMDAzRUY5RjUgLyogUGF5bWVudFBy
b2Nlc3NNZXNzYWdlcy5oICovLAotCQkJCTUxMThFOUE3MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXlt
ZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQk1MTE4RTlBMjFGMjk1
OTYzMDAzRUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMzk1
Q0RDNjMyMUJCNUUyQzAwNzY2RTREIC8qIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCTM5NUNEQzYwMjFCQjQ2Q0QwMDc2NkU0RCAvKiBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLywKKwkJCQkzOTVDREM2MjIxQkI1RTFCMDA3
NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKKwkJCQkzOTVDREM1RTIxQkI0NTMzMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREEyOUEyNDFDQkVCNjdBMDA5MDFDQ0Yg
LyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RB
MjlBMjUxQ0JFQjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlcy5o
ICovLAogCQkJCUNEQTI5QTI2MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODUzNywxMCArODU4MiwxMCBAQAog
CQkJCTFBMzM0REVDMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmgg
Ki8sCiAJCQkJMUFCMzFBOTQxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUIzMUE5NTE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAotCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBT
dG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCi0JCQkJNTExOEU5QTYxRjI5NTk2
MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLywKLQkJCQk1MTE4RTlBNzFG
Mjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCi0JCQkJNTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oICovLAorCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBQYXltZW50UHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1
IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCAqLywKKwkJCQk1MTE4RTlBNzFGMjk1OTYzMDAz
RUY5RjUgLyogUGF5bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
NTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzUHJveHlNZXNzYWdlcy5o
ICovLAogCQkJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTExOEU5QTQxRjI5NTk2MzAw
M0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJ
CQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLApAQCAtODY0Miw2ICs4Njg3LDggQEAKIAkJCQk1MTdBNTJENjFG
NDNBOUI2MDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJ
CQk1MTUyNjJCQTFGQjk1MTMxMDA3MEU1NzkgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTUyNjJCQjFGQjk1MTMxMDA3MEU1Nzkg
LyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKKwkJCQkzOTNG
MjU5RDIxQzhENDQwMDBFNENFODUgLyogV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTM5M0YyNTlFMjFDOEQ0NDEwMEU0Q0U4NSAvKiBXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJMUFBRjA4QjUxOTI2
OUU2RDAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJMUFBRjA4QjYxOTI2OUU2RDAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlck1lc3NhZ2VzLmggKi8sCiAJCQkJN0MzNjFENzYxOTI4MDNCRDAwMzZBNTlEIC8qIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTky
OTYsNiArOTM0Myw4IEBACiAJCQkJMUFDNzUzN0MxODNBOUZEQjAwNzJDQjE1IC8qIFBhZ2VMb2Fk
U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEI2NkIwMUJDNDNDODYwMDgyREY3NyAvKiBQ
YWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2
ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTM5NUNE
QzYxMjFCQjQ2RDcwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTM5NUNEQzVGMjFCQjQ1RDUwMDc2NkU0RCAvKiBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEx
OEU5QTkxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBQYXltZW50UHJvY2Vzc1By
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogUGF5
bWVudFByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTk2NTgsNiArOTcw
Nyw3IEBACiAJCQkJOTM1NkYyREQyMTUyQjZGNjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUyRDkxRjQzQTlEQTAwRENEQzBBIC8qIFdl
YlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTUyNjJC
QzFGQjk1MTVEMDA3MEU1NzkgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTM5M0YyNUEwMjFDOEQ0NjgwMEU0Q0U4NSAvKiBXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0EwRUY3RjEyMzMxRTc4MDA3RDNDRkIgLyogV2ViVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQUYwOEFFMTkyNjkzNjcwMEI2MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDMDY1RjJDMUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTAwOTQsNiAr
MTAxNDQsMjggQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSAzNzJFQkI0NjIwMTdFNjQzMDAwODUw
NjQgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwYyAqLzsKIAkJ
CXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2UiOwogCQl9
OworCQkzOUU5RUM5MDIxQjc1RUQ3MDBCQTVGMTkgLyogUGF5bWVudHMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMzlFOUVDOUUy
MUI3NUVENzAwQkE1RjE5IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZl
VGFyZ2V0ICJQYXltZW50cyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkzOUU5RUM5NTIx
Qjc1RUQ3MDBCQTVGMTkgLyogUmVtb3ZlIHN0YWxlIGVudGl0bGVtZW50cyBmaWxlICovLAorCQkJ
CTM5RTlFQzk2MjFCNzVFRDcwMEJBNUYxOSAvKiBTb3VyY2VzICovLAorCQkJCTM5RTlFQzk4MjFC
NzVFRDcwMEJBNUYxOSAvKiBGcmFtZXdvcmtzICovLAorCQkJCTM5RTlFQzlCMjFCNzVFRDcwMEJB
NUYxOSAvKiBSZXNvdXJjZXMgKi8sCisJCQkJMzlFOUVDOUMyMUI3NUVENzAwQkE1RjE5IC8qIFVu
bG9jayBrZXljaGFpbiAqLywKKwkJCQkzOUU5RUM5RDIxQjc1RUQ3MDBCQTVGMTkgLyogUHJvY2Vz
cyBQYXltZW50IGVudGl0bGVtZW50cyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJ
KTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkzOUU5RUM5MTIxQjc1RUQ3MDBCQTVGMTkgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCQkzOUU5RUM5MzIxQjc1RUQ3MDBCQTVGMTkgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCSk7CisJCQluYW1lID0gUGF5bWVudHM7CisJCQlw
cm9kdWN0TmFtZSA9IFBheW1lbnRzOworCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDM5RTlFQ0EyMjFC
NzVFRDcwMEJBNUYxOSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnhwYyAqLzsKKwkJCXBy
b2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2UiOworCQl9Owog
CQk1MTAwMzFFQTEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0gKi8gPSB7CiAJCQlpc2Eg
PSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTEwMDMxRjIx
Mzc5Q0FDQjAwQzhERkU0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZl
VGFyZ2V0ICJTZWNJdGVtU2hpbSIgKi87CkBAIC0xMDI3NCw2ICsxMDM0Niw3IEBACiAJCQkJQkMz
REU0NjUxNUE5MTc2MzAwOEQyNkZDIC8qIFdlYkNvbnRlbnQgKi8sCiAJCQkJMzcyRUJCMzgyMDE3
RTY0MzAwMDg1MDY0IC8qIFdlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgKi8sCiAJCQkJQkM4MjgzQjAx
NkI0QkY3NzAwQTI3OEZFIC8qIE5ldHdvcmtpbmcgKi8sCisJCQkJMzlFOUVDOTAyMUI3NUVENzAw
QkE1RjE5IC8qIFBheW1lbnRzICovLAogCQkJCUJDODI4M0Y4MTZCNEZEREUwMEEyNzhGRSAvKiBQ
bHVnaW4uMzIgKi8sCiAJCQkJQkM4Mjg0MUUxNkI0RkRGNjAwQTI3OEZFIC8qIFBsdWdpbi42NCAq
LywKIAkJCQlBN0FBREExMDE5Mzk1Q0E5MDAzRUExQzcgLyogU2FuZGJveCBQcm9maWxlcyAqLywK
QEAgLTEwMjkxLDEyICsxMDM2NCwxOCBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQkzOUU5RUM5QjIxQjc1RUQ3MDBCQTVGMTkgLyog
UmVzb3VyY2VzICovID0geworCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJOERDMkVGNTIwNDg2
QTY5NDAwOThCMjE2IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1
aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAo
CiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAotCQkJCTM5MTM2MDI1MjE5M0MxNDMwMDU2NDky
QSAvKiBjb20uYXBwbGUuV2ViS2l0LlBheW1lbnRzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlF
MTFEMzVBRTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVz
b3VyY2VzICovLAogCQkJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBjb20uY2lzY28ud2Vi
ZXgucGx1Z2luLmdwYzY0LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFFNTRENDUy
MDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApAQCAtMTA1
MjIsNiArMTA2MDEsNDkgQEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVsbFNjcmlw
dCA9ICJpZiBbWyBcIiR7V0tfTUFOVUFMX1NBTkRCT1hJTkdfRU5BQkxFRH1cIiAhPSBcIllFU1wi
IHx8IFwiJHtXS19QTEFURk9STV9OQU1FfVwiID09IFwibWFjb3N4XCIgfHwgXCIke1dLX1BMQVRG
T1JNX05BTUV9XCIgPT0gXCJpb3NtYWNcIiBdXTsgdGhlblxuICAgIGV4aXRcbmZpXG5cbmlmIFtb
IFwiJHtBQ1RJT059XCIgPT0gXCJidWlsZFwiIHx8IFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxs
XCIgXV07IHRoZW5cbiAgICBmb3IgKChpID0gMDsgaSA8ICR7U0NSSVBUX0lOUFVUX0ZJTEVfQ09V
TlR9OyArK2kpKTsgZG9cbiAgICAgICAgZXZhbCBTQU5EQk9YX1BST0ZJTEU9XFwke1NDUklQVF9J
TlBVVF9GSUxFXyR7aX19XG4gICAgICAgIGRpdHRvIFwiJHtTQU5EQk9YX1BST0ZJTEV9XCIgXCIk
e1RBUkdFVF9CVUlMRF9ESVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VTX0ZPTERFUl9QQVRIfS8k
e1NBTkRCT1hfUFJPRklMRSMjKi99XCJcbiAgICBkb25lXG5maVxuIjsKIAkJfTsKKwkJMzlFOUVD
OTUyMUI3NUVENzAwQkE1RjE5IC8qIFJlbW92ZSBzdGFsZSBlbnRpdGxlbWVudHMgZmlsZSAqLyA9
IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAor
CQkJKTsKKwkJCW5hbWUgPSAiUmVtb3ZlIHN0YWxlIGVudGl0bGVtZW50cyBmaWxlIjsKKwkJCW91
dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIiMgV2Ug
YXV0b2dlbmVyYXRlIHRoaXMgZmlsZSwgc28gZG9uJ3Qgd2FudCB0byByZXRhaW4gYW4gb2xkIGNv
cHkgZHVyaW5nIGJ1aWxkcy5cbnJtIC1mICR7VEVNUF9GSUxFX0RJUn0vJHtGVUxMX1BST0RVQ1Rf
TkFNRX0ueGNlbnRcbiI7CisJCX07CisJCTM5RTlFQzlDMjFCNzVFRDcwMEJBNUYxOSAvKiBVbmxv
Y2sga2V5Y2hhaW4gKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJ
aW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIlVubG9jayBrZXljaGFpbiI7CisJCQlv
dXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJVTkxP
Q0tfU0NSSVBUX1BBVEg9XCIke1NSQ1JPT1R9Ly4uLy4uLy4uL0ludGVybmFsL1Rvb2xzL1Njcmlw
dHMvdW5sb2NrLXNhZmFyaS1lbmdpbmVlcmluZy1rZXljaGFpbi1pZi1uZWVkZWRcIlxuXG5bWyAt
eCBcIiR7VU5MT0NLX1NDUklQVF9QQVRIfVwiIF1dICYmIGV4ZWMgXCIke1VOTE9DS19TQ1JJUFRf
UEFUSH1cIlxuXG5leGl0IDBcbiI7CisJCX07CisJCTM5RTlFQzlEMjFCNzVFRDcwMEJBNUYxOSAv
KiBQcm9jZXNzIFBheW1lbnQgZW50aXRsZW1lbnRzICovID0geworCQkJaXNhID0gUEJYU2hlbGxT
Y3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZp
bGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJQcm9j
ZXNzIFBheW1lbnQgZW50aXRsZW1lbnRzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0g
L2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIgorIjsKKwkJfTsKIAkJNDE1Nzg1MzcyMTI3OUND
NjAwREQzODAwIC8qIENvcHkgQ3VzdG9tIFdlYkNvbnRlbnQgUmVzb3VyY2VzIHRvIEZyYW1ld29y
ayBQcml2YXRlIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhh
c2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTA3NzQsNiArMTA4OTYs
NyBAQAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
NjQueHBjIiwKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpLyQoV0tfU1RPUkFHRV9TRVJWSUNF
X1BST0RVQ1RfTkFNRSkueHBjIiwKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL2NvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGMiLAorCQkJCSIkKEJVSUxUX1BST0RV
Q1RTX0RJUikvY29tLmFwcGxlLldlYktpdC5QYXltZW50cy54cGMiLAogCQkJKTsKIAkJCW5hbWUg
PSAiQ29weSBYUEMgc2VydmljZXMgZm9yIGVuZ2luZWVyaW5nIGJ1aWxkcyI7CiAJCQlvdXRwdXRQ
YXRocyA9ICgKQEAgLTEwNzgzLDEwICsxMDkwNiwxMSBAQAogCQkJCSIkKEJVSUxUX1BST0RVQ1RT
X0RJUikvV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2aWNlcy9jb20uYXBwbGUuV2ViS2l0LlBsdWdp
bi42NC54cGMiLAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29yay9Y
UENTZXJ2aWNlcy8kKFdLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05BTUUpLnhwYyIsCiAJCQkJ
IiQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJLaXQuZnJhbWV3b3JrL1hQQ1NlcnZpY2VzL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGMiLAorCQkJCSIkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2aWNlcy9jb20uYXBwbGUuV2ViS2l0
LlBheW1lbnRzLnhwYyIsCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiaWYg
W1sgXCIke0NPTkZJR1VSQVRJT059XCIgPT0gXCJQcm9kdWN0aW9uXCIgXV07IHRoZW5cbiAgICBl
eGl0XG5maVxuXG5pZiBbWyAke1dLX1BMQVRGT1JNX05BTUV9ICE9IFwibWFjb3N4XCIgXV07IHRo
ZW5cbiAgICBYUENfU0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9XZWJLaXQu
ZnJhbWV3b3JrL1hQQ1NlcnZpY2VzXCJcbmVsc2VcbiAgICBYUENfU0VSVklDRVNfUEFUSD1cIiR7
QlVJTFRfUFJPRFVDVFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2Vydmlj
ZXNcIlxuZmlcblxubWtkaXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRIfVwiXG5kaXR0byBcIiR7
QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCIgXCIk
e1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCJcbmRp
dHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy54
cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy54
cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtXS19TVE9SQUdFX1NFUlZJQ0Vf
UFJPRFVDVF9OQU1FfS54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9LyR7V0tfU1RPUkFHRV9T
RVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCJcblxuaWYgW1sgJHtXS19QTEFURk9STV9OQU1FfSA9
PSBtYWNvc3ggXV07IHRoZW5cbiAgICBkaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20u
YXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luLnhwY1wiXG4gICAgZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRI
fS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZmlcbiI7CisJCQlzaGVsbFNjcmlw
dCA9ICJpZiBbWyBcIiR7Q09ORklHVVJBVElPTn1cIiA9PSBcIlByb2R1Y3Rpb25cIiBdXTsgdGhl
blxuICAgIGV4aXRcbmZpXG5cbmlmIFtbICR7V0tfUExBVEZPUk1fTkFNRX0gIT0gXCJtYWNvc3hc
IiBdXTsgdGhlblxuICAgIFhQQ19TRVJWSUNFU19QQVRIPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
L1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXNcIlxuZWxzZVxuICAgIFhQQ19TRVJWSUNFU19Q
QVRIPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Y
UENTZXJ2aWNlc1wiXG5maVxubWtkaXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRIfVwiXG5kaXR0
byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBj
XCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBj
XCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktp
dC5QYXltZW50cy54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQu
UGF5bWVudHMueHBjXCJcblxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtXS19TVE9S
QUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1FfS54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9LyR7
V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBjXCJcblxuaWYgW1sgJHtXS19QTEFU
Rk9STV9OQU1FfSA9PSBtYWNvc3ggXV07IHRoZW5cbiAgICBkaXR0byBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGNcIiBcIiR7WFBDX1NFUlZJQ0VT
X1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLnhwY1wiXG4gICAgZGl0dG8gXCIke0JVSUxU
X1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIke1hQQ19T
RVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZmlcbiI7CiAJ
CX07CiAJCUMwQ0U3Mjg0MTI0N0U2NjgwMEJDMEVDNCAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CkBAIC0xMDgzNSw2
ICsxMDk1OSwxNCBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OworCQkzOUU5RUM5NjIxQjc1RUQ3MDBCQTVGMTkgLyogU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTM5RTlFQzk3MjFCNzVFRDcwMEJBNUYxOSAv
KiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1MTAwMzFFQzEzNzlDQUNCMDBD
OERGRTQgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTEwOTAzLDExICsxMTAzNSwxMCBA
QAogCQkJCTJEOTEzNDQ3MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOUFJ1bnRpbWVPYmplY3RNYXAuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDgyMTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGlt
ZVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc5NDIxMkI2QUQ0MDBGNDkz
RkQgLyogTlBWYXJpYW50RGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MUUzNTFGRjE4MEY1
RDBGMDBFNTNCRTkgLyogUGF5bWVudFByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTEx
NUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFBheW1lbnRQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTExOEU5QTgxRjI5NTk3NzAwM0VGOUY1IC8qIFBheW1lbnRQcm9jZXNzTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlG
NSAvKiBQYXltZW50UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBQYXltZW50VG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzOTVDREM2NDIxQkI1RTRFMDA3NjZFNEQg
LyogUGF5bWVudFByb2Nlc3NDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzOTVDREM2NTIxQkI1RTUxMDA3NjZFNEQgLyogUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM5NUNE
QzZFMjFDNDdDNUUwMDc2NkU0RCAvKiBQYXltZW50UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkzOTVDREM2RDIxQzQ3QjY4MDA3NjZFNEQgLyogUGF5bWVudFBy
b2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEy
ODFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEyQTFDQkVCNjdBMDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEOTEzNDQ5MjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVnaW4uY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0xMTE5MSw2ICsxMTMyMiw3IEBACiAJCQkJNTE3QTUyRDgxRjQzQTlEQTAwRENEQzBB
IC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5MzU2RjJFMDIxNTJCNzUyMDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNTI2MkJEMUZCOTUxNjEwMDcwRTU3
OSAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMzkzRjI1OUYyMUM4RDQ2NTAwRTRDRTg1IC8qIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEOTJBNzhFMjEyQjZBQjEwMEY0OTNGRCAvKiBXZWJUb3VjaEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBQUYwOEI3MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MzNjFENzgxOTI4
MDNCRDAwMzZBNTlEIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTEyODksNiArMTE0MjEsMjEgQEAKIAkJCXRhcmdl
dCA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CiAJCQl0
YXJnZXRQcm94eSA9IDM3Rjc0MDc4MTI3MjFGNzQwMDkzODY5QiAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CiAJCX07CisJCTM5RTlFQzkxMjFCNzVFRDcwMEJBNUYxOSAvKiBQQlhUYXJnZXRE
ZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdl
dCA9IEUxQUMyRTI3MjBGN0I5NEMwMEIwODk3RCAvKiBVbmxvY2sgS2V5Y2hhaW4gKi87CisJCQl0
YXJnZXRQcm94eSA9IDM5RTlFQzkyMjFCNzVFRDcwMEJBNUYxOSAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CisJCX07CisJCTM5RTlFQzkzMjFCNzVFRDcwMEJBNUYxOSAvKiBQQlhUYXJnZXRE
ZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdl
dCA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQgKi87CisJCQl0YXJnZXRQcm94
eSA9IDM5RTlFQzk0MjFCNzVFRDcwMEJBNUYxOSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87
CisJCX07CisJCTM5RTlFQ0E5MjFCODc2NDIwMEJBNUYxOSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5
ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDM5RTlF
QzkwMjFCNzVFRDcwMEJBNUYxOSAvKiBQYXltZW50cyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMzlF
OUVDQTgyMUI4NzY0MjAwQkE1RjE5IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsK
IAkJQkM3N0Y5NTYxNkQwNDU5MTAwRjhGNzhBIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7
CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gQkM4MjgzRjgxNkI0
RkRERTAwQTI3OEZFIC8qIFBsdWdpbi4zMiAqLzsKQEAgLTExNDgzLDYgKzExNjMwLDU0IEBACiAJ
CQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTM5RTlFQzlGMjFCNzVFRDcwMEJB
NUYxOSAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJ
YmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyog
UGF5bWVudFNlcnZpY2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNP
REVfU0lHTl9FTlRJVExFTUVOVFNfQ09DT0FfVE9VQ0hfTk8gPSAiQ29uZmlndXJhdGlvbnMvUGF5
bWVudHMtaU9TLmVudGl0bGVtZW50cyI7CisJCQkJUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9
IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVudHM7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElU
TEVNRU5UU19CQVNFX2FwcGxldHZvcyA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJW
SUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV9hcHBsZXR2c2ltdWxhdG9yID0gIlBheW1lbnRzLWlP
UyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lvc21hYyA9ICJQ
YXltZW50cy1pT1MtbWluaW1hbHNpbXVsYXRvciI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VO
VElUTEVNRU5UU19CQVNFX2lwaG9uZW9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NF
UlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lwaG9uZXNpbXVsYXRvciA9ICJQYXltZW50cy1p
T1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRV93YXRjaG9zID0g
IlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNF
X3dhdGNoc2ltdWxhdG9yID0gIlBheW1lbnRzLWlPUyI7CisJCQl9OworCQkJbmFtZSA9IERlYnVn
OworCQl9OworCQkzOUU5RUNBMDIxQjc1RUQ3MDBCQTVGMTkgLyogUmVsZWFzZSAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogUGF5bWVudFNlcnZpY2UueGNjb25maWcg
Ki87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNPREVfU0lHTl9FTlRJVExFTUVOVFNfQ09D
T0FfVE9VQ0hfTk8gPSAiQ29uZmlndXJhdGlvbnMvUGF5bWVudHMtaU9TLmVudGl0bGVtZW50cyI7
CisJCQkJUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9IGNvbS5hcHBsZS5XZWJLaXQuUGF5bWVu
dHM7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2FwcGxldHZvcyA9
ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFT
RV9hcHBsZXR2c2ltdWxhdG9yID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0Vf
SU9TX0VOVElUTEVNRU5UU19CQVNFX2lvc21hYyA9ICJQYXltZW50cy1pT1MtbWluaW1hbHNpbXVs
YXRvciI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2lwaG9uZW9z
ID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19C
QVNFX2lwaG9uZXNpbXVsYXRvciA9ICJQYXltZW50cy1pT1MiOworCQkJCVdLX1hQQ19TRVJWSUNF
X0lPU19FTlRJVExFTUVOVFNfQkFTRV93YXRjaG9zID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tf
WFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX3dhdGNoc2ltdWxhdG9yID0gIlBheW1l
bnRzLWlPUyI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTM5RTlFQ0ExMjFC
NzVFRDcwMEJBNUYxOSAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxQTYwQjI5MTgwQ0NE
OTAwMEYzQkY1MCAvKiBQYXltZW50U2VydmljZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CisJCQkJQ09ERV9TSUdOX0VOVElUTEVNRU5UU19DT0NPQV9UT1VDSF9OTyA9ICJDb25m
aWd1cmF0aW9ucy9QYXltZW50cy1pT1MuZW50aXRsZW1lbnRzIjsKKwkJCQlQUk9EVUNUX0JVTkRM
RV9JREVOVElGSUVSID0gY29tLmFwcGxlLldlYktpdC5QYXltZW50czsKKwkJCQlXS19YUENfU0VS
VklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0VfYXBwbGV0dm9zID0gIlBheW1lbnRzLWlPUyI7CisJ
CQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFX2FwcGxldHZzaW11bGF0b3Ig
PSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JB
U0VfaW9zbWFjID0gIlBheW1lbnRzLWlPUy1taW5pbWFsc2ltdWxhdG9yIjsKKwkJCQlXS19YUENf
U0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0VfaXBob25lb3MgPSAiUGF5bWVudHMtaU9TIjsK
KwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0VfaXBob25lc2ltdWxhdG9y
ID0gIlBheW1lbnRzLWlPUyI7CisJCQkJV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19C
QVNFX3dhdGNob3MgPSAiUGF5bWVudHMtaU9TIjsKKwkJCQlXS19YUENfU0VSVklDRV9JT1NfRU5U
SVRMRU1FTlRTX0JBU0Vfd2F0Y2hzaW11bGF0b3IgPSAiUGF5bWVudHMtaU9TIjsKKwkJCX07CisJ
CQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNTEwMDMxRjMxMzc5Q0FDQjAwQzhERkU0IC8q
IERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29u
ZmlndXJhdGlvblJlZmVyZW5jZSA9IEExRUREMkRDMTg4NEI5QjUwMEJCRkU5OCAvKiBTZWNJdGVt
U2hpbS54Y2NvbmZpZyAqLzsKQEAgLTExNzU0LDYgKzExOTQ5LDE2IEBACiAJCQlkZWZhdWx0Q29u
ZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQkzOUU5RUM5RTIxQjc1RUQ3MDBCQTVGMTkgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIlBheW1lbnRzIiAqLyA9IHsKKwkJ
CWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAor
CQkJCTM5RTlFQzlGMjFCNzVFRDcwMEJBNUYxOSAvKiBEZWJ1ZyAqLywKKwkJCQkzOUU5RUNBMDIx
Qjc1RUQ3MDBCQTVGMTkgLyogUmVsZWFzZSAqLywKKwkJCQkzOUU5RUNBMTIxQjc1RUQ3MDBCQTVG
MTkgLyogUHJvZHVjdGlvbiAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlz
aWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9
OwogCQk1MTAwMzFGMjEzNzlDQUNCMDBDOERGRTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhOYXRpdmVUYXJnZXQgIlNlY0l0ZW1TaGltIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29u
ZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjY2NmZjc3NGQxY2RiZjQ0Y2Y1NTM3ZGQ4MDQ2
NzNjNDkyOTBiYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGF5bWVudHMvUGF5bWVudFByb2Nlc3NDb29yZGluYXRvci5jcHAKQEAgLTAsMCArMSwyMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSAiV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50Q29vcmRpbmF0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCisgICAgOiBtX3dlYlBhZ2Uo
d2ViUGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV93ZWJQYWdlLnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK1BheW1lbnRQcm9jZXNzQ29v
cmRpbmF0b3I6On5QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkKK3sKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCitib29sIFBh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OnN1cHBvcnRzVmVyc2lvbih1bnNpZ25lZCB2ZXJzaW9u
KQoreworICAgIEFTU0VSVCh2ZXJzaW9uID4gMCk7CisgICAgCisjaWYgIUVOQUJMRShBUFBMRV9Q
QVlfU0VTU0lPTl9WMykKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY3VycmVudFZlcnNpb24g
PSAyOworI2VsaWYgIUVOQUJMRShBUFBMRV9QQVlfU0VTU0lPTl9WNCkKKyAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgY3VycmVudFZlcnNpb24gPSAzOworI2Vsc2UKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgY3VycmVudFZlcnNpb24gPSA1OworI2VuZGlmCisgICAgCisgICAgcmV0dXJuIHZl
cnNpb24gPD0gY3VycmVudFZlcnNpb247Cit9CisKK2NvbnN0IFBheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3I6OkF2YWlsYWJsZVBheW1lbnROZXR3b3Jrc1NldCYgUGF5bWVudFByb2Nlc3NDb29yZGlu
YXRvcjo6YXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCkKK3sKKyAgICBpZiAobV9hdmFpbGFibGVQ
YXltZW50TmV0d29ya3MpCisgICAgICAgIHJldHVybiAqbV9hdmFpbGFibGVQYXltZW50TmV0d29y
a3M7CisgICAgCisgICAgbV9hdmFpbGFibGVQYXltZW50TmV0d29ya3MgPSBQYXltZW50UHJvY2Vz
c0Nvb3JkaW5hdG9yOjpBdmFpbGFibGVQYXltZW50TmV0d29ya3NTZXQoKTsKKyAgICAKKyAgICBW
ZWN0b3I8U3RyaW5nPiBhdmFpbGFibGVQYXltZW50TmV0d29ya3M7CisgICAgdXNpbmcgQXZhaWxh
YmxlUGF5bWVudE5ldHdvcmtzTWVzc2FnZSA9IE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yUHJveHk6OkF2YWlsYWJsZVBheW1lbnROZXR3b3JrczsKKyAgICBpZiAoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZFN5bmMoQXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzTWVzc2FnZSgpLCBBdmFp
bGFibGVQYXltZW50TmV0d29ya3NNZXNzYWdlOjpSZXBseShhdmFpbGFibGVQYXltZW50TmV0d29y
a3MpLCAwKSkgeworICAgICAgICBmb3IgKGF1dG8mIG5ldHdvcmsgOiBhdmFpbGFibGVQYXltZW50
TmV0d29ya3MpCisgICAgICAgICAgICBtX2F2YWlsYWJsZVBheW1lbnROZXR3b3Jrcy0+YWRkKG5l
dHdvcmspOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gKm1fYXZhaWxhYmxlUGF5bWVudE5ldHdv
cmtzOworfQorCitPcHRpb25hbDxTdHJpbmc+IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OnZh
bGlkYXRlZFBheW1lbnROZXR3b3JrKGNvbnN0IFN0cmluZyYgcGF5bWVudE5ldHdvcmspCit7Cisg
ICAgYXV0byYgcGF5bWVudE5ldHdvcmtzID0gYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKCk7Cisg
ICAgYXV0byByZXN1bHQgPSBwYXltZW50TmV0d29ya3MuZmluZChwYXltZW50TmV0d29yayk7Cisg
ICAgaWYgKHJlc3VsdCA9PSBwYXltZW50TmV0d29ya3MuZW5kKCkpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgcmV0dXJuICpyZXN1bHQ7Cit9CisKK2Jvb2wgUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvcjo6Y2FuTWFrZVBheW1lbnRzKCkKK3sKKyAgICBib29sIGNhbk1ha2VQYXlt
ZW50czsKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpQYXlt
ZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkNhbk1ha2VQYXltZW50cygpLCBNZXNzYWdlczo6
UGF5bWVudFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpDYW5NYWtlUGF5bWVudHM6OlJlcGx5KGNh
bk1ha2VQYXltZW50cyksIDApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0
dXJuIGNhbk1ha2VQYXltZW50czsKK30KKworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlQ2FuTWFr
ZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseUlEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3Qg
Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseUlEOworICAgIAorICAgIHJldHVybiAr
K2Nhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkUmVwbHlJRDsKK30KKwordm9pZCBQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBT
dHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBy
ZXBseUlEID0gZ2VuZXJhdGVDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZFJlcGx5SUQoKTsK
KyAgICAKKyAgICBtX3BlbmRpbmdDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZENhbGxiYWNr
cy5hZGQocmVwbHlJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3JQcm94eTo6
Q2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQobWVyY2hhbnRJZGVudGlmaWVyLCBkb21haW5O
YW1lLCByZXBseUlEKSwgMCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZU9wZW5QYXlt
ZW50U2V0dXBSZXBseUlEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3Qgb3BlblBheW1lbnRTZXR1
cFJlcGx5SUQ7CisgICAgCisgICAgcmV0dXJuICsrb3BlblBheW1lbnRTZXR1cFJlcGx5SUQ7Cit9
CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6b3BlblBheW1lbnRTZXR1cChjb25z
dCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0
byByZXBseUlEID0gZ2VuZXJhdGVPcGVuUGF5bWVudFNldHVwUmVwbHlJRCgpOworICAgIAorICAg
IG1fcGVuZGluZ09wZW5QYXltZW50U2V0dXBDYWxsYmFja3MuYWRkKHJlcGx5SUQsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVX
ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6Ok9wZW5QYXltZW50U2V0dXAobWVyY2hh
bnRJZGVudGlmaWVyLCBkb21haW5OYW1lLCByZXBseUlEKSwgMCk7Cit9CisKK2Jvb2wgUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSShjb25zdCBXVEY6OlVSTCYgb3JpZ2lu
YXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxXVEY6OlVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KQorewor
ICAgIFZlY3RvcjxTdHJpbmc+IGxpbmtJY29uVVJMU3RyaW5nczsKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIGxpbmtJY29uVVJMIDogbGlua0ljb25VUkxzKQorICAgICAgICBsaW5rSWNvblVSTFN0cmlu
Z3MuYXBwZW5kKGxpbmtJY29uVVJMLnN0cmluZygpKTsKKyAgICAKKyAgICBib29sIHJlc3VsdDsK
KyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yUHJveHk6OlNob3dQYXltZW50VUkob3JpZ2luYXRpbmdVUkwuc3RyaW5n
KCksIGxpbmtJY29uVVJMU3RyaW5ncywgcGF5bWVudFJlcXVlc3QpLCBNZXNzYWdlczo6UGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvclByb3h5OjpTaG93UGF5bWVudFVJOjpSZXBseShyZXN1bHQpLCAw
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6Y29tcGxldGVNZXJjaGFudFZhbGlkYXRp
b24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYgcGF5bWVudE1lcmNoYW50
U2Vzc2lvbikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1l
bnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50
UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1l
bnRNZXJjaGFudFNlc3Npb24pLCAwKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24odXBkYXRlKSwgMCk7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nl
c3NDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8
V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJveHk6
OkNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSksIDApOworfQorCit2b2lk
IFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3sKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yUHJveHk6OkNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbih1cGRhdGUpLCAwKTsKK30K
Kwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9u
KE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nv
b3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KSwgMCk7Cit9CisK
K3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6YWJvcnRQYXltZW50U2Vzc2lvbigpCit7
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvclByb3h5OjpBYm9ydFBheW1lbnRTZXNzaW9uKCksIDApOworfQorCit2b2lkIFBheW1l
bnRQcm9jZXNzQ29vcmRpbmF0b3I6OmNhbmNlbFBheW1lbnRTZXNzaW9uKCkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yUHJv
eHk6OkNhbmNlbFBheW1lbnRTZXNzaW9uKCksIDApOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3I6OnBheW1lbnRDb29yZGluYXRvckRlc3Ryb3llZCgpCit7CisgICAgZGVsZXRl
IHRoaXM7Cit9CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6dmFsaWRhdGVNZXJj
aGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25VUkxTdHJpbmcpCit7CisgICAgcGF5bWVudFBy
b2Nlc3NDb29yZGluYXRvcigpLnZhbGlkYXRlTWVyY2hhbnQoV1RGOjpVUkwoV1RGOjpVUkwoKSwg
dmFsaWRhdGlvblVSTFN0cmluZykpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0
b3I6OmRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVudCYgcGF5bWVudCkK
K3sKKyAgICBwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkuZGlkQXV0aG9yaXplUGF5bWVudChw
YXltZW50KTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpkaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQoreworICAgIHBheW1lbnRQcm9jZXNz
Q29vcmRpbmF0b3IoKS5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhvZCk7Cit9
CisKK3ZvaWQgUGF5bWVudFByb2Nlc3NDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdDb250
YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBzaGlwcGluZ0NvbnRhY3QpCit7Cisg
ICAgcGF5bWVudFByb2Nlc3NDb29yZGluYXRvcigpLmRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChz
aGlwcGluZ0NvbnRhY3QpOworfQorCit2b2lkIFBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3I6OmRp
ZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYgcGF5bWVu
dE1ldGhvZCkKK3sKKyAgICBwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkuZGlkU2VsZWN0UGF5
bWVudE1ldGhvZChwYXltZW50TWV0aG9kKTsKK30KKwordm9pZCBQYXltZW50UHJvY2Vzc0Nvb3Jk
aW5hdG9yOjpkaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpCit7CisgICAgcGF5bWVudFByb2Nlc3ND
b29yZGluYXRvcigpLmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCk7Cit9CisKK3ZvaWQgUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvcjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1
aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQoreworICAgIGF1dG8gY2Fs
bGJhY2sgPSBtX3BlbmRpbmdDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZENhbGxiYWNrcy50
YWtlKHJlcXVlc3RJRCk7CisgICAgY2FsbGJhY2soY2FuTWFrZVBheW1lbnRzKTsKK30KKwordm9p
ZCBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yOjpvcGVuUGF5bWVudFNldHVwUmVwbHkodWludDY0
X3QgcmVxdWVzdElELCBib29sIHJlc3VsdCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5k
aW5nT3BlblBheW1lbnRTZXR1cENhbGxiYWNrcy50YWtlKHJlcXVlc3RJRCk7CisgICAgY2FsbGJh
Y2socmVzdWx0KTsKK30KKworV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9yJiBQYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yOjpwYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCkKK3sKKyAgICByZXR1
cm4gbV93ZWJQYWdlLmNvcmVQYWdlKCktPnBheW1lbnRDb29yZGluYXRvcigpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1Bh
eW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXlt
ZW50cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1ZmUwYjVjZDIy
NDQyMjk1NTg2YWFjZTE0Y2FlZDZlYTgyZmJlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmgKQEAg
LTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShB
UFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRDb29yZGluYXRvckNsaWVudC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBJUEMgewor
Y2xhc3MgRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUGF5
bWVudENvb3JkaW5hdG9yOworY2xhc3MgUGF5bWVudENvbnRhY3Q7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBQYXltZW50UHJvY2Vzc0Nvb3JkaW5h
dG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvckNsaWVudCwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGF5bWVu
dFByb2Nlc3NDb29yZGluYXRvcihXZWJQYWdlJik7CisgICAgflBheW1lbnRQcm9jZXNzQ29vcmRp
bmF0b3IoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6UGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50LgorICAgIGJvb2wgc3VwcG9ydHNWZXJzaW9uKHVuc2lnbmVkIHZlcnNpb24pIG92
ZXJyaWRlOworICAgIE9wdGlvbmFsPFN0cmluZz4gdmFsaWRhdGVkUGF5bWVudE5ldHdvcmsoY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5NYWtlUGF5bWVudHMoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKGNvbnN0IFN0cmluZyYg
bWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIFdURjo6RnVuY3Rp
b248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBv
cGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvbWFpbk5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFdURjo6VVJM
JiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFdURjo6VVJMPiYgbGlua0ljb25VUkxzLCBj
b25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVu
dE1lcmNoYW50U2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01l
dGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRp
b25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1l
bnRNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vz
c2lvbihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgb3Zl
cnJpZGU7CisgICAgCisgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRlOworICAgIAorICAgIHZvaWQg
cGF5bWVudENvb3JkaW5hdG9yRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgCisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICAKKyAgICAvLyBNZXNzYWdlIGhh
bmRsZXJzLgorICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRp
b25VUkxTdHJpbmcpOworICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3Jl
OjpQYXltZW50Jik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAg
ICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29u
dGFjdCYpOworICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQ
YXltZW50TWV0aG9kJik7CisgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpOworICAg
IHZvaWQgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0
SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKTsKKyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXBSZXBs
eSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KTsKKyAgICAKKyAgICBXZWJDb3JlOjpQ
YXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IoKTsKKyAgICAKKyAg
ICB1c2luZyBBdmFpbGFibGVQYXltZW50TmV0d29ya3NTZXQgPSBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPjsKKyAgICBjb25zdCBBdmFpbGFibGVQYXltZW50TmV0d29y
a3NTZXQmIGF2YWlsYWJsZVBheW1lbnROZXR3b3JrcygpOworICAgIAorICAgIFdlYlBhZ2UmIG1f
d2ViUGFnZTsKKyAgICAKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+PiBtX3BlbmRpbmdDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZENhbGxiYWNrczsK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+PiBtX3BlbmRp
bmdPcGVuUGF5bWVudFNldHVwQ2FsbGJhY2tzOworICAgIAorICAgIE9wdGlvbmFsPEF2YWlsYWJs
ZVBheW1lbnROZXR3b3Jrc1NldD4gbV9hdmFpbGFibGVQYXltZW50TmV0d29ya3M7Cit9OworCit9
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9Q
YXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BheW1lbnRzL1BheW1lbnRQcm9jZXNzQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmFlMjcxZTg2NDY1ZTFhYzdiNDU4YTdlYTkwMjM1N2IzMWJkNmU3ZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9QYXltZW50UHJv
Y2Vzc0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjLworCisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYg
RU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUGF5bWVudFByb2Nlc3NDb29y
ZGluYXRvciB7CisKKyAgICBWYWxpZGF0ZU1lcmNoYW50KFN0cmluZyB2YWxpZGF0aW9uVVJMU3Ry
aW5nKQorICAgIERpZEF1dGhvcml6ZVBheW1lbnQoV2ViQ29yZTo6UGF5bWVudCBwYXltZW50KQor
ICAgIERpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZCkKKyAgICBEaWRTZWxlY3RT
aGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVudENvbnRhY3Qgc2hpcHBpbmdDb250YWN0KQor
ICAgIERpZFNlbGVjdFBheW1lbnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZCBwYXltZW50
TWV0aG9kKQorICAgIERpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkKKyAgICBDYW5NYWtlUGF5bWVu
dHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtlUGF5
bWVudHMpCisgICAgT3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9v
bCByZXN1bHQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKaW5kZXggYTZkMGE3YjU2OTJiMTE5ZmM2N2Y0MjdkZDQ3OWVlMThkMzgxNjNjMC4uMmQ0Y2Qy
YzdkMTZhNDQ0Yjk2MmI1MzBmZDU3N2I0YzRhZWRmNWJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0yMywxNiArMjMsMTUgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
KgogICovCi0jaWYgRU5BQkxFKFBBWU1FTlRfUFJPQ0VTUykKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLmgiCiAKKyNpZiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQogCisjaW5jbHVkZSAiUGF5bWVudFByb2Nlc3NDb29yZGluYXRv
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCi0jaW5jbHVkZSA8V2ViQ29y
ZS9TV0NvbnRleHRNYW5hZ2VyLmg+Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDgsMTcgKzQ3LDQyIEBAIFdl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKQogICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwogfQogCi12b2lkIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3ZvaWQgV2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb246OnZhbGlkYXRlTWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9u
VVJMU3RyaW5nKQoreworICAgIFVOVVNFRF9QQVJBTSh2YWxpZGF0aW9uVVJMU3RyaW5nKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNs
b3NlZCh0aGlzKTsKKworfQorCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpk
aWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCiB7Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
IHJlcGx5RW5jb2RlcikKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFNl
bGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7Cit9CiAKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYgc2hp
cHBpbmdDb250YWN0KQorewogfQogCit2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9u
OjpkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmIHBh
eW1lbnRNZXRob2QpCit7Cit9CisKK3ZvaWQgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkKK3sKK30KKwordm9pZCBXZWJUb1BheW1lbnRQcm9j
ZXNzQ29ubmVjdGlvbjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRf
dCByZXF1ZXN0SUQsIGJvb2wgY2FuTWFrZVBheW1lbnRzKQoreworfQorCit2b2lkIFdlYlRvUGF5
bWVudFByb2Nlc3NDb25uZWN0aW9uOjpvcGVuUGF5bWVudFNldHVwUmVwbHkodWludDY0X3QgcmVx
dWVzdElELCBib29sIHJlc3VsdCkKK3sKK30KKworCiB2b2lkIFdlYlRvUGF5bWVudFByb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAg
YXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNz
Q29ubmVjdGlvbi5oCmluZGV4IGE0MTc3ZjhmMmVjN2M1NTM4NzdkMWZiOTA0MjZkMTIzYzE2YTYy
MGYuLjlhOTA1MjdkYjE4YTRlMzUyNDNkOTViOTU0Mjc2N2M1ZDYwNjg2YWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QYXltZW50cy9XZWJUb1Bh
eW1lbnRQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0zMCwxNyArMzAsMTUgQEAKIAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9TV1NlcnZlci5oPgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9QYXltZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50Q29udGFjdC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUGF5bWVudE1ldGhvZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAKLW5hbWVzcGFjZSBQQUwgewotY2xhc3MgU2Vzc2lvbklEOwotfQotCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbj4sIHByaXZhdGUgSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICAKK2NsYXNz
IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgSVBDOjpN
ZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyKQogICAgIHsKQEAgLTQ5LDEzICs0NywyMiBAQCBwdWJsaWM6CiAgICAgfldl
YlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgCiAgICAgSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisgICAgICAgIAor
ICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25VUkxTdHJp
bmcpOworICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50
Jik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAgICB2b2lkIGRp
ZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpOwor
ICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0
aG9kJik7CisgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbigpOworICAgIHZvaWQgY2Fu
TWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmRSZXBseSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wg
Y2FuTWFrZVBheW1lbnRzKTsKKyAgICB2b2lkIG9wZW5QYXltZW50U2V0dXBSZXBseSh1aW50NjRf
dCByZXF1ZXN0SUQsIGJvb2wgcmVzdWx0KTsKKwogCiBwcml2YXRlOgogICAgIFdlYlRvUGF5bWVu
dFByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAgICAv
LyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1lbnRzL1dlYlRvUGF5bWVudFByb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BheW1l
bnRzL1dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcxODk5ODA3YzYwM2JiZTIxMDAyNWY3ODFkZTQyMGY4ODJhNjllNmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGF5bWVudHMvV2ViVG9QYXltZW50UHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyMvCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFC
TEUoUEFZTUVOVF9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiB7CisKKyAgICBWYWxpZGF0ZU1lcmNoYW50KFN0cmluZyB2YWxpZGF0aW9uVVJMU3Ry
aW5nKQorICAgIERpZEF1dGhvcml6ZVBheW1lbnQoV2ViQ29yZTo6UGF5bWVudCBwYXltZW50KQor
ICAgIERpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZCkKKyAgICBEaWRTZWxlY3RT
aGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVudENvbnRhY3Qgc2hpcHBpbmdDb250YWN0KQor
ICAgIERpZFNlbGVjdFBheW1lbnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZCBwYXltZW50
TWV0aG9kKQorICAgIERpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkKKyAgICBDYW5NYWtlUGF5bWVu
dHNXaXRoQWN0aXZlQ2FyZFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBjYW5NYWtlUGF5
bWVudHMpCisgICAgT3BlblBheW1lbnRTZXR1cFJlcGx5KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9v
bCByZXN1bHQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBiOTJlZWJmZjkwZjli
Y2QzNDQ4OGRhN2U0OTY3YjlkMzQ5ODkyNTFiLi5iNDA3ODkzY2VkM2MwYzY1MThhN2UzNTM2NTU2
ZGFmMjAzOGM3MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVs
ZVN0b3JhZ2VKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2
b2lkIHNjaGVkdWxlUGF5bWVudEpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0
YSYpOwogCiAgICAgdm9pZCBydW5PckRlbGF5VGFza0ZvckltcG9ydChXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiB0YXNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA3ZjA0NDNlNWM2ZWIzNTgyMzUyZTk3ZmMzYzk1YzRmYWNhZGJiZDlmLi40
Yzc0NDgwYWJiYjkyOGU4NDU2ZWM1N2VlYjk5ZTBmYmFkZDM1NmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKKyNp
bmNsdWRlICJQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJv
Y2Vzc0F0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm94eS5oIgogI2luY2x1ZGUgIlBs
dWdpblZpZXcuaCIKQEAgLTQ1Miw3ICs0NTMsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9IG1fdXNlckNvbnRlbnRDb250cm9s
bGVyLnB0cigpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSBWaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlcjo6Z2V0T3JDcmVhdGUocGFyYW1ldGVycy52aXNpdGVkTGlu
a1RhYmxlSUQpOwogCi0jaWYgRU5BQkxFKEFQUExFX1BBWSkKKyNpZiBFTkFCTEUoQVBQTEVfUEFZ
KSAmJiBFTkFCTEUoUEFZTUVOVF9QUk9DRVNTKQorICAgIHBhZ2VDb25maWd1cmF0aW9uLnBheW1l
bnRDb29yZGluYXRvckNsaWVudCA9IG5ldyBQYXltZW50UHJvY2Vzc0Nvb3JkaW5hdG9yKCp0aGlz
KTsKKyNlbGlmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGF5bWVu
dENvb3JkaW5hdG9yQ2xpZW50ID0gbmV3IFdlYlBheW1lbnRDb29yZGluYXRvcigqdGhpcyk7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDMzMTVh
YzI5MTIxZGIxYTlkNDk1ZGJlMjcxNzFmNDU1NmI4ZjE2MTcuLjdiZGExYTA4YmNmNTQ1ZWVjNmYz
MzgzNzBjYjQ0ZjBkMjhlM2UyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKQEAgLTM5MCw3ICszOTAsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAg
ICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAog
ICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwotCisjaWYgRU5BQkxFKFBBWU1F
TlRfUFJPQ0VTUykKKyAgICBlbnN1cmVXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbigpOwor
I2VuZGlmCiAgICAgc2V0VGVybWluYXRpb25UaW1lb3V0KHBhcmFtZXRlcnMudGVybWluYXRpb25U
aW1lb3V0KTsKIAogICAgIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKHBhcmFtZXRl
cnMucGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKTsKQEAgLTEyNTcsMTcgKzEyNTksMTcgQEAg
dm9pZCBXZWJQcm9jZXNzOjp3ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJU
b1BheW1lbnRQcm9jZXNzQ29ubmVjdGkKICAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0
aW9uID0gbnVsbHB0cjsKIH0KIAotV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlBy
b2Nlc3M6OmVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklE
IGluaXRpYWxTZXNzaW9uSUQpCitXZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJv
Y2Vzczo6ZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKQogewogICAgIGlmICgh
bV93ZWJUb1BheW1lbnRQcm9jZXNzQ29ubmVjdGlvbikgewogICAgICAgICBJUEM6OkF0dGFjaG1l
bnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyOwogCi0gICAgICAgIGlmICghcGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKGluaXRpYWxTZXNzaW9uSUQpLCBNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRD
b25uZWN0aW9uSWRlbnRpZmllciksIDApKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVj
dGlvbklkZW50aWZpZXIpKQorICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQYXltZW50UHJvY2Vzc0Nv
bm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllciksIDApKQorICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9u
OjppZGVudGlmaWVySXNWYWxpZChlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKSkK
ICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgbV93ZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiA9IFdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlv
bklkZW50aWZpZXIpOworICAgICAgICBtX3dlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uID0g
V2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShlbmNvZGVkQ29ubmVjdGlvbklk
ZW50aWZpZXIucG9ydCgpKTsKIAogICAgIH0KICAgICByZXR1cm4gKm1fd2ViVG9QYXltZW50UHJv
Y2Vzc0Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5
YTM0MzlmNzU2MzY2NTY1ZTM2NjMzZDJiNTEwODhmMGM0NTBmMmE3Li5lMDg0M2Y1ZmVkNzRjNzc3
MzUxMWIxMDE4ZjQ3MzMxNDEyNzA4NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTE4MCw3ICsxODAsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoUEFZTUVOVF9Q
Uk9DRVNTKQogICAgIHZvaWQgd2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2Vi
VG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24qKTsKLSAgICBXZWJUb1BheW1lbnRQcm9jZXNzQ29u
bmVjdGlvbiYgZW5zdXJlV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24oUEFMOjpTZXNzaW9u
SUQgaW5pdGlhbFNlc3Npb25JRCk7CisgICAgV2ViVG9QYXltZW50UHJvY2Vzc0Nvbm5lY3Rpb24m
IGVuc3VyZVdlYlRvUGF5bWVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiAjZW5kaWYgLy8gRU5BQkxF
KFBBWU1FTlRfUFJPQ0VTUykKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGFkNmI1ZjM4OWUzNzRhZmQ3YzA1MDg0MTEw
Nzg3OWVmYTgyYTdhZTUuLmQ4MGMzYjUwNjNjYmQ4YTUzYmM0ZmRiYzFhMmYwOGMzZWU2NmYxMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00MDEsNCArNDAxLDQgQEAgRU5BQkxF
X1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkp
ICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lP
Tl9WNCkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRf
RUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05J
TkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklO
RykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
ICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNP
TFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NO
QVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdf
V09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkg
JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElF
TlRTKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkg
JChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFC
TEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJ
TUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVf
RklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05E
QVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1Nf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkg
JChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9B
VFRSSUJVVEUpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09M
X01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRF
UlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BQ19WSURFT19U
T09MQk9YKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVf
TUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9T
VFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQo
RU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNB
R0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAk
KEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFC
TEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJ
WklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExF
UlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVf
VklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX1JUQykgJChF
TkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlOR19BUEkpICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVf
V0VCTUVUQUwpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNM
VCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9M
TElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklG
RVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5B
QkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQ
SSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVM
NCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikg
JChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChF
TkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRkFTVF9K
SVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJ
VCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChF
TkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9V
Q0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRF
KSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFU
VElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxF
X01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBWU1FTlRfUFJPQ0VTUykgJChFTkFCTEVfUEFZ
TUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5B
QkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQo
RU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJM
RV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RS
RUFNU19BUEkpICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9f
VFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVf
V0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlOR19BUEkpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCTUVU
QUwpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCBhZDZiNWYzODllMzc0YWZkN2MwNTA4NDExMDc4NzllZmE4
MmE3YWU1Li5kODBjM2I1MDYzY2JkOGE1M2JjNGZkYmMxYTJmMDhjM2VlNjZmMTAyIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKQEAgLTQwMSw0ICs0MDEsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxFX1hT
TFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNG
T1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9B
UFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJM
RV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1Mz
X1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxF
X0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NT
X1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9D
U1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0RB
UktfTU9ERV9DU1MpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lO
VEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVN
RU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMp
ICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIp
ICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1F
UEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVU
X1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykg
JChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9LRVlCT0FS
RF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFC
TEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxF
X01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNf
U0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9T
VEFOREFMT05FKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFC
TEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lO
U1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVC
QkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0Vf
V09SS0VSKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVVNF
UlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJBU1NFTUJM
WSkgJChFTkFCTEVfV0VCQVNTRU1CTFlfU1RSRUFNSU5HX0FQSSkgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJNRVRBTCkgJChFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9B
UFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9Q
QVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FU
VEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9Q
QVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5U
X0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJ
T05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9B
REFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1Nf
U0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1Nf
VFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9DU1NfQ09O
SUNfR1JBRElFTlRTKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREFUQUNVRV9WQUxV
RSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykg
JChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01Q
TEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVO
QUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJP
QVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQo
RU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9N
X1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5B
QkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01B
Q19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAk
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VU
SUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUEFZTUVOVF9QUk9DRVNTKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQo
RU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVC
TElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RP
UikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VS
KSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFC
TEVfV0VCX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVN
QkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9F
VkVOVFMpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVVNFUlNFTEVD
VF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVf
VklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChF
TkFCTEVfV0VCQVNTRU1CTFlfU1RSRUFNSU5HX0FQSSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJNRVRBTCkgJChFTkFCTEVfV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5tbQppbmRleCAzZjFhNjI4ODY4MjEwMmE1ODkyYTBlZWYzMmE5NDQyYTBjYWY1MDg0
Li5jMzQ2YWJmZDYyMGY5MzU1NWZkODAwNWM4YTFiNDBkOGE5YzA0N2IxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLm1tCkBAIC0xNDQsNiArMTQ0LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLCBDaGlsZFByb2Nlc3Nlc05vdExhdW5jaGVkKQogICAgIC8vIEVuc3VyZSB0aGUg
c2hhcmVkIHByb2Nlc3MgcG9vbCBleGlzdHMgc28gdGhlIGRhdGEgc3RvcmUgb3BlcmF0aW9ucyB3
ZSdyZSBhYm91dCB0byBkbyB3b3JrIHdpdGggaXQuCiAgICAgV0tQcm9jZXNzUG9vbCAqc2hhcmVk
UHJvY2Vzc1Bvb2wgPSBbV0tQcm9jZXNzUG9vbCBfc2hhcmVkUHJvY2Vzc1Bvb2xdOwogCisgICAg
RVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRl
bnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBf
cGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAgICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRl
RGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTY4LDYgKzE2OSw3IEBAIFRFU1QoUmVz
b3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVY
UEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDp0YXJnZXRVUkwucGF0aF0pOwogCisgICAgRVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJv
Y2Vzc1Bvb2wgX3BheW1lbnRQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgoc2l6
ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJjM2Q2M2E5ZWE4N2MyNmVjYTBkMWJmZDY2Nzc2
NTczMDkxNi4uZTY0MDNlOWUwZmY2ZWFiZGE5ZWNlMGYyOWNmZmE2NWU1NTVjZGM4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KQEAgLTEwNDYsNiArMTA0Niw5IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIFNlcnZpY2VXb3JrZXJQcm9jZXNzQ3JlYXRpb24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKKyAgICAvLyBNYWtlIHN1cmUgcGF5
bWVudCBwcm9jZXNzIGlzIG5vdCBsYXVuY2hlZC4KKyAgICBFWFBFQ1RfRVEoMCwgd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl9wYXltZW50UHJvY2Vzc0lkZW50aWZpZXIp
OworCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5v
dCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KICAgICBFWFBFQ1RfRVEoMXUsIHdl
YlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50SWdu
b3JpbmdQcmV3YXJtZWQpOwogCkBAIC0xMTMwLDYgKzExMzMsOSBAQCBURVNUKFNlcnZpY2VXb3Jr
ZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgLy8gVGhlcmUgc2hv
dWxkIGJlIG5vIHBheW1lbnQgcHJvY2VzcyBjcmVhdGVkLgorICAgIEVYUEVDVF9FUSgwLCB3ZWJW
aWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wuX3BheW1lbnRQcm9jZXNzSWRlbnRp
Zmllcik7CisKICAgICAvLyBMZXQncyB1c2UgdGhlIHdlYiBzaXRlIGRhdGEgc3RvcmUgdGhhdCBo
YXMgc2VydmljZSB3b3JrZXIgYW5kIGxvYWQgYSBwYWdlLgogICAgIG5ld0NvbmZpZ3VyYXRpb24u
Z2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>