<?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>145960</bug_id>
          
          <creation_ts>2015-06-13 21:30:51 -0700</creation_ts>
          <short_desc>Format string misuse in DatabaseProcessIDBConnection.cpp and UniqueIDBDatabaseBackingStoreSQLite.cpp</short_desc>
          <delta_ts>2015-06-14 14:10:55 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>beidson</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1101841</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-13 21:30:51 -0700</bug_when>
    <thetext>Tons of format string warnings in DatabaseProcessIDBConnection.cpp and UniqueIDBDatabaseBackingStoreSQLite.cpp:

[2523/2953] Building CXX object Source...dDB/DatabaseProcessIDBConnection.cpp.o
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:82:99: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess getOrEstablishIDBDatabaseMetadata request ID %llu (connection %p)&quot;, requestID, this);
                                                                           ~~~~                   ^~~~~~~~~
                                                                           %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:94:80: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess deleteDatabase request ID %llu (connection %p)&quot;, requestID, this);
                                                        ~~~~                   ^~~~~~~~~
                                                        %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:128:87: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess openTransaction id %llu in mode &apos;%s&apos;, request ID %llu&quot;, transactionID, modeString, requestID);
                                                 ~~~~                                 ^~~~~~~~~~~~~
                                                 %ld
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:128:114: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess openTransaction id %llu in mode &apos;%s&apos;, request ID %llu&quot;, transactionID, modeString, requestID);
                                                                               ~~~~                              ^~~~~~~~~
                                                                               %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:147:66: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess beginTransaction request ID %llu&quot;, requestID);
                                                          ~~~~   ^~~~~~~~~
                                                          %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:159:67: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess commitTransaction request ID %llu&quot;, requestID);
                                                           ~~~~   ^~~~~~~~~
                                                           %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:171:66: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess resetTransaction request ID %llu&quot;, requestID);
                                                          ~~~~   ^~~~~~~~~
                                                          %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:183:69: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess rollbackTransaction request ID %llu&quot;, requestID);
                                                             ~~~~   ^~~~~~~~~
                                                             %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:213:89: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess changeDatabaseVersion request ID %llu, new version %llu&quot;, requestID, newVersion);
                                                               ~~~~                     ^~~~~~~~~
                                                               %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:213:100: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess changeDatabaseVersion request ID %llu, new version %llu&quot;, requestID, newVersion);
                                                                                 ~~~~              ^~~~~~~~~~
                                                                                 %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:225:91: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess createObjectStore request ID %llu, object store name &apos;%s&apos;&quot;, requestID, metadata.name.utf8().data());
                                                           ~~~~                           ^~~~~~~~~
                                                           %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:236:89: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess deleteObjectStore request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                           ~~~~                         ^~~~~~~~~
                                                           %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:236:100: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess deleteObjectStore request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                                 ~~~~              ^~~~~~~~~~~~~
                                                                                 %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:247:88: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess clearObjectStore request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                          ~~~~                         ^~~~~~~~~
                                                          %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:247:99: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess clearObjectStore request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                                ~~~~              ^~~~~~~~~~~~~
                                                                                %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:258:83: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess createIndex request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                     ~~~~                         ^~~~~~~~~
                                                     %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:258:94: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess createIndex request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                           ~~~~              ^~~~~~~~~~~~~
                                                                           %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:269:83: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess deleteIndex request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                     ~~~~                         ^~~~~~~~~
                                                     %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:269:94: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess deleteIndex request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                           ~~~~              ^~~~~~~~~~~~~
                                                                           %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:280:81: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess putRecord request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                   ~~~~                         ^~~~~~~~~
                                                   %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:280:92: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess putRecord request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                         ~~~~              ^~~~~~~~~~~~~
                                                                         %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:291:81: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess getRecord request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                   ~~~~                         ^~~~~~~~~
                                                   %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:291:92: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess getRecord request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                         ~~~~              ^~~~~~~~~~~~~
                                                                         %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:302:77: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess count request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                               ~~~~                         ^~~~~~~~~
                                               %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:302:88: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess count request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                     ~~~~              ^~~~~~~~~~~~~
                                                                     %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:314:83: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess deleteRange request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                     ~~~~                         ^~~~~~~~~
                                                     %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:314:94: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess deleteRange request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                           ~~~~              ^~~~~~~~~~~~~
                                                                           %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:326:82: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess openCursor request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                    ~~~~                         ^~~~~~~~~
                                                    %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:326:93: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess openCursor request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
                                                                          ~~~~              ^~~~~~~~~~~~~
                                                                          %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:338:79: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess cursorAdvance request ID %llu, cursor id %lli&quot;, requestID, cursorID);
                                                       ~~~~                   ^~~~~~~~~
                                                       %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:338:90: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess cursorAdvance request ID %llu, cursor id %lli&quot;, requestID, cursorID);
                                                                       ~~~~              ^~~~~~~~
                                                                       %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:350:79: warning: format specifies type &apos;unsigned long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess cursorIterate request ID %llu, cursor id %lli&quot;, requestID, cursorID);
                                                       ~~~~                   ^~~~~~~~~
                                                       %lu
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:350:90: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
    LOG(IDB, &quot;DatabaseProcess cursorIterate request ID %llu, cursor id %lli&quot;, requestID, cursorID);
                                                                       ~~~~              ^~~~~~~~
                                                                       %li
../../Source/WTF/wtf/Assertions.h:348:94: note: expanded from macro &apos;LOG&apos;
#define LOG(channel, ...) WTFLog(&amp;JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
                                                                                             ^
33 warnings generated.
[2526/2953] Building CXX object Source...queIDBDatabaseBackingStoreSQLite.cpp.o
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:617:101: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete object store id %lli from ObjectStoreInfo table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                        ~~~~                                        ^~~~~~~~~~~~~
                                                        %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:639:83: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete records for object store %lli (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                 ~~~~             ^~~~~~~~~~~~~
                                                                 %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:690:87: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete records from object store id %lli (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                     ~~~~             ^~~~~~~~~~~~~
                                                                     %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:700:93: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete records from index record store id %lli (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                           ~~~~             ^~~~~~~~~~~~~
                                                                           %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:812:88: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete index id %lli from IndexInfo table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                 ~~~~                                  ^~~~~~~~~~~~~
                                                 %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:823:109: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete index records for index id %lli from IndexRecords table (%i) - %s&quot;, indexID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                   ~~~~                                     ^~~~~~~
                                                                   %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:855:88: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete index id %lli from IndexInfo table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                 ~~~~                                  ^~~~~~~~~~~~~
                                                 %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:928:95: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
        LOG_ERROR(&quot;Could not get record from object store %lli from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                          ~~~~                                ^~~~~~~~~~~~~
                                                          %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:976:96: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not put record for object store %lli in Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                             ~~~~                              ^~~~~~~~~~~~~
                                                             %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1024:116: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not put index record for index %lli in object store %lli in Records table (%i) - %s&quot;, indexID, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                            ~~~~                                                   ^~~~~~~
                                                            %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1024:125: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not put index record for index %lli in object store %lli in Records table (%i) - %s&quot;, indexID, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                                 ~~~~                                       ^~~~~~~~~~~~~
                                                                                 %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1168:83: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete record from object store %lli (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                 ~~~~             ^~~~~~~~~~~~~
                                                                 %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1181:95: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not delete record from indexes for object store %lli (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                             ~~~~             ^~~~~~~~~~~~~
                                                                             %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1212:99: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not get record from object store %lli from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                              ~~~~                                ^~~~~~~~~~~~~
                                                              %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1223:99: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not get record from object store %lli from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                              ~~~~                                ^~~~~~~~~~~~~
                                                              %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1265:109: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not get key range record from object store %lli from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                                        ~~~~                                ^~~~~~~~~~~~~
                                                                        %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1277:99: warning: format specifies type &apos;long long&apos; but the argument has type &apos;int64_t&apos; (aka &apos;long&apos;) [-Wformat]
            LOG_ERROR(&quot;Could not get record from object store %lli from Records table (%i) - %s&quot;, objectStoreID, m_sqliteDB-&gt;lastError(), m_sqliteDB-&gt;lastErrorMsg());
                                                              ~~~~                                ^~~~~~~~~~~~~
                                                              %li
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:1361:66: warning: format specifies type &apos;long long&apos; but the argument has type &apos;uint64_t&apos; (aka &apos;unsigned long&apos;) [-Wformat]
        LOG_ERROR(&quot;Attempt to advance cursor %lli steps failed&quot;, count);
                                             ~~~~                ^~~~~
                                             %lu
../../Source/WTF/wtf/Assertions.h:340:80: note: expanded from macro &apos;LOG_ERROR&apos;
#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                               ^
18 warnings generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101842</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-13 21:45:41 -0700</bug_when>
    <thetext>I guess these are just now showing up because we only recently enabled DatabaseProcess for GTK. Anyway, the three options are (a) use the proper PRIu64 and PRIi64 macros to print uint64_t and int64_t, (b) not use those types, or (c) not print things. (a) is best provided they exist on Mac; let&apos;s find out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101843</commentid>
    <comment_count>2</comment_count>
      <attachid>254859</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-13 21:53:43 -0700</bug_when>
    <thetext>Created attachment 254859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101865</commentid>
    <comment_count>3</comment_count>
      <attachid>254859</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-14 14:10:51 -0700</bug_when>
    <thetext>Comment on attachment 254859
Patch

Clearing flags on attachment: 254859

Committed r185546: &lt;http://trac.webkit.org/changeset/185546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101866</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-14 14:10:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254859</attachid>
            <date>2015-06-13 21:53:43 -0700</date>
            <delta_ts>2015-06-14 14:10:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145960-20150613235310.patch</filename>
            <type>text/plain</type>
            <size>27872</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTk5N2M2ZDc0MWJhM2M4
YjJlODhhYjIwOGIxMzUzZGRkNWE3M2JhMy4uMjlkYzlhNTVlMWY4YTJmM2U5Y2Q2MWY1YWUwODYy
NTRkMWU2MDg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE1LTA2LTEzICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBGb3JtYXQg
c3RyaW5nIG1pc3VzZSBpbiBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcCBhbmQgVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU5NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgUFJJdTY0IGFuZCBQUklpNjQgdG8gcHJp
bnQgdWludDY0X3QgYW5kIGludDY0X3QsIHJlc3BlY3RpdmVseS4gVGhlc2UgdGhpbmdzIGFyZQor
ICAgICAgICBkaWZmZXJlbnQgdHlwZXMgb24geDg2XzY0IExpbnV4ICh1bnNpZ25lZCBsb25nKSBh
bmQgb24gTWFjICh1bnNpZ25lZCBsb25nIGxvbmcpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Z2V0T3JFc3RhYmxpc2hJREJE
YXRhYmFzZU1ldGFkYXRhKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbjo6ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nl
c3NJREJDb25uZWN0aW9uOjpvcGVuVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEYXRh
YmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Y29tbWl0VHJhbnNhY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpyZXNldFRyYW5z
YWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6
cm9sbGJhY2tUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb246OmNoYW5nZURhdGFiYXNlVmVyc2lvbik6CisgICAgICAgIChXZWJLaXQ6OkRh
dGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAg
KFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6ZGVsZXRlT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjbGVhck9i
amVjdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlv
bjo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NJREJDb25u
ZWN0aW9uOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb246OnB1dFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vz
c0lEQkNvbm5lY3Rpb246OmdldFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb246OmNvdW50KToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbjo6ZGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6RGF0
YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Y3Vyc29yQWR2YW5jZSk6CisgICAgICAgIChXZWJL
aXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmN1cnNvckl0ZXJhdGUpOgorICAgICAg
ICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmNsZWFyT2JqZWN0U3RvcmUpOgor
ICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVs
ZXRlSW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9y
ZVNRTGl0ZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZSk6CisgICAg
ICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpwdXRSZWNv
cmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0
ZTo6dW5jaGVja2VkUHV0SW5kZXhSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYktp
dDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmdldEtleVJlY29yZEZyb21P
YmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0
b3JlU1FMaXRlOjpnZXRLZXlSYW5nZVJlY29yZEZyb21PYmplY3RTdG9yZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjphZHZhbmNlQ3Vyc29y
KToKKwogMjAxNS0wNi0xMiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHByaXZhdGUgQVBJIHRvIGZvcmNlIHBhZ2UgdG8gYWx3YXlzIHJ1
biBhdCBmb3JlZ3JvdW5kIHByaW9yaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJ
REJDb25uZWN0aW9uLmNwcAppbmRleCA2MDM1ODgwNjc2OTc5ZWZkODIxZmU5MWFmODgxYjg1NmRj
MmY0OTg2Li41NTMyYzNlNWE3YzUxNDliNjY0MjQyNjU1YjczMTYwYTUzYTlmNWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHAKQEAgLTc5LDcgKzc5
LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpnZXRPckVzdGFibGlzaElE
QkRhdGFiYXNlTWV0YWRhdGEodWludDY0X3QgcmUKIHsKICAgICBBU1NFUlQobV91bmlxdWVJREJE
YXRhYmFzZSk7CiAKLSAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGdldE9yRXN0YWJsaXNo
SURCRGF0YWJhc2VNZXRhZGF0YSByZXF1ZXN0IElEICVsbHUgKGNvbm5lY3Rpb24gJXApIiwgcmVx
dWVzdElELCB0aGlzKTsKKyAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGdldE9yRXN0YWJs
aXNoSURCRGF0YWJhc2VNZXRhZGF0YSByZXF1ZXN0IElEICUiIFBSSXU2NCAiIChjb25uZWN0aW9u
ICVwKSIsIHJlcXVlc3RJRCwgdGhpcyk7CiAKICAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbj4gY29ubmVjdGlvbih0aGlzKTsKICAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5n
ZXRPckVzdGFibGlzaElEQkRhdGFiYXNlTWV0YWRhdGEoW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0o
Ym9vbCBzdWNjZXNzLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkgewpAQCAt
OTEsNyArOTEsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmRlbGV0ZURh
dGFiYXNlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaQogewogICAgIEFTU0VSVChtX3Vu
aXF1ZUlEQkRhdGFiYXNlKTsKIAotICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgZGVsZXRl
RGF0YWJhc2UgcmVxdWVzdCBJRCAlbGx1IChjb25uZWN0aW9uICVwKSIsIHJlcXVlc3RJRCwgdGhp
cyk7CisgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBkZWxldGVEYXRhYmFzZSByZXF1ZXN0
IElEICUiIFBSSXU2NCAiIChjb25uZWN0aW9uICVwKSIsIHJlcXVlc3RJRCwgdGhpcyk7CiAKICAg
ICBpZiAoZGF0YWJhc2VOYW1lICE9IG1fdW5pcXVlSURCRGF0YWJhc2UtPmlkZW50aWZpZXIoKS5k
YXRhYmFzZU5hbWUoKSkgewogICAgICAgICBMT0dfRVJST1IoIlJlcXVlc3QgdG8gZGVsZXRlIGRh
dGFiYXNlIG5hbWUgdGhhdCBkb2Vzbid0IG1hdGNoIHdpdGggdGhpcyBkYXRhYmFzZSBjb25uZWN0
aW9uJ3MgZGF0YWJhc2UgbmFtZSIpOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgRGF0YWJhc2VQ
cm9jZXNzSURCQ29ubmVjdGlvbjo6b3BlblRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwg
aW50NjRfdCB0CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIExPRyhJREIsICJEYXRhYmFz
ZVByb2Nlc3Mgb3BlblRyYW5zYWN0aW9uIGlkICVsbHUgaW4gbW9kZSAnJXMnLCByZXF1ZXN0IElE
ICVsbHUiLCB0cmFuc2FjdGlvbklELCBtb2RlU3RyaW5nLCByZXF1ZXN0SUQpOworICAgIExPRyhJ
REIsICJEYXRhYmFzZVByb2Nlc3Mgb3BlblRyYW5zYWN0aW9uIGlkICUiIFBSSXU2NCAiIGluIG1v
ZGUgJyVzJywgcmVxdWVzdCBJRCAlIiBQUkl1NjQsIHRyYW5zYWN0aW9uSUQsIG1vZGVTdHJpbmcs
IHJlcXVlc3RJRCk7CiAjZW5kaWYKIAogICAgIGlmIChpbnRNb2RlID4gSW5kZXhlZERCOjpUcmFu
c2FjdGlvbk1vZGVNYXhpbXVtKSB7CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBEYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uOjpiZWdpblRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwg
aW50NjRfdAogewogICAgIEFTU0VSVChtX3VuaXF1ZUlEQkRhdGFiYXNlKTsKIAotICAgIExPRyhJ
REIsICJEYXRhYmFzZVByb2Nlc3MgYmVnaW5UcmFuc2FjdGlvbiByZXF1ZXN0IElEICVsbHUiLCBy
ZXF1ZXN0SUQpOworICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgYmVnaW5UcmFuc2FjdGlv
biByZXF1ZXN0IElEICUiIFBSSXU2NCwgcmVxdWVzdElEKTsKIAogICAgIFJlZlB0cjxEYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMpOwogICAgIG1fdW5pcXVlSURC
RGF0YWJhc2UtPmJlZ2luVHJhbnNhY3Rpb24oSURCSWRlbnRpZmllcigqdGhpcywgdHJhbnNhY3Rp
b25JRCksIFtjb25uZWN0aW9uLCByZXF1ZXN0SURdKGJvb2wgc3VjY2VzcykgewpAQCAtMTU2LDcg
KzE1Niw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Y29tbWl0VHJhbnNh
Y3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90CiB7CiAgICAgQVNTRVJUKG1fdW5pcXVl
SURCRGF0YWJhc2UpOwogCi0gICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBjb21taXRUcmFu
c2FjdGlvbiByZXF1ZXN0IElEICVsbHUiLCByZXF1ZXN0SUQpOworICAgIExPRyhJREIsICJEYXRh
YmFzZVByb2Nlc3MgY29tbWl0VHJhbnNhY3Rpb24gcmVxdWVzdCBJRCAlIiBQUkl1NjQsIHJlcXVl
c3RJRCk7CiAKICAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4gY29ubmVj
dGlvbih0aGlzKTsKICAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5jb21taXRUcmFuc2FjdGlvbihJ
REJJZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJ
RF0oYm9vbCBzdWNjZXNzKSB7CkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nl
c3NJREJDb25uZWN0aW9uOjpyZXNldFRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50
NjRfdAogewogICAgIEFTU0VSVChtX3VuaXF1ZUlEQkRhdGFiYXNlKTsKIAotICAgIExPRyhJREIs
ICJEYXRhYmFzZVByb2Nlc3MgcmVzZXRUcmFuc2FjdGlvbiByZXF1ZXN0IElEICVsbHUiLCByZXF1
ZXN0SUQpOworICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgcmVzZXRUcmFuc2FjdGlvbiBy
ZXF1ZXN0IElEICUiIFBSSXU2NCwgcmVxdWVzdElEKTsKIAogICAgIFJlZlB0cjxEYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMpOwogICAgIG1fdW5pcXVlSURCRGF0
YWJhc2UtPnJlc2V0VHJhbnNhY3Rpb24oSURCSWRlbnRpZmllcigqdGhpcywgdHJhbnNhY3Rpb25J
RCksIFtjb25uZWN0aW9uLCByZXF1ZXN0SURdKGJvb2wgc3VjY2VzcykgewpAQCAtMTgwLDcgKzE4
MCw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6cm9sbGJhY2tUcmFuc2Fj
dGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0CiB7CiAgICAgQVNTRVJUKG1fdW5pcXVlSURC
RGF0YWJhc2UpOwogCi0gICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyByb2xsYmFja1RyYW5z
YWN0aW9uIHJlcXVlc3QgSUQgJWxsdSIsIHJlcXVlc3RJRCk7CisgICAgTE9HKElEQiwgIkRhdGFi
YXNlUHJvY2VzcyByb2xsYmFja1RyYW5zYWN0aW9uIHJlcXVlc3QgSUQgJSIgUFJJdTY0LCByZXF1
ZXN0SUQpOwogCiAgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5l
Y3Rpb24odGhpcyk7CiAgICAgbV91bmlxdWVJREJEYXRhYmFzZS0+cm9sbGJhY2tUcmFuc2FjdGlv
bihJREJJZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgW2Nvbm5lY3Rpb24sIHJlcXVl
c3RJRF0oYm9vbCBzdWNjZXNzKSB7CkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBEYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uOjpjaGFuZ2VEYXRhYmFzZVZlcnNpb24odWludDY0X3QgcmVxdWVz
dElELCBpbnQKIHsKICAgICBBU1NFUlQobV91bmlxdWVJREJEYXRhYmFzZSk7CiAKLSAgICBMT0co
SURCLCAiRGF0YWJhc2VQcm9jZXNzIGNoYW5nZURhdGFiYXNlVmVyc2lvbiByZXF1ZXN0IElEICVs
bHUsIG5ldyB2ZXJzaW9uICVsbHUiLCByZXF1ZXN0SUQsIG5ld1ZlcnNpb24pOworICAgIExPRyhJ
REIsICJEYXRhYmFzZVByb2Nlc3MgY2hhbmdlRGF0YWJhc2VWZXJzaW9uIHJlcXVlc3QgSUQgJSIg
UFJJdTY0ICIsIG5ldyB2ZXJzaW9uICUiIFBSSXU2NCwgcmVxdWVzdElELCBuZXdWZXJzaW9uKTsK
IAogICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRo
aXMpOwogICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPmNoYW5nZURhdGFiYXNlVmVyc2lvbihJREJJ
ZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgbmV3VmVyc2lvbiwgW2Nvbm5lY3Rpb24s
IHJlcXVlc3RJRF0oYm9vbCBzdWNjZXNzKSB7CkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBEYXRh
YmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjcmVhdGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1
ZXN0SUQsIGludDY0X3QKIHsKICAgICBBU1NFUlQobV91bmlxdWVJREJEYXRhYmFzZSk7CiAKLSAg
ICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGNyZWF0ZU9iamVjdFN0b3JlIHJlcXVlc3QgSUQg
JWxsdSwgb2JqZWN0IHN0b3JlIG5hbWUgJyVzJyIsIHJlcXVlc3RJRCwgbWV0YWRhdGEubmFtZS51
dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGNyZWF0ZU9iamVj
dFN0b3JlIHJlcXVlc3QgSUQgJSIgUFJJdTY0ICIsIG9iamVjdCBzdG9yZSBuYW1lICclcyciLCBy
ZXF1ZXN0SUQsIG1ldGFkYXRhLm5hbWUudXRmOCgpLmRhdGEoKSk7CiAgICAgUmVmUHRyPERhdGFi
YXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24odGhpcyk7CiAgICAgbV91bmlxdWVJ
REJEYXRhYmFzZS0+Y3JlYXRlT2JqZWN0U3RvcmUoSURCSWRlbnRpZmllcigqdGhpcywgdHJhbnNh
Y3Rpb25JRCksIG1ldGFkYXRhLCBbY29ubmVjdGlvbiwgcmVxdWVzdElEXShib29sIHN1Y2Nlc3Mp
IHsKICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyQ29ubmVj
dGlvbjo6RGlkQ3JlYXRlT2JqZWN0U3RvcmUocmVxdWVzdElELCBzdWNjZXNzKSk7CkBAIC0yMzMs
NyArMjMzLDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpkZWxldGVPYmpl
Y3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QKIHsKICAgICBBU1NFUlQobV91bmlx
dWVJREJEYXRhYmFzZSk7CiAKLSAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGRlbGV0ZU9i
amVjdFN0b3JlIHJlcXVlc3QgSUQgJWxsdSwgb2JqZWN0IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0
SUQsIG9iamVjdFN0b3JlSUQpOworICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgZGVsZXRl
T2JqZWN0U3RvcmUgcmVxdWVzdCBJRCAlIiBQUkl1NjQgIiwgb2JqZWN0IHN0b3JlIGlkICUiIFBS
SWk2NCwgcmVxdWVzdElELCBvYmplY3RTdG9yZUlEKTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbj4gY29ubmVjdGlvbih0aGlzKTsKICAgICBtX3VuaXF1ZUlEQkRhdGFi
YXNlLT5kZWxldGVPYmplY3RTdG9yZShJREJJZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklE
KSwgb2JqZWN0U3RvcmVJRCwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oYm9vbCBzdWNjZXNzKSB7
CiAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rp
b246OkRpZERlbGV0ZU9iamVjdFN0b3JlKHJlcXVlc3RJRCwgc3VjY2VzcykpOwpAQCAtMjQ0LDcg
KzI0NCw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Y2xlYXJPYmplY3RT
dG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QKIHsKICAgICBBU1NFUlQobV91bmlxdWVJ
REJEYXRhYmFzZSk7CiAKLSAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGNsZWFyT2JqZWN0
U3RvcmUgcmVxdWVzdCBJRCAlbGx1LCBvYmplY3Qgc3RvcmUgaWQgJWxsaSIsIHJlcXVlc3RJRCwg
b2JqZWN0U3RvcmVJRCk7CisgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBjbGVhck9iamVj
dFN0b3JlIHJlcXVlc3QgSUQgJSIgUFJJdTY0ICIsIG9iamVjdCBzdG9yZSBpZCAlIiBQUklpNjQs
IHJlcXVlc3RJRCwgb2JqZWN0U3RvcmVJRCk7CiAgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24odGhpcyk7CiAgICAgbV91bmlxdWVJREJEYXRhYmFzZS0+
Y2xlYXJPYmplY3RTdG9yZShJREJJZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgb2Jq
ZWN0U3RvcmVJRCwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oYm9vbCBzdWNjZXNzKSB7CiAgICAg
ICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OkRp
ZENsZWFyT2JqZWN0U3RvcmUocmVxdWVzdElELCBzdWNjZXNzKSk7CkBAIC0yNTUsNyArMjU1LDcg
QEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjcmVhdGVJbmRleCh1aW50NjRf
dCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnMKIHsKICAgICBBU1NFUlQobV91bmlxdWVJREJEYXRh
YmFzZSk7CiAKLSAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGNyZWF0ZUluZGV4IHJlcXVl
c3QgSUQgJWxsdSwgb2JqZWN0IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0SUQsIG9iamVjdFN0b3Jl
SUQpOworICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY3JlYXRlSW5kZXggcmVxdWVzdCBJ
RCAlIiBQUkl1NjQgIiwgb2JqZWN0IHN0b3JlIGlkICUiIFBSSWk2NCwgcmVxdWVzdElELCBvYmpl
Y3RTdG9yZUlEKTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4gY29u
bmVjdGlvbih0aGlzKTsKICAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5jcmVhdGVJbmRleChJREJJ
ZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgb2JqZWN0U3RvcmVJRCwgbWV0YWRhdGEs
IFtjb25uZWN0aW9uLCByZXF1ZXN0SURdKGJvb2wgc3VjY2VzcykgewogICAgICAgICBjb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRDcmVhdGVJbmRl
eChyZXF1ZXN0SUQsIHN1Y2Nlc3MpKTsKQEAgLTI2Niw3ICsyNjYsNyBAQCB2b2lkIERhdGFiYXNl
UHJvY2Vzc0lEQkNvbm5lY3Rpb246OmRlbGV0ZUluZGV4KHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50
NjRfdCB0cmFucwogewogICAgIEFTU0VSVChtX3VuaXF1ZUlEQkRhdGFiYXNlKTsKIAotICAgIExP
RyhJREIsICJEYXRhYmFzZVByb2Nlc3MgZGVsZXRlSW5kZXggcmVxdWVzdCBJRCAlbGx1LCBvYmpl
Y3Qgc3RvcmUgaWQgJWxsaSIsIHJlcXVlc3RJRCwgb2JqZWN0U3RvcmVJRCk7CisgICAgTE9HKElE
QiwgIkRhdGFiYXNlUHJvY2VzcyBkZWxldGVJbmRleCByZXF1ZXN0IElEICUiIFBSSXU2NCAiLCBv
YmplY3Qgc3RvcmUgaWQgJSIgUFJJaTY0LCByZXF1ZXN0SUQsIG9iamVjdFN0b3JlSUQpOwogICAg
IFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMpOwog
ICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPmRlbGV0ZUluZGV4KElEQklkZW50aWZpZXIoKnRoaXMs
IHRyYW5zYWN0aW9uSUQpLCBvYmplY3RTdG9yZUlELCBpbmRleElELCBbY29ubmVjdGlvbiwgcmVx
dWVzdElEXShib29sIHN1Y2Nlc3MpIHsKICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6RGlkRGVsZXRlSW5kZXgocmVxdWVzdElELCBzdWNj
ZXNzKSk7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0
aW9uOjpwdXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWMKIHsKICAg
ICBBU1NFUlQobV91bmlxdWVJREJEYXRhYmFzZSk7CiAKLSAgICBMT0coSURCLCAiRGF0YWJhc2VQ
cm9jZXNzIHB1dFJlY29yZCByZXF1ZXN0IElEICVsbHUsIG9iamVjdCBzdG9yZSBpZCAlbGxpIiwg
cmVxdWVzdElELCBvYmplY3RTdG9yZUlEKTsKKyAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNz
IHB1dFJlY29yZCByZXF1ZXN0IElEICUiIFBSSXU2NCAiLCBvYmplY3Qgc3RvcmUgaWQgJSIgUFJJ
aTY0LCByZXF1ZXN0SUQsIG9iamVjdFN0b3JlSUQpOwogICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nl
c3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMpOwogICAgIG1fdW5pcXVlSURCRGF0YWJh
c2UtPnB1dFJlY29yZChJREJJZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwgb2JqZWN0
U3RvcmVJRCwga2V5LCB2YWx1ZSwgcHV0TW9kZSwgaW5kZXhJRHMsIGluZGV4S2V5cywgW2Nvbm5l
Y3Rpb24sIHJlcXVlc3RJRF0oY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgdWludDMyX3QgZXJy
b3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgewogICAgICAgICBjb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRQdXRSZWNvcmQocmVx
dWVzdElELCBrZXlEYXRhLCBlcnJvckNvZGUsIGVycm9yTWVzc2FnZSkpOwpAQCAtMjg4LDcgKzI4
OCw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6Z2V0UmVjb3JkKHVpbnQ2
NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjCiB7CiAgICAgQVNTRVJUKG1fdW5pcXVlSURC
RGF0YWJhc2UpOwogCi0gICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBnZXRSZWNvcmQgcmVx
dWVzdCBJRCAlbGx1LCBvYmplY3Qgc3RvcmUgaWQgJWxsaSIsIHJlcXVlc3RJRCwgb2JqZWN0U3Rv
cmVJRCk7CisgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBnZXRSZWNvcmQgcmVxdWVzdCBJ
RCAlIiBQUkl1NjQgIiwgb2JqZWN0IHN0b3JlIGlkICUiIFBSSWk2NCwgcmVxdWVzdElELCBvYmpl
Y3RTdG9yZUlEKTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4gY29u
bmVjdGlvbih0aGlzKTsKICAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5nZXRSZWNvcmQoSURCSWRl
bnRpZmllcigqdGhpcywgdHJhbnNhY3Rpb25JRCksIG9iamVjdFN0b3JlSUQsIGluZGV4SUQsIGtl
eVJhbmdlLCBzdGF0aWNfY2FzdDxJbmRleGVkREI6OkN1cnNvclR5cGU+KGN1cnNvclR5cGUpLCBb
Y29ubmVjdGlvbiwgcmVxdWVzdElEXShjb25zdCBJREJHZXRSZXN1bHQmIGdldFJlc3VsdCwgdWlu
dDMyX3QgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgewogICAgICAgICBj
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRHZXRS
ZWNvcmQocmVxdWVzdElELCBnZXRSZXN1bHQsIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKSk7CkBA
IC0yOTksNyArMjk5LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjb3Vu
dCh1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb24KIHsKICAgICBBU1NFUlQo
bV91bmlxdWVJREJEYXRhYmFzZSk7CiAKLSAgICBMT0coSURCLCAiRGF0YWJhc2VQcm9jZXNzIGNv
dW50IHJlcXVlc3QgSUQgJWxsdSwgb2JqZWN0IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0SUQsIG9i
amVjdFN0b3JlSUQpOworICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY291bnQgcmVxdWVz
dCBJRCAlIiBQUkl1NjQgIiwgb2JqZWN0IHN0b3JlIGlkICUiIFBSSWk2NCwgcmVxdWVzdElELCBv
YmplY3RTdG9yZUlEKTsKIAogICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9u
PiBjb25uZWN0aW9uKHRoaXMpOwogICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPmNvdW50KElEQklk
ZW50aWZpZXIoKnRoaXMsIHRyYW5zYWN0aW9uSUQpLCBvYmplY3RTdG9yZUlELCBpbmRleElELCBr
ZXlSYW5nZURhdGEsIFtjb25uZWN0aW9uLCByZXF1ZXN0SURdKGludDY0X3QgY291bnQsIHVpbnQz
Ml90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsKQEAgLTMxMSw3ICsz
MTEsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmRlbGV0ZVJhbmdlKHVp
bnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFucwogewogICAgIEFTU0VSVChtX3VuaXF1ZUlE
QkRhdGFiYXNlKTsKIAotICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgZGVsZXRlUmFuZ2Ug
cmVxdWVzdCBJRCAlbGx1LCBvYmplY3Qgc3RvcmUgaWQgJWxsaSIsIHJlcXVlc3RJRCwgb2JqZWN0
U3RvcmVJRCk7CisgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBkZWxldGVSYW5nZSByZXF1
ZXN0IElEICUiIFBSSXU2NCAiLCBvYmplY3Qgc3RvcmUgaWQgJSIgUFJJaTY0LCByZXF1ZXN0SUQs
IG9iamVjdFN0b3JlSUQpOwogCiAgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rp
b24+IGNvbm5lY3Rpb24odGhpcyk7CiAgICAgbV91bmlxdWVJREJEYXRhYmFzZS0+ZGVsZXRlUmFu
Z2UoSURCSWRlbnRpZmllcigqdGhpcywgdHJhbnNhY3Rpb25JRCksIG9iamVjdFN0b3JlSUQsIGtl
eVJhbmdlRGF0YSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0odWludDMyX3QgZXJyb3JDb2RlLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgewpAQCAtMzIzLDcgKzMyMyw3IEBAIHZvaWQgRGF0
YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6b3BlbkN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQs
IGludDY0X3QgdHJhbnNhCiB7CiAgICAgQVNTRVJUKG1fdW5pcXVlSURCRGF0YWJhc2UpOwogCi0g
ICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBvcGVuQ3Vyc29yIHJlcXVlc3QgSUQgJWxsdSwg
b2JqZWN0IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0SUQsIG9iamVjdFN0b3JlSUQpOworICAgIExP
RyhJREIsICJEYXRhYmFzZVByb2Nlc3Mgb3BlbkN1cnNvciByZXF1ZXN0IElEICUiIFBSSXU2NCAi
LCBvYmplY3Qgc3RvcmUgaWQgJSIgUFJJaTY0LCByZXF1ZXN0SUQsIG9iamVjdFN0b3JlSUQpOwog
ICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMp
OwogICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPm9wZW5DdXJzb3IoSURCSWRlbnRpZmllcigqdGhp
cywgdHJhbnNhY3Rpb25JRCksIG9iamVjdFN0b3JlSUQsIGluZGV4SUQsIHN0YXRpY19jYXN0PElu
ZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uPihjdXJzb3JEaXJlY3Rpb24pLCBzdGF0aWNfY2FzdDxJ
bmRleGVkREI6OkN1cnNvclR5cGU+KGN1cnNvclR5cGUpLCBzdGF0aWNfY2FzdDxJREJEYXRhYmFz
ZUJhY2tlbmQ6OlRhc2tUeXBlPih0YXNrVHlwZSksIGtleVJhbmdlRGF0YSwgW2Nvbm5lY3Rpb24s
IHJlcXVlc3RJRF0oaW50NjRfdCBjdXJzb3JJRCwgY29uc3QgSURCS2V5RGF0YSYgcmVzdWx0S2V5
LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
dmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsK
ICAgICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEgPSB2YWx1ZSA/IElQQzo6RGF0YVJlZmVy
ZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZS0+ZGF0YSgpKSwgdmFs
dWUtPnNpemUoKSkgOiBJUEM6OkRhdGFSZWZlcmVuY2UoKTsKQEAgLTMzNSw3ICszMzUsNyBAQCB2
b2lkIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmN1cnNvckFkdmFuY2UodWludDY0X3Qg
cmVxdWVzdElELCBpbnQ2NF90IGN1cgogewogICAgIEFTU0VSVChtX3VuaXF1ZUlEQkRhdGFiYXNl
KTsKIAotICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY3Vyc29yQWR2YW5jZSByZXF1ZXN0
IElEICVsbHUsIGN1cnNvciBpZCAlbGxpIiwgcmVxdWVzdElELCBjdXJzb3JJRCk7CisgICAgTE9H
KElEQiwgIkRhdGFiYXNlUHJvY2VzcyBjdXJzb3JBZHZhbmNlIHJlcXVlc3QgSUQgJSIgUFJJdTY0
ICIsIGN1cnNvciBpZCAlIiBQUklpNjQsIHJlcXVlc3RJRCwgY3Vyc29ySUQpOwogICAgIFJlZlB0
cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMpOwogICAgIG1f
dW5pcXVlSURCRGF0YWJhc2UtPmN1cnNvckFkdmFuY2UoSURCSWRlbnRpZmllcigqdGhpcywgY3Vy
c29ySUQpLCBjb3VudCwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oY29uc3QgSURCS2V5RGF0YSYg
cmVzdWx0S2V5LCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpIHsKICAgICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEgPSB2YWx1ZSA/IElQQzo6
RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih2YWx1ZS0+ZGF0
YSgpKSwgdmFsdWUtPnNpemUoKSkgOiBJUEM6OkRhdGFSZWZlcmVuY2UoKTsKQEAgLTM0Nyw3ICsz
NDcsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmN1cnNvckl0ZXJhdGUo
dWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cgogewogICAgIEFTU0VSVChtX3VuaXF1ZUlE
QkRhdGFiYXNlKTsKIAotICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgY3Vyc29ySXRlcmF0
ZSByZXF1ZXN0IElEICVsbHUsIGN1cnNvciBpZCAlbGxpIiwgcmVxdWVzdElELCBjdXJzb3JJRCk7
CisgICAgTE9HKElEQiwgIkRhdGFiYXNlUHJvY2VzcyBjdXJzb3JJdGVyYXRlIHJlcXVlc3QgSUQg
JSIgUFJJdTY0ICIsIGN1cnNvciBpZCAlIiBQUklpNjQsIHJlcXVlc3RJRCwgY3Vyc29ySUQpOwog
ICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0aW9uKHRoaXMp
OwogICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPmN1cnNvckl0ZXJhdGUoSURCSWRlbnRpZmllcigq
dGhpcywgY3Vyc29ySUQpLCBrZXksIFtjb25uZWN0aW9uLCByZXF1ZXN0SURdKGNvbnN0IElEQktl
eURhdGEmIHJlc3VsdEtleSwgY29uc3QgSURCS2V5RGF0YSYgcHJpbWFyeUtleSwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKSB7CiAgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhID0gdmFsdWUg
PyBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmFs
dWUtPmRhdGEoKSksIHZhbHVlLT5zaXplKCkpIDogSVBDOjpEYXRhUmVmZXJlbmNlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9V
bmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZS5jcHAKaW5kZXggYWI5ODVjYTVjYjNiNTRhZTlkZWYwZDVhZjg3ZjBiM2Y1NGVl
N2MxYi4uZjQ1Y2MzNzQ2ZTkxY2MyZjA5ODAwZTNiZDJlMmY4NjRjMzVhODRjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0
b3JlU1FMaXRlLmNwcApAQCAtNjE0LDcgKzYxNCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXIm
CiAgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwg
c3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAg
IHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigi
Q291bGQgbm90IGRlbGV0ZSBvYmplY3Qgc3RvcmUgaWQgJWxsaSBmcm9tIE9iamVjdFN0b3JlSW5m
byB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3Io
KSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgTE9HX0VSUk9SKCJD
b3VsZCBub3QgZGVsZXRlIG9iamVjdCBzdG9yZSBpZCAlIiBQUklpNjQgIiBmcm9tIE9iamVjdFN0
b3JlSW5mbyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0
RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtNjM2LDcgKzYzNiw3IEBAIGJvb2wgVW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QklkZW50aWZpZXImCiAgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAg
ICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAg
IExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSByZWNvcmRzIGZvciBvYmplY3Qgc3RvcmUgJWxs
aSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9z
cWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBu
b3QgZGVsZXRlIHJlY29yZHMgZm9yIG9iamVjdCBzdG9yZSAlIiBQUklpNjQgIiAoJWkpIC0gJXMi
LCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFz
dEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAg
fQpAQCAtNjg3LDcgKzY4Nyw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGU6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCSWRlbnRpZmllciYKICAgICAgICAgaWYg
KHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0
KDEsIG9iamVjdFN0b3JlSUQpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVs
ZXRlIHJlY29yZHMgZnJvbSBvYmplY3Qgc3RvcmUgaWQgJWxsaSAoJWkpIC0gJXMiLCBvYmplY3RT
dG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNn
KCkpOworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIHJlY29yZHMgZnJv
bSBvYmplY3Qgc3RvcmUgaWQgJSIgUFJJaTY0ICIgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KQEAgLTY5Nyw3ICs2OTcs
NyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjbGVhck9iamVj
dFN0b3JlKGNvbnN0IElEQklkZW50aWZpZXImCiAgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9
IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlE
KSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUp
IHsKLSAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSByZWNvcmRzIGZyb20g
aW5kZXggcmVjb3JkIHN0b3JlIGlkICVsbGkgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwgbV9z
cWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSByZWNvcmRzIGZyb20gaW5kZXggcmVj
b3JkIHN0b3JlIGlkICUiIFBSSWk2NCAiICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3Fs
aXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC04MDksNyArODA5LDcgQEAg
Ym9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZGVsZXRlSW5kZXgoY29u
c3QgSURCSWRlbnRpZmllciYgdHJhbnMKICAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwg
aW5kZXhJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDIsIG9i
amVjdFN0b3JlSUQpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBT
UUxJVEVfRE9ORSkgewotICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIGlu
ZGV4IGlkICVsbGkgZnJvbSBJbmRleEluZm8gdGFibGUgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJ
RCwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsK
KyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSBpbmRleCBpZCAlIiBQUklp
NjQgIiBmcm9tIEluZGV4SW5mbyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3Nx
bGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtODIwLDcgKzgyMCw3IEBA
IGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmRlbGV0ZUluZGV4KGNv
bnN0IElEQklkZW50aWZpZXImIHRyYW5zCiAgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDEs
IGluZGV4SUQpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgyLCBv
YmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0g
U1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSBp
bmRleCByZWNvcmRzIGZvciBpbmRleCBpZCAlbGxpIGZyb20gSW5kZXhSZWNvcmRzIHRhYmxlICgl
aSkgLSAlcyIsIGluZGV4SUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBkZWxldGUg
aW5kZXggcmVjb3JkcyBmb3IgaW5kZXggaWQgJSIgUFJJaTY0ICIgZnJvbSBJbmRleFJlY29yZHMg
dGFibGUgKCVpKSAtICVzIiwgaW5kZXhJRCwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3Fs
aXRlREItPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTg1Miw3ICs4NTIsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFj
a2luZ1N0b3JlU1FMaXRlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJJZGVudGlmaWVyJgog
ICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3FsKCptX3NxbGl0ZURCLCBBU0NJSUxpdGVyYWwoIlNF
TEVDVCBjdXJyZW50S2V5IEZST00gS2V5R2VuZXJhdG9ycyBXSEVSRSBvYmplY3RTdG9yZUlEID0g
PzsiKSk7CiAgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICAg
ICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0spIHsKLSAg
ICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSBpbmRleCBpZCAlbGxpIGZyb20g
SW5kZXhJbmZvIHRhYmxlICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxh
c3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBkZWxldGUgaW5kZXggaWQgJSIgUFJJaTY0ICIgZnJvbSBJbmRleElu
Zm8gdGFibGUgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwgbV9zcWxpdGVEQi0+bGFzdEVycm9y
KCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgICAgICBpbnQgcmVzdWx0ID0gc3FsLnN0ZXAoKTsKQEAgLTkyNSw3
ICs5MjUsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjprZXlF
eGlzdHNJbk9iamVjdFN0b3JlKGNvbnN0IElEQklkZW50aQogICAgIGlmIChzcWwucHJlcGFyZSgp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBzcWwuYmluZEludDY0KDEsIG9iamVjdFN0b3JlSUQp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBzcWwuYmluZEJsb2IoMiwga2V5QnVmZmVyLT5kYXRh
KCksIGtleUJ1ZmZlci0+c2l6ZSgpKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgTE9HX0VSUk9S
KCJDb3VsZCBub3QgZ2V0IHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSAlbGxpIGZyb20gUmVjb3Jk
cyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3Io
KSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICBMT0dfRVJST1IoIkNvdWxk
IG5vdCBnZXQgcmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlICUiIFBSSWk2NCAiIGZyb20gUmVjb3Jk
cyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3Io
KSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkBAIC05NzMsNyArOTczLDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZTo6cHV0UmVjb3JkKGNvbnN0IElEQklkZW50aWZpZXImIHRyYW5zYWMKICAgICAg
ICAgICAgIHx8IHNxbC5iaW5kQmxvYigyLCBrZXlCdWZmZXItPmRhdGEoKSwga2V5QnVmZmVyLT5z
aXplKCkpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLmJpbmRCbG9iKDMsIHZhbHVl
QnVmZmVyLCB2YWx1ZVNpemUpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgcHV0
IHJlY29yZCBmb3Igb2JqZWN0IHN0b3JlICVsbGkgaW4gUmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMi
LCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFz
dEVycm9yTXNnKCkpOworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgcHV0IHJlY29y
ZCBmb3Igb2JqZWN0IHN0b3JlICUiIFBSSWk2NCAiIGluIFJlY29yZHMgdGFibGUgKCVpKSAtICVz
Iiwgb2JqZWN0U3RvcmVJRCwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAg
IH0KQEAgLTEwMjEsNyArMTAyMSw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6OnVuY2hlY2tlZFB1dEluZGV4UmVjb3JkKGludDY0X3Qgb2JqZWN0CiAgICAgICAg
ICAgICB8fCBzcWwuYmluZEJsb2IoMywgaW5kZXhLZXlCdWZmZXItPmRhdGEoKSwgaW5kZXhLZXlC
dWZmZXItPnNpemUoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwuYmluZEJsb2Io
NCwgdmFsdWVCdWZmZXItPmRhdGEoKSwgdmFsdWVCdWZmZXItPnNpemUoKSkgIT0gU1FMSVRFX09L
CiAgICAgICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgICAg
ICBMT0dfRVJST1IoIkNvdWxkIG5vdCBwdXQgaW5kZXggcmVjb3JkIGZvciBpbmRleCAlbGxpIGlu
IG9iamVjdCBzdG9yZSAlbGxpIGluIFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgaW5kZXhJRCwg
b2JqZWN0U3RvcmVJRCwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHB1dCBpbmRleCBy
ZWNvcmQgZm9yIGluZGV4ICUiIFBSSWk2NCAiIGluIG9iamVjdCBzdG9yZSAlIiBQUklpNjQgIiBp
biBSZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIGluZGV4SUQsIG9iamVjdFN0b3JlSUQsIG1fc3Fs
aXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTY1LDcgKzExNjUsNyBA
QCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpkZWxldGVSZWNvcmQo
U1FMaXRlSURCVHJhbnNhY3Rpb24mIHRyYQogICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgx
LCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHNxbC5iaW5kQmxv
YigyLCBrZXlCdWZmZXItPmRhdGEoKSwga2V5QnVmZmVyLT5zaXplKCkpICE9IFNRTElURV9PSwog
ICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICAgICAg
TE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSAlbGxp
ICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3Nx
bGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5v
dCBkZWxldGUgcmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlICUiIFBSSWk2NCAiICglaSkgLSAlcyIs
IG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9
CkBAIC0xMTc4LDcgKzExNzgsNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlOjpkZWxldGVSZWNvcmQoU1FMaXRlSURCVHJhbnNhY3Rpb24mIHRyYQogICAgICAgICAg
ICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0sKICAgICAg
ICAgICAgIHx8IHNxbC5iaW5kQmxvYigyLCBrZXlCdWZmZXItPmRhdGEoKSwga2V5QnVmZmVyLT5z
aXplKCkpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVf
RE9ORSkgewotICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIHJlY29yZCBm
cm9tIGluZGV4ZXMgZm9yIG9iamVjdCBzdG9yZSAlbGxpICglaSkgLSAlcyIsIG9iamVjdFN0b3Jl
SUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBkZWxldGUgcmVjb3JkIGZyb20gaW5k
ZXhlcyBmb3Igb2JqZWN0IHN0b3JlICUiIFBSSWk2NCAiICglaSkgLSAlcyIsIG9iamVjdFN0b3Jl
SUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjA5LDcg
KzEyMDksNyBAQCBib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRL
ZXlSZWNvcmRGcm9tT2JqZWN0U3RvcmUoY29uc3QgSURCSQogICAgICAgICBpZiAoc3FsLnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgb2JqZWN0
U3RvcmVJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwuYmluZEJsb2IoMiwga2V5
QnVmZmVyLT5kYXRhKCksIGtleUJ1ZmZlci0+c2l6ZSgpKSAhPSBTUUxJVEVfT0spIHsKLSAgICAg
ICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGdldCByZWNvcmQgZnJvbSBvYmplY3Qgc3RvcmUg
JWxsaSBmcm9tIFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwgbV9zcWxp
dGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
ICAgIExPR19FUlJPUigiQ291bGQgbm90IGdldCByZWNvcmQgZnJvbSBvYmplY3Qgc3RvcmUgJSIg
UFJJaTY0ICIgZnJvbSBSZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1f
c3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIApAQCAtMTIyMCw3ICsxMjIwLDcgQEAg
Ym9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0S2V5UmVjb3JkRnJv
bU9iamVjdFN0b3JlKGNvbnN0IElEQkkKICAgICAgICAgfQogICAgICAgICBpZiAoc3FsUmVzdWx0
ICE9IFNRTElURV9ST1cpIHsKICAgICAgICAgICAgIC8vIFRoZXJlIHdhcyBhbiBlcnJvciBmZXRj
aGluZyB0aGUgcmVjb3JkIGZyb20gdGhlIGRhdGFiYXNlLgotICAgICAgICAgICAgTE9HX0VSUk9S
KCJDb3VsZCBub3QgZ2V0IHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSAlbGxpIGZyb20gUmVjb3Jk
cyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3Io
KSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgTE9HX0VSUk9SKCJD
b3VsZCBub3QgZ2V0IHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSAlIiBQUklpNjQgIiBmcm9tIFJl
Y29yZHMgdGFibGUgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwgbV9zcWxpdGVEQi0+bGFzdEVy
cm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogCkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBib29sIFVuaXF1ZUlEQkRh
dGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRLZXlSYW5nZVJlY29yZEZyb21PYmplY3RTdG9y
ZShjb25zdAogICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAh
PSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHNxbC5iaW5kQmxvYigyLCBsb3dlckJ1ZmZlci0+
ZGF0YSgpLCBsb3dlckJ1ZmZlci0+c2l6ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8
IHNxbC5iaW5kQmxvYigzLCB1cHBlckJ1ZmZlci0+ZGF0YSgpLCB1cHBlckJ1ZmZlci0+c2l6ZSgp
KSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGdldCBr
ZXkgcmFuZ2UgcmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlICVsbGkgZnJvbSBSZWNvcmRzIHRhYmxl
ICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3Nx
bGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5v
dCBnZXQga2V5IHJhbmdlIHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSAlIiBQUklpNjQgIiBmcm9t
IFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwgbV9zcWxpdGVEQi0+bGFz
dEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogCkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBib29sIFVuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRLZXlSYW5nZVJlY29yZEZyb21PYmplY3RT
dG9yZShjb25zdAogICAgICAgICB9CiAgICAgICAgIGlmIChzcWxSZXN1bHQgIT0gU1FMSVRFX1JP
VykgewogICAgICAgICAgICAgLy8gVGhlcmUgd2FzIGFuIGVycm9yIGZldGNoaW5nIHRoZSByZWNv
cmQgZnJvbSB0aGUgZGF0YWJhc2UuCi0gICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBn
ZXQgcmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlICVsbGkgZnJvbSBSZWNvcmRzIHRhYmxlICglaSkg
LSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURC
LT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBnZXQg
cmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlICUiIFBSSWk2NCAiIGZyb20gUmVjb3JkcyB0YWJsZSAo
JWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxp
dGVEQi0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CiAKQEAgLTEzNTgsNyArMTM1OCw3IEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGU6OmFkdmFuY2VDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3VyCiAgICAg
fQogCiAgICAgaWYgKCFjdXJzb3ItPmFkdmFuY2UoY291bnQpKSB7Ci0gICAgICAgIExPR19FUlJP
UigiQXR0ZW1wdCB0byBhZHZhbmNlIGN1cnNvciAlbGxpIHN0ZXBzIGZhaWxlZCIsIGNvdW50KTsK
KyAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIGFkdmFuY2UgY3Vyc29yICUiIFBSSWk2NCAi
IHN0ZXBzIGZhaWxlZCIsIGNvdW50KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>